Home
» Hoe
»
Versleutel de upstream DNS van Pi-hole op Ubuntu Server 24.04
Versleutel de upstream DNS van Pi-hole op Ubuntu Server 24.04
In dit illustratieve voorbeeld draait Linh Pi-hole op Ubuntu Server 24.04 en wil hij de DNS-verzoeken die Pi-hole naar de server stuurt, versleutelen. Installeer Pi-hole dnscrypt-proxy, koppel het aan de server 127.0.0.1:5053, kies een DNS-over-HTTPS (DoH)-resolver, test die lokale proxy en laat Pi-hole er vervolgens naar verwijzen. Deze handleiding gaat ervan uit dat Pi-hole al is geïnstalleerd en werkt; Linh is een hypothetisch voorbeeld, geen echte installatie of testrapportage.
Kies een actuele DoH-methode
Pi-hole communiceert zelf niet via DoH met zijn upstream-resolver; het stuurt DNS-verzoeken normaal gesproken door naar een IP-adres en poort. Een lokale proxy fungeert als brug tussen de twee protocollen: Pi-hole stuurt standaard DNS-verzoeken naar een lokale, privé-luisteraar, en de proxy stuurt versleutelde verzoeken naar de geselecteerde resolver. In dit voorbeeld gebruikt Linh dnscrypt-proxydezelfde server en houdt zijn luisteraar op loopback, zodat andere apparaten geen directe verbinding met die proxy kunnen maken.
Vermijd het starten van een nieuwe installatie met het oudere cloudflared proxy-dnsrecept. Op de huidige cloudflare-pagina van Pi-hole staat dat deze functie in november 2025 door Cloudflare is afgeschaft en dat het gebruik ervan bij nieuwe installaties wordt afgeraden. De instructies voor dnscrypt-proxy van Pi-hole bieden een onderhouden alternatief. De pakketlijst van Ubuntu Noble bevat momenteel dnscrypt-proxy; pakketversies variëren per architectuur en kunnen veranderen naarmate er updates worden gepubliceerd.
Ubuntu-terminalopdracht voor het installeren van dnscrypt-proxy vanuit de Noble-pakketrepository's.
1. Installeer het Ubuntu-pakket
Werk de pakketlijsten van APT bij en installeer het Noble-repositorypakket:
sudo apt update
sudo apt install dnscrypt-proxy
Het pakket bevindt zich in de Universe-component van Ubuntu. Als APT het niet kan vinden, controleer dan of Universe is ingeschakeld en voer het opnieuw uit sudo apt update. Download geen willekeurige build van een derde partij om een probleem met de repositoryconfiguratie te omzeilen.
Controleer voordat u verdergaat of Ubuntu de systemd-socketunit heeft geïnstalleerd die door de Pi-hole-procedure wordt gebruikt:
systemctl list-unit-files dnscrypt-proxy.socket
De pakketlijst van Ubuntu Noble bevat dnscrypt-proxy.socket, en de instructies voor Pi-hole gebruiken die socket om een lokale DNS-listener te bieden zonder te concurreren met de eigen service van Pi-hole op poort 53.
Socket-override waarbij zowel TCP- als UDP-listeners zijn gewist en opnieuw zijn gekoppeld aan localhost op poort 5053.
2. Koppel de proxy aan localhost poort 5053
De FTL DNS-service van Pi-hole gebruikt normaal gesproken poort 53. Geef dnscrypt-proxy een andere poort en bind deze alleen aan de server zelf. Maak een systemd-override aan:
sudo systemctl edit dnscrypt-proxy.socket
Voeg deze regels toe aan het lege override-bestand, sla het op en sluit af:
De lege toewijzingen wissen de oorspronkelijke listeners op poort 53 van de socket-eenheid voordat de nieuwe adressen worden toegevoegd. 127.0.0.1Het is belangrijk om de listener op te houden: wijzig deze niet naar 0.0.0.0voor deze configuratie met dezelfde host, omdat dit de proxy op elke netwerkinterface zou blootstellen.
dnscrypt-proxy TOML-instellingen die gebruikmaken van systemd-socketactivering en de Cloudflare Security-resolver selecteren.
3. Selecteer de DoH-resolver.
Open het pakketconfiguratiebestand:
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Stel de volgende waarden in, waarbij de rest van de meegeleverde configuratie ongewijzigd blijft:
Een lege listen_addresseslijst geeft dnscrypt-proxy de opdracht om systemd socket-activering te gebruiken. De genoemde Cloudflare Security resolver is het voorbeeld dat wordt gebruikt in de dnscrypt-proxy handleiding van Pi-hole; deze past de malwarefiltering van de resolver toe bovenop de eigen blokkeerlijsten van Pi-hole. Als u de voorkeur geeft aan een andere provider of geen extra beveiligingsfiltering wilt, kies dan een actuele DoH-resolver uit de openbare lijst met resolvers en gebruik de exacte servernaam. De beschikbare namen en resolverbeleidsregels kunnen veranderen, dus controleer de huidige vermelding in plaats van een verouderde naam uit een oud bericht te kopiëren.
Herstart de socket en de service zodat de overschrijvings- en TOML-instellingen van kracht worden:
Test vervolgens de lokale listener voordat u de upstream van Pi-hole wijzigt:
dig @127.0.0.1 -p 5053 example.com
Een DNS-antwoord en een exitstatus van nul geven aan dat de lokale proxy de query heeft beantwoord. Om te bevestigen dat de geselecteerde upstream DoH gebruikt, kunt u recente serviceberichten inspecteren en zoeken naar de resolver die is gemarkeerd met OK (DoH):
Als dighet niet is geïnstalleerd, installeer dan het Ubuntu- dnsutilspakket. Als de query een time-out geeft of als het logboek geen DoH-resolver weergeeft, inspecteer sudo systemctl status dnscrypt-proxy.socket dnscrypt-proxy.servicedan het servicelogboek voordat u verdergaat.
Pi-hole CLI-opdracht om de lokale versleutelde DNS-proxy in te stellen als de upstream-resolver.
4. Stel Pi-hole in op de lokale proxy.
Vervang de upstreamlijst van Pi-hole pas door de lokale listener nadat de lokale test succesvol is verlopen:
De waarde gebruikt het aangepaste upstream-formaat van Pi-hole: 127.0.0.1is de lokale host en #5053specificeert de niet-standaard DNS-poort. Je kunt dit ook invoeren 127.0.0.1#5053onder Instellingen > DNS > Aangepaste upstream DNS-servers in de Pi-hole-beheerinterface. Schakel de vooraf ingestelde openbare upstreams uit en sla de wijzigingen op, anders kan Pi-hole sommige verzoeken rechtstreeks naar deze servers blijven sturen zonder DoH te gebruiken.
Controleer het volledige pad
Vraag Pi-hole zelf op, door het LAN-adres te gebruiken in plaats van PIHOLE_IP:
dig @PIHOLE_IP example.com
Controleer of de lookup is gelukt, of het querylog van Pi-hole het clientverzoek weergeeft en of de servicestatus of logboeken van dnscrypt-proxy aantonen dat de geselecteerde upstream bereikbaar is. Het resulterende pad zou moeten zijn: client naar Pi-hole via uw LAN, vervolgens Pi-hole naar de localhost-proxy, en dan proxy naar de DoH-resolver. Dit versleutelt het gedeelte tussen server en resolver; het versleutelt geen gewoon DNS-verkeer tussen een client en Pi-hole op het LAN, verbergt geen query's voor de gekozen resolver en maakt van Pi-hole geen VPN.