Software-update: Pi-hole Core 6.1 / Web 6.2 / FTL 6.2

Pi-hole logo (75 pix) Versie 6.1 van Pi-hole Core is uitgekomen. Ook zijn Pi-hole Web 6.2 en Pi-hole FTL 6.2 verschenen. Pi-hole is een advertising-aware dns- en webserver bedoeld om te draaien op een Raspberry Pi in het netwerk. Als op de router naar Pi-hole wordt verwezen voor dns-afhandelingen, zullen alle apparaten binnen het netwerk er automatisch gebruik van maken zonder dat er instellingen moeten worden aangepast. Vervolgens worden advertenties niet meer opgehaald, waardoor pagina's sneller laden. In potentie kan er ook malware mee buiten de deur worden gehouden. Voor meer informatie verwijzen we jullie door naar de uitleg en video's op deze pagina, of deze handleiding van tweaker jpgview. De changelog voor deze uitgave kan hieronder worden gevonden.

What’s Changed (Core v6.1)
  • build gravityDBfile_default like the other variables in #6133
  • Add CentOS 10 to test suite in #6126
  • Ensure gravity_Cleanup() checks the correct directory in #6131
  • Add recommended fields to the deb package in #6054
  • Add webserver log to piholeLogFlush.sh in #6049
  • Update update.sh, updatecheck.sh and uninstall.sh to honour pihole.to… in #5981
  • Move list parsing entirely into FTL in #6105
  • Remove no-longer-needed pihole sudoers file in #6143
  • versions file should readable by others (make pihole -v work for non-root users) in #6002
  • Reduce code duplication in piholeLogFlush in #6148
  • Add ON DELETE CASCADE to FOREIGN KEY REFERENCES in gravity.db in #6113
  • Install on IPv6-only/DNS64/NAT64 system in #6144
  • Treat FTL return data as strings – part II in #6184
  • Remove duplicated code checking if adlist domain is blocked locally in #6183
  • Fix gravity waiting forever for DNS in #6196
  • Remove check for supported OS in #6206
  • Remove unused $target from gravity in #6192
  • Remove reference to telnet and chronometer in README in #6188
  • Add Fedora 42 to tests in #6177
  • Extend .gitignore in #6215
  • Use CODEOWNERS instead of deprecated dependbot/reviewers in #6213
  • Set dns.interface during installation in #6216
  • Allow alternative cron daemons on Debian in #6180
  • Fix API logic in api.sh in #6193
  • Do not try to upgrade gravity if it does not exist in #6218
  • All gravity related files and dirs should be owned by pihole:pihole in #6186
  • Give FTL 60 seconds for graceful shutdown in #6187
  • Use shell parameter expansion to split http_code and payload for api.sh in #6230
  • Change FTLcheckUpdate to use api.github.com and jq to retrieve tag_name in #6229
  • Update get_available_interfaces() to correctly filter loopback device (lo) in #6236
  • Allow simple pihole api output, containing only the JSON payload in #6096
  • Function gravity_CheckDNSResolutionAvailable() should return 0 if DNS resolution is available in #6240
  • Use a more general method to determine whether systemd is the init system in #6043
  • Use PID1 to determine which command to use when toggeling services in #6245
  • Allow to get API URL from local.api.ftl even if DNS port has changed in #6252
What's Changed (Web v6.2)
  • Streamline actions, format and switch to Node.js 22 in #3357
  • Remove remaining hard-coded /admin/ paths in the webinterface in #3370
  • Fix Local CNAME records records mistake in #3367
  • Fix concurrency issue about const apiUrl in #3371
  • groups-lists: remove unneeded HTML escape in #3379
  • login.js: fix deprecated submit() usage in #3380
  • Remove x-dns-prefetch-control meta tag in #3378
  • group-domains: fix uncaught TypeError due to invalid URLs in #3383
  • Replace remaining i element cases with em in #3381
  • Revert the defer addition for now in #3382
  • header: fix runtime error when query_string is null in #3395
  • utils: fix typo in showAlert() in #3403
  • queries: make the Advanced filtering button occupy all space in #3402
  • Remove icheckbox related-code except for primary in #3387
  • queries: add missing display: none in #3405
  • Allow free input in upstream filter in #3408
  • Fix console warning when no password set in #3410
  • Modernize JS and tighten things in #3388
  • high-contrast.css: fix duplicate selector in #3411
  • Remove unused CSS in #3420
  • Add missing display: none for collapsed boxes in #3417
  • Remove unused HTML elements in #3418
  • Update chart.umd.js.map from npm in #3419
  • settings-api: add missing end closing p tag in #3428
  • settings-system: fix span end tag typo in #3427
  • login: fix deprecated submit() function in #3425
  • settings-api: fix deprecated keyup() function in #3424
  • gravity: remove the unused ?go code in #3426
  • disabled and checked are boolean attributes in #3434
  • queries: replace the deprecated jQuery.parseJSON with JSON.parse in #3435
  • package.json: sort deps by name in #3437
  • Use CODEOWNERS instead of deprecated dependbot/reviewers in #3433
  • Add ‘Bug: Confirmed’ to stale exempt list in #3432
  • Various minor tweaks to the LCARS theme in #3446
  • queries: fix box markup in #3445
  • Use the same default interface used by FTL if none is set in pihole.toml in #3436
  • Use font-weight: 600 in #3449
  • Use mg.script_name to retrieve the scriptname in #3447
  • .user-header: use font-weight: 600 in #3450
  • settings-system.js: remove unused overlay code in #3455
  • settings-advanced: remove unused code in #3454
  • index.lp: remove unused classes in #3453
  • scripts/js/settings-dns-records.js: fix api url base in #3456
  • Add hint about wildcard search in advanced query filtering in #3452
  • index: make tables stripped in #3438
  • Replace invalid hostname to prevent XSS in #3401
  • settings-system: fix typo in #3460
  • sidebar: increase logo size to prevent a reflow in #3407
  • queries: improve link to search page in #3422
  • Hide top tables depending on privacy level in #3362
  • settings-dns-records: fix typo in #3459
  • Fix deprecated ready function in #3461
  • utils: remove the unused objectToArray util in #3462
  • utils: improve readability for validateIPv* functions in #3423
  • settings-api: fix wrong code in #3463
  • Use text()/textContent when we don’t need HTML in #3464
  • footer: drop redundant addAdvancedInfo() call in #3467
  • settings-system: remove unneeded span elements in #3468
  • settings-dhcp: drop unused lookatme-text attribute in #3469
  • settings-advanced.js: fix wrong role value in #3470
  • settings-advanced: drop small element in #3472
  • updateFtlInfo: remove unused code in #3474
  • settings-level-expert: only toggle the expert elements in #3473
  • Make use of the new format_path function to add the current page in body in #3390
  • Use proper Object methods in #3441
  • queries: minor grammar fix in #3477
  • queries: change box to an info one in #3476
  • Fix DataTables warning message in Network page in #3475
  • Fix broken themes in #3479
  • queries: drop non-existent elements code in #3478
  • Reset update-hint text every time updateVersionInfo() function is executed in #3480
  • Use the same interface name used by FTL in DNS Settings page in #3481
  • messages: fix function call in #3482
  • footer: rename label in #3486
  • header_authenticated: change documentation icon to solid in #3488
  • Remove horizontal line in hamburger menu in #3491
  • sidebar: move active class outside of class attribute conditional in #3492
  • index: use sentence case for queries for consistency in #3493
  • Add rel=”noreferrer” to external hyperlinks in #3495
  • settings-level-expert: hide them by default in #3487
What’s Changed (FTL v6.2)
  • Fix minor spelling mistake in API docs in #2399
  • fix: batch request body spec in #2389
  • fix: make getAuth security optional in #2388
  • fix: incorrect session field requirements in #2387
  • Add privacy_level to /padd endpoint in #2402
  • Parameter is called length not n in GET /queries in #2407
  • Fix duplicate web port information output in FTL startup in #2410
  • Fix logfile warning port length truncation (bug #2408) in #2409
  • Remove dns.watch from upstream DNS server list in #2411
  • Prevent home.arpa queries from being upstreamed. RFC 8375 in #2405
  • Fix redirecting when redirecting from /admin/ to /admin/login and back in #2415
  • Move manual filtering to FTLs file parsing in #2381
  • Various small fixes in #2392
  • Update embedded dnsmasq to v2.92test2 in #2417
  • Fix signedness error in the NTP total round-trip delay calculation in #2420
  • Use webhome variable also on the API documentation page in #2406
  • Report RFC6598 shared address space as “Carrier-Grade NAT” in #2423
  • Fix mishanding of CONF_UINT16 config options in #2426
  • Feature/fix yocto cross build in #2425
  • Update embedded civetweb in #2428
  • Check for existing NTP client when starting FTL in #2416
  • Validate received NTP packets for version and server synchronisation in #2431
  • Use CODEOWNERS instead of deprecated dependbot/reviewers in #2437
  • Modify how we use xxd to compile assets into the FTL binary in #2446
  • Update dnsmasq to v2.91test5 in #2433
  • Update embedded SQLite3 to 3.49.2 in #2447
  • Gravity: support for arbitrary HOSTS-like list formats in #2439
  • Set dns.interface to eth0 by default in #2448
  • Update embedded dnsmasq in #2457
  • Adjust write_to_file function to include the CA certificate in #2465
  • Update SQLite to 3.50.0 in #2469

Versienummer 6.1 / 6.2 / 6.2
Releasestatus Final
Besturingssystemen Scripttaal
Website Pi-hole
Download https://github.com/pi-hole/pi-hole/#one-step-automated-install
Licentietype GPL

Reacties (33)

33
33
31
0
0
1
Wijzig sortering
Ben 2 jaar geleden overgestapt van PiHole naar Adguard. Hoofdzakelijk omdat het als addon voor Home Assistant beschikbaar is.

Daarnaast vind ik Adguard ook een stuk vriendelijker werken. Al mis ik wel de LCARS layout van PiHole. :)
Home assistant is dan ook je eigen / interne dns provider op een raspberry Pi of zo?
Correct, met een unbound docker container er naast. Gaat DNS lookup ook niet meer via je ISP of andere provider. Direct naar de root servers.
Je kan altijd zelf configureren of je DNS laat resolven via welke dienst dan ook, je ISP, publieke, of rechtstreeks de root servers (zowel in Pi-hole als in AdGuard Home).
Ik snap je opmerking niet helemaal hierin.
Ik snap jouw opmerking niet, of eigenlijk snap ik je waarschijnlijk wel maar dat vertelt mij dat jij niet begrijpt hoe Pi-hole en Adguard Home werken.

Je kunt de DNS root servers zeker niet als upstream DNS servers gebruiken in Pi-hole of Adguard Home, zie ook deze hele oude comment op de Pi-hole forums. Pi-hole en Adguard Home zijn caching DNS servers, ze hebben een recursive resolver als upstream nodig. Dat kunnen de DNS servers van je ISP zijn, een van de publieke DNS aanbieders (bijvoorbeeld adguard-dns.com) of een eigen Unbound server.

Iemand bij Cloudflare heeft een mooi artikel geschreven waarin de verschillen worden uitgelegd tussen recursive resolvers, DNS root nameservers, TLD nameservers en authoritative nameservers. Alleen recursive resolvers kunnen door Pi-hole en Adguard Home als upstream worden gebruikt, de overige 3 type nameservers niet omdat ze als het goed is zo zijn geconfigureerd dat ze geen recursive lookups toestaan, wat Pi-hole en Adguard Home wel vereisen bij het opzoeken van DNS records.
Je hebt helemaal 200% gelijk!
Mijn opmerking klopt wel, in die zin dat je Unbound i.c.m. Pi-hole/AGH moet draaien.
Zonder Unbound kun je de root servers niet aanspreken.
Bedankt voor je toelichting :)
Kijk is naar de handleiding van die addon:

https://github.com/hassio-addons/addon-adguard-home/blob/main/adguard/DOCS.md
Ensure your Home Assistant device has a static IP and static external DNS servers! This is important! You WILL end up having issues if you skip this step.
Er wordt dus met klem geadviseerd om je HA zelf niet je addon te laten gebruiken. Dit heeft te maken met het feit dat je dns-server dan niet beschikbaar is, wanneer HAOS aan het opstarten is. (doe ermee wat je wilt ;) )
Voor HomeAssistant is er een plugin in HACS voor Pi-Hole.
Dat is wat anders, daarmee kun je PiHole monitoren. Adguard host middels de addon ook DNS vanuit de HA addon. Deze plugin (integration) maakt connectie met een (docker) gehoste PiHole. Er wordt geen PiHole gedraaid binnen de plugin die je linkt?
Zoals ik het lees in de documentatie. Kan zijn dat ik het verkeerd interpreteer. ;)
Wat is daar anders aan dan PiHole een Unbound docker laten gebruiken als DNS server? Docker container met PiHole/Adguard en een Unbound container met elkaar laten babbelen lijkt me een stuk stabieler en flexibeler dan een 3e partij plugin in Home Assistant. Dat is geen container management tool. Of draai je HA bare metal?
Of je gebruikt gewoon een blocklist met unbound en je bent geheel klaar, geen extra software nodig
Dit verbaast mij persoonlijk ook. Relatief veel mensen gebruiken Unbound naast pihole/AGH, maar dat is eigenlijk helemaal niet nodig als het puur om de adblocking gaat. Meestal is zoiets redelijk statisch wanneer het eenmaal draait. (er zijn natuurlijk vast zat mensen die het allemaal dynamischer nodig hebben, dus per apparaat instellingen, of tussen bepaalde tijden enz, en dan is alleen Unbound niet zo praktisch in gebruik)
Aangezien mijn ISP op last van de overheid sommige sites voorziet van een DNS blokkade, haal ik die er met unbound tussenuit. De root servers doen via unbound gewoon hun ding en zonder inmenging van mijn ISP.
Qua privacy is het dan ook weer een stukje fijner.
Qua privacy is het dan ook weer een stukje fijner.
Dit ligt er net aan waar je je privacy wilt hebben. (je kiest je duivel ;) ). Als je direct met de root-servers praat, dan is je DNS-verkeer niet versleuteld, en zien (potentieel) een hele vracht tussenliggende partijen welke DNS-verzoeken je doet. Ook als je binnen je LAN geen versleuteling gebruikt, dan kunnen allerlei processen op je computer meekijken. (als je browser bijvoorbeeld direct DoH naar AGH praat, dan ziet het OS niet welke DNS-verzoek je doet en kan een stuk malware op je computer dus niet je DNS-verzoeken omleiden/rapporteren.))

Als je AGH gebruikt (of Pi-hole met een ander stuk software), kun je DoH/DoT/DoQ gebruiken. Dan is je DNS-verkeer versleuteld. De keerzijde is dan natuurlijk dat je (al) je DNS-verzoeken doorstuurt naar één of meerdere (veelal commerciële) partijen.
Hier is echter ook een oplossing voor, alleen ondersteund AGH die nog niet: ODoH. Hier komt er 'nog' een partij bij, die niet jouw verzoeken kan zien. (die proxied ze als het ware.)

Versimpeld: AGH --> ODoH Proxy --> DoH-server
AGH versleutelt het verzoek voor de DoH server, verstuurt dat verzoek door naar de ODoH-proxy (ook weer versleuteld). De ODoH proxy stuurt het weer door naar de DoH-server (en het antwoord komt weer terug op dezelfde route, maar dan omgekeerd.) De ODoH-proxy weet "wie iets" zoekt (maar dus niet 'wat' (want die ziet alleen 'een versleuteld verzoek')), en de DoH-server weet "wat iemand" zoekt. (maar dus niet wie (want die ziet alleen de ODoH-proxy))

Maar goed. Dit ondersteunt AGH dus nog niet. :)

[Reactie gewijzigd door lenwar op 31 mei 2025 16:20]

Maakt het echt nog iets uit?

Volgens mij zijn het over het algemeen allemaal commerciële partijen waar je het IP Adres vandaan haalt, of je het nu rechtstreeks via de root-servers doet (die geen DoH/DoT (dacht ik)) of via Quad9, CloudFlare, Google, OpenDNS etc.

Ik zou zo 1.2.3. niet echt een partij weten waarvan gegarandeerd zeker is dat er geen logging/monitoring plaatsvind. Zelfs DoH/DoT is door de aanbieder te loggen, en een simpele audit die door een commerciële partij gedaan wordt vind ik tegenwoordig nou ook weer niet echt representatief. In zo'n geval kan de tent die de DNS (of zelfs VPN) dienst aanbieden net zo goed zelf een verkooppraatje houden en zeggen dat ze een audit "zelf" hebben uitgevoerd.

[Reactie gewijzigd door Verwijderd op 31 mei 2025 18:04]

DoH (en de rest) is ook primair een beveiligingding. Doordat een browser bijvoorbeeld zelf DoH doet, kan malware niet meekijken.

Of dat een hotel dnsverzoeken omleidt naar een adverteerder. (Ik moet naar iets vaags).

En zoals ik al beschreef is ODoH het laatste stukje voor privacy. Dus dat de DNS-provider ook niet ziet wie wat doet.
Het druist ook een beetje tegen het DNS idee in als iedereen de rootservers gaat raadplegen.

Verder zijn de remote IPs toch wel bekend en mis je de landelijke/lokale bescherming die een ISP kan bieden.

Dan moet je alles via VPN of Tor via entiteiten die buiten onze rechtstaat vallen, dus of dat nou zo'n goed idee is...
Een addon is een container. En die container draait in dit geval AdGuard Home. Die HACS-module is een Integratie die een pi-hole kan monitoren. (HA levert zelf ook een integratie om AdGuard Home te monitoren. Dit kan zowel de HA add-on zijn als een externe installatie (op een ander apparaat)).

Om addons te gebruiken (waar @Leaplasher het over heeft) heb je (de facto) HAOS nodig (op het moment is er ook nog HA Supervised, maar die stopt er binnenkort mee). HAOS is ontworpen om direct op hardware te draaien (al kun je het denk ik wel in een VM draaien).

Ter volledigheid:

De addons die je in HAOS kunt draaien hoeven niets met HA zelf te maken te hebben. Zo zijn er ook addons met bittorent-clients, media-servers (Emby, Plex Media Server, enz.), Unifi Management software, enz.) HAOS is dus eigenlijk wel degelijk een container management tool, alleen met een selectere aantal containers en een focus om HA Core te draaien. Met HAOS, draait HA Core ook als een container op het systeem. En een andere container (Supervisor) is het beheersmechanisme ervan.

Dus voor AdGuard heb je twee verschillende dingen:
De add-on (container met daarin een AGH-installatie): https://github.com/hassio-addons/addon-adguard-home
De integratie (om AGH mee te kunnen monitoren/aan te sturen): https://www.home-assistant.io/integrations/adguard/
De toevoeging van 'HAOS' helpt wel met het geheel. Dat zijn 2 verschillende dingen. Als je meer dan enkel HA draait, zou ik zelf een hypervisor draaien van een gespecialiseerde ontwikkelaar. Zoals Proxmox of TrueNAS met daarop de containers. Iets met schoenmaker en leest. Maargoed ieder z'n voorkeur natuurlijk.
Maar dan heb je het over Home Assistant Core. (Dus wat in de volksmond Home Assistant genoemd wordt)
Dan heb je dus niet de addons waar het hier over gaat, en dan maakt het in de praktijk niet zoveel uit.

HAOS is, als je het puur technisch bekijkt een Docker installatie/image, met een paar voorgeïnstalleerde containers erop. (Met HA Core, Supervisor, en nog wat randzaken. Ik weet zo uit m'n hoofd niet wat er nog meer apart is.)

HAOS is installeerbaar als 'appliance'. Je beheert dus zelf de onderliggende infra niet, en je hebt dus zelf niets te maken met die onderliggende componenten.
Net zoals je het os van een smart-tv niet beheert en alleen maar "apps" installeert. (Wat theoretisch ook containers kunnen zijn)
Op het moment dat je HAOS op een pi of andere minicomputer zet moet je het functionele concept van een 'computer' dus eigenlijk loslaten en het als een appliance zien die je ook in de winkel had kunnen kopen.
Kan ik hiermee dan ook ads van games op de iPad blokkeren?
Mijn ervaring is dat het een aantal adds tegenhoudt, tegelijkertijd stoppen een aantal ook als dit het geval is ;)
Verbazingwekkend veel wel, ja. Maar uiteraard niet allemaal. Het kan ook 'tegen' je gebruikt worden bij sommige spellen. (Er zijn spellen waar je optioneel naar een advertentie kunt kijken voor wat diamantjes, en die werken dan ook niet meer. Eerlijk is eerlijk. Voor mij weegt het nadeel niet op tegen het voordeel ;) )
Helaas de docker versie  2025.02.3 naar 2025.05.1 verloopt niet vlekkeloos. Op het ene system geen probleem op de andere de foutmelding "DNS resolution is currently unavailable". Dit systeem maar weer teruggezet naar 2025.02.3. Erg irritant dat het niet consistent goed of fout gaat.
Waarom helemaal terug naar 2025.02.3?
Tussen die en de huidige versie zitten nog 8 releases.

Bij mij ging update overigens wel probleemloos.

[Reactie gewijzigd door Toet3r op 31 mei 2025 20:21]

Ik kwam vanaf 2025.04, mogelijk te maken met de lokale upstream Unbound DNS server die ik gebruik.
De upgrade op docker ging niet goed op een tweetal machines. 1 in een loop en beide reageren niet op DNS verzoeken. Even een rollback en binnenkort even onderzoeken.
Zelfde hier, "DNS not running" error op pihole status. Heb reinstall moeten doen om boel weer snel werkend te krijgen.
Probleemloos met sudo pihole -up op m’n Rasberry Pi 4 met RPi OS Bookworm
De pihole -up verliep dramatisch op mijn debian omgeving. De interface werd geruineerd.
Herstel was mogelijk door eerst pi-hole te de-installeren en daarna met het script weer te installeren.
Als root
pihole uninstall
curl -sSL https://install.pi-hole.net | bash

Je moet wel weer even je dns installeren, cients en adlists.
Da's een paar minuten werk.

[Reactie gewijzigd door flapr00m op 2 juni 2025 06:53]

Daarom worden er hier ook wekelijks backups gemaakt: sudo pihole-FTL --teleporter
Simpel cron scriptje voldoet :)
Hier ook problemen op een Debian LXC container op Proxmox. Na een clean install weer up en running.

Zie open bug: https://github.com/pi-hole/FTL/issues/2473

Op dit item kan niet meer gereageerd worden.