Voor Pi-hole op Ubuntu Server 24.04 moet je de upstream-verzoeken via routeren dnscrypt-proxyen Pi-hole laten verwijzen naar de lokale listener op 127.0.0.1#5053. Dit versleutelt het DNS-verkeer tussen je server en de geselecteerde upstream-resolver met DNS-over-HTTPS (DoH), terwijl Pi-hole je LAN-clients blijft beantwoorden en de blokkeerlijsten blijft toepassen. Pi-hole zelf biedt standaard geen DoH-transport naar de upstream; de lokale proxy verzorgt die versleutelde verbinding.
Er is een belangrijk detail met betrekking tot de huidige versie: Cloudflare heeft de cloudflared proxy-dnsopdracht verwijderd uit nieuwe releases vanaf 2 februari 2026. Oudere handleidingen die deze opdracht installeren, werken mogelijk niet met een recente cloudflaredrelease. De onderstaande stappen gebruiken dnscrypt-proxyde huidige DoH-handleiding van Pi-hole. Deze configuratie is geschikt wanneer Pi-hole en de proxy op dezelfde Ubuntu-host draaien. Een Docker- of multi-host-configuratie vereist andere listener-adressen en firewallregels.
Wat deze configuratie wel en niet doet.
Normale DNS verstuurt doorgaans query's van uw resolver naar een upstream DNS-provider zonder transportversleuteling. DoH verzendt DNS-verzoeken via HTTPS, waardoor het voor een netwerkobservator tussen uw Pi-hole-server en de resolver moeilijker wordt om die verzoeken te lezen of te wijzigen. Pi-hole blijft de DNS-server die aan apparaten op uw lokale netwerk wordt geadverteerd; alleen het upstream-pad verandert.
DoH maakt DNS-activiteit niet onzichtbaar voor de resolver die u kiest. De upstream-provider ontvangt nog steeds query's van uw server en Pi-hole kan de querygeschiedenis van clients bewaren, afhankelijk van de privacy- en logboekinstellingen. HTTPS versleutelt ook geen ongerelateerd webverkeer. Als u een specifieke resolver wilt gebruiken, controleer dan het privacybeleid en kies de bijbehorende DoH-optie uit de lijst met ondersteunde resolvers.
Voordat je begint
- Controleer of Pi-hole al is geïnstalleerd en werkt op Ubuntu Server 24.04. Deze handleiding configureert een bestaande Pi-hole-installatie in plaats van een nieuwe te installeren.
- Zorg ervoor dat de server een stabiel LAN-adres heeft. Als het adres verandert, kunnen DHCP-clients van de router hun DNS-server kwijtraken.
- Zorg dat u beheerdersrechten hebt en de Pi-hole-host kunt bereiken als DNS tijdelijk niet werkt. Voer deze wijziging niet op afstand door via een verbinding die voor naamresolutie afhankelijk is van dezelfde Pi-hole.
- Noteer de huidige Pi-hole upstream-instellingen, zodat u deze kunt herstellen tijdens een rollback.
De proxy zal alleen verbinding maken met loopback op poort 5053, waardoor poort 53 beschikbaar blijft voor Pi-hole. Dit voorkomt concurrentie met de DNS-service van Pi-hole en de lokale resolver van Ubuntu. Schakel deze functie niet uit systemd-resolvedom dit ontwerp te laten werken; de aparte loopback-poort van de proxy voorkomt dit conflict.
1. Installeer dnscrypt-proxy vanuit de pakketrepository's van Ubuntu.
Het dnscrypt-proxy-project documenteert een installatieprocedure voor Ubuntu-pakketten. Controleer of uw geconfigureerde Ubuntu-repository's een geschikte kandidaat aanbieden voordat u installeert:
sudo apt update
apt-cache policy dnscrypt-proxy
Als de uitvoer een kandidaatversie toont, installeer deze dan:
sudo apt install dnscrypt-proxy
Als er geen geschikte kandidaat wordt weergegeven, voeg dan geen ongerelateerde repository van derden toe om verder te gaan. Gebruik de installatiemethode die wordt beschreven in de officiële Linux-handleiding van het dnscrypt-proxy-project, controleer de release en architectuur en pas de serviceconfiguratie aan die installatie aan. De onderstaande systemd-socketunit en configuratiepaden zijn van toepassing op de Ubuntu-pakketinstallatie zoals beschreven door Pi-hole.
2. Verplaats de proxy-listener naar localhost poort 5053
Pi-hole gebruikt al de standaard DNS-poort 53. Configureer de socket van de proxy om te luisteren op zowel TCP als UDP op 127.0.0.1:5053, en alleen bereikbaar vanaf dezelfde host. Maak een systemd drop-in aan:
sudo systemctl edit dnscrypt-proxy.socket
Voer deze regels in de editor in en sla op:
[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053
De lege ListenStream=regels ListenDatagram=wissen de standaardinstellingen van het pakket voordat de vervangende adressen worden ingesteld. Laat ze niet weg: anders kan systemd naast de aangepaste listener ook de standaardpoort behouden.
3. Selecteer een DoH-resolver
Open het pakketconfiguratiebestand:
sudoedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Voor het activeren van systemd-sockets gebruikt u een lege lijst met listeners in de proxyconfiguratie. Kies een resolvernaam uit de huidige lijst met ondertekende openbare resolvers. De volgende code selecteert bijvoorbeeld de standaard Cloudflare-resolver; de Pi-hole-handleiding laat ook cloudflare-securityeen voorbeeld zien voor het geval malwarefiltering bij de upstream-resolver gewenst is:
listen_addresses = []
server_names = ['cloudflare']
Laat de rest van de pakketconfiguratie intact. De namen in dit bestand server_nameszijn register-ID's, geen willekeurige hostnamen of URL-paden. Als u de voorkeur geeft aan een andere provider, controleer dan of de huidige resolver-vermelding DoH ondersteunt en kopieer de exacte naam. Een resolver die malware of andere categorieën filtert, kan andere resultaten opleveren dan een resolver die niet filtert.
4. Stel Pi-hole in op de lokale proxy.
Stel het upstream DNS-adres van Pi-hole in op de lokale listener:
sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'
Het #5053achtervoegsel is de notatie van Pi-hole voor de niet-standaard DNS-poort. Je kunt dit ook controleren in de Pi-hole-beheerinterface onder Instellingen > DNS . Verwijder de vooraf ingestelde openbare upstream-selecties en laat de aangepaste server 127.0.0.1#5053als upstream staan. Het ingeschakeld laten van een openbare resolver als extra upstream kan ervoor zorgen dat query's de versleutelde proxy omzeilen. Verwijder deze vermeldingen dus als je wilt dat alle Pi-hole upstream-query's DoH gebruiken.
5. Start de services opnieuw en controleer of het probleem is opgelost.
Herstart de socket, de proxyservice en de Pi-hole FTL-daemon zodat ze de nieuwe configuratie laden:
sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
sudo systemctl restart pihole-FTL.service
Controleer de servicestatus:
sudo systemctl status dnscrypt-proxy.socket
sudo systemctl status dnscrypt-proxy.service
sudo systemctl status pihole-FTL.service
Elk onderdeel moet actief zijn zonder bindfout of mislukte opstart van de resolver. Test de proxy rechtstreeks via de lokale DNS-listener:
dig @127.0.0.1 -p 5053 example.com
Een DNS-antwoord geeft aan dat de lokale proxy reageert. Test vervolgens Pi-hole op poort 53:
dig @127.0.0.1 example.com
Controleer het Pi-hole querylogboek of dashboard om te bevestigen dat het verzoek Pi-hole heeft bereikt, en bekijk het logboek van de proxy als de test mislukt:
sudo journalctl -u dnscrypt-proxy.service -b --no-pager
Controleer voor de zekerheid ook de opstartgegevens van de proxy of de loguitvoer voor de geselecteerde resolver en de status van het DoH-protocol. Een succesvolle digDNS-resolutie bewijst op zich dat de DNS-resolutie werkt; het bewijst echter niet dat het verzoek via HTTPS is verzonden.
Veelvoorkomende problemen en een veilig herstel
- “Adres al in gebruik”: een ander proces bezet mogelijk al poort 5053, of de socket-override is niet geladen. Controleer de listeners met
sudo ss -lntup, bekijk de drop-in met systemctl cat dnscrypt-proxy.socket, en bevestig dat de lege reset-regels voorafgaan aan de 5053-vermeldingen.
- De proxy is actief, maar de zoekopdrachten lopen vast: controleer de uitgaande HTTPS-toegang, de naam van de resolver en de proxylogboeken. Sommige netwerken blokkeren DNS-over-HTTPS-verbindingen of beperken TCP-poort 443.
- De proxytest werkt, maar Pi-hole ontvangt geen reactie van de upstream-server: controleer of Pi-hole correct is ingesteld
127.0.0.1#5053en herstart het systeem pihole-FTL. Zorg ervoor dat de standaard selectievakjes voor de upstream-server niet stiekem een alternatieve route opgeven.
- Ubuntu zelf kan na deze wijziging geen namen meer oplossen: deze configuratie wijzigt de upstream-configuratie van Pi-hole, niet die van de host
/etc/resolv.conf. Vermijd het vervangen van dat bestand of het uitschakelen ervan systemd-resolvedals een snelle oplossing voor problemen.
Om terug te keren naar de oorspronkelijke DNS-instelling, herstelt u de upstream-instellingen die u in Pi-hole hebt vastgelegd en start u Pi-hole opnieuw op pihole-FTL. Zodra Pi-hole niet langer naar de proxy verwijst, kunt u deze uitschakelen of verwijderen dnscrypt-proxyvia de pakketbeheerder. Als deze server ook zijn eigen DNS via Pi-hole oplost, zorg er dan voor dat er een lokaal herstelpad beschikbaar is voordat u services wijzigt.
Welke optie past het beste bij uw netwerk?
Gebruik deze proxy-configuratie met één host wanneer u gecentraliseerde DNS-filtering in Pi-hole wilt en versleuteld verkeer van Pi-hole naar één geselecteerde resolver. Het is relatief eenvoudig te controleren omdat de proxy één lokaal adres en poort heeft. Als u Pi-hole in Docker, op een andere server of over meerdere netwerken uitvoert, heeft u mogelijk een containernetwerkadres nodig in plaats van een loopback-adres, en moet u de proxy-listener beperken zodat deze niet als een open resolver wordt blootgesteld. Als u beleidsgebaseerde filtering, apparaatidentificatie of versleutelde DNS voor roamingapparaten buiten het huis nodig heeft, configureert u die clients of een beheerde gateway afzonderlijk; de upstream DoH-verbinding van Pi-hole versleutelt niet automatisch het pad van elke client naar Pi-hole.
Onthoud tot slot dat een router of client Pi-hole kan omzeilen als deze een tweede DNS-server adverteert. Voor netwerkbrede filtering kunt u clients via DHCP alleen het Pi-hole-adres geven en rekening houden met zowel IPv6- als IPv4-DNS-advertenties. Controleer dit met meerdere apparaten nadat u de routerinstellingen hebt gewijzigd, aangezien een correcte proxyconfiguratie op de server niet kan voorkomen dat een client rechtstreeks een andere resolver gebruikt.
Officiële referenties