Jak skonfigurować Pi-hole DNS-over-HTTPS na Ubuntu Server 24.04

W przypadku Pi-hole na Ubuntu Server 24.04 należy kierować żądania upstream przez dnscrypt-proxyi wskazać Pi-hole lokalnemu nasłuchującemu pod adresem 127.0.0.1#5053. Spowoduje to szyfrowanie ruchu DNS między serwerem a wybranym resolverem upstream za pomocą protokołu DNS-over-HTTPS (DoH), podczas gdy Pi-hole nadal odpowiada klientom LAN i stosuje swoje listy blokowania. Sam Pi-hole domyślnie nie zapewnia transportu DoH do swojego upstream; to lokalne proxy zapewnia szyfrowane połączenie.

Najpierw należy poznać szczegóły dotyczące bieżącej wersji: Cloudflare usunął to cloudflared proxy-dnspolecenie z nowych wydań od 2 lutego 2026 r. Starsze samouczki instalujące to polecenie mogą nie działać z obecną wersją cloudflared. Poniższe kroki wykorzystują dnscrypt-proxy, zgodnie z aktualnym przewodnikiem DoH Pi-hole. Ta konfiguracja jest odpowiednia, gdy Pi-hole i serwer proxy działają na tym samym hoście Ubuntu. Konfiguracja Docker lub wielohostowa wymaga różnych adresów nasłuchiwania i reguł zapory sieciowej.

Co ta konfiguracja robi i czego nie robi

Standardowy DNS zazwyczaj wysyła zapytania z resolvera do dostawcy DNS bez szyfrowania transportu. DoH przesyła żądania DNS w protokole HTTPS, co utrudnia obserwatorowi sieci między serwerem Pi-hole a resolverem odczytanie lub modyfikację tych żądań. Pi-hole pozostaje serwerem DNS reklamowanym urządzeniom w sieci lokalnej; zmienia się tylko jego ścieżka upstream.

DoH nie sprawia, że ​​aktywność DNS jest niewidoczna dla wybranego resolvera. Dostawca nadrzędny nadal otrzymuje zapytania z Twojego serwera, a Pi-hole może przechowywać historię zapytań klienta zgodnie ze swoimi ustawieniami prywatności i rejestrowania. Protokół HTTPS nie szyfruje również niepowiązanego ruchu sieciowego. Jeśli chcesz użyć konkretnego resolvera, sprawdź jego politykę prywatności i wybierz wpis DoH z listy obsługiwanych resolverów.

Zanim zaczniesz

  • Sprawdź, czy Pi-hole jest już zainstalowany i działa w systemie Ubuntu Server 24.04. Ten poradnik opisuje konfigurację istniejącego Pi-hole zamiast jego instalacji.
  • Upewnij się, że serwer ma stabilny adres LAN. Jeśli adres ulegnie zmianie, klienci DHCP routera mogą utracić swój serwer DNS.
  • Uzyskaj dostęp administratora i możliwość połączenia z hostem Pi-hole, jeśli DNS tymczasowo przestanie działać. Unikaj wprowadzania tej zmiany zdalnie przez połączenie, które korzysta z tego samego Pi-hole do rozpoznawania nazw.
  • Zapisz bieżące ustawienia upstream Pi-hole, aby móc je przywrócić podczas wycofywania aktualizacji.

Serwer proxy będzie łączył się tylko z pętlą zwrotną na porcie 5053, pozostawiając port 53 dla Pi-hole. Pozwala to uniknąć konkurowania z usługą DNS Pi-hole i lokalnym resolverem Ubuntu. Nie należy wyłączać systemd-resolvedtej funkcji tylko po to, aby ta konstrukcja działała; oddzielny port pętli zwrotnej serwera proxy pozwala uniknąć tego konfliktu.

1. Zainstaluj dnscrypt-proxy z repozytoriów pakietów Ubuntu

Projekt dnscrypt-proxy dokumentuje ścieżkę instalacji pakietu Ubuntu. Przed instalacją sprawdź, czy skonfigurowane repozytoria Ubuntu oferują kandydata:

sudo apt update
apt-cache policy dnscrypt-proxy

Jeśli wynik wskazuje wersję kandydacką, zainstaluj ją:

sudo apt install dnscrypt-proxy

Jeśli nie zostanie wyświetlony żaden kandydat, nie dodawaj niepowiązanego repozytorium innej firmy, tylko po to, aby kontynuować. Użyj metody instalacji podanej w oficjalnym przewodniku po Linuksie projektu dnscrypt-proxy, zweryfikuj wydanie i architekturę oraz dostosuj konfigurację usługi do tej instalacji. Poniższe ścieżki konfiguracji i jednostki gniazd systemd odnoszą się do konfiguracji pakietów Ubuntu udokumentowanej przez Pi-hole.

2. Przenieś nasłuchiwacz proxy na port localhost 5053

Pi-hole już korzysta ze standardowego portu DNS 53. Skonfiguruj gniazdo proxy tak, aby nasłuchiwało zarówno na TCP, jak i UDP pod adresem 127.0.0.1:5053, dostępnym tylko z tego samego hosta. Utwórz drop-in systemd:

sudo systemctl edit dnscrypt-proxy.socket

Wprowadź te linie w edytorze i zapisz:

[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053

Puste wiersze ListenStream=i ListenDatagram=czyszczą domyślne ustawienia pakietu przed ustawieniem adresów zastępczych. Nie należy ich pomijać: w przeciwnym razie systemd może zachować domyślny port oprócz niestandardowego nasłuchiwacza.

3. Wybierz resolver DoH

Otwórz plik konfiguracji pakietu:

sudoedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Do aktywacji gniazda systemd należy użyć pustej listy nasłuchujących w konfiguracji proxy. Wybierz nazwę resolvera z bieżącej, podpisanej publicznej listy resolverów. Na przykład, poniższy przykład wybiera standardowy resolver Cloudflare; przewodnik Pi-hole pokazuje również cloudflare-securityprzykład filtrowania złośliwego oprogramowania w resolverze nadrzędnym:

listen_addresses = []
server_names = ['cloudflare']

Pozostaw resztę konfiguracji pakietu w stanie nienaruszonym. Nazwy w server_namespliku to identyfikatory rejestru, a nie dowolne nazwy hostów ani ścieżki URL. Jeśli wolisz innego dostawcę, sprawdź, czy jego bieżący wpis w programie do rozpoznawania nazw obsługuje DoH i skopiuj jego dokładną nazwę. Program do rozpoznawania nazw, który filtruje złośliwe oprogramowanie lub inne kategorie, może generować inne wyniki niż niefiltrowany program do rozpoznawania nazw.

4. Skieruj Pi-hole na lokalny serwer proxy

Ustaw adres DNS upstream Pi-hole na lokalny odbiornik:

sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'

Sufiks #5053to notacja Pi-hole dla niestandardowego portu DNS. Możesz również sprawdzić interfejs administratora Pi-hole w Ustawieniach > DNS . Wyczyść wstępnie ustawione publiczne serwery nadrzędne i pozostaw niestandardowy serwer 127.0.0.1#5053jako serwer nadrzędny. Utrzymanie publicznego resolvera jako dodatkowego serwera nadrzędnego może umożliwić zapytaniom omijanie szyfrowanego serwera proxy, więc usuń te wpisy, jeśli chcesz, aby wszystkie zapytania nadrzędne Pi-hole korzystały z DoH.

5. Uruchom ponownie usługi i sprawdź rozwiązanie

Uruchom ponownie gniazdo, usługę proxy i demona FTL Pi-hole, aby załadować nową konfigurację:

sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
sudo systemctl restart pihole-FTL.service

Sprawdź status usługi:

sudo systemctl status dnscrypt-proxy.socket
sudo systemctl status dnscrypt-proxy.service
sudo systemctl status pihole-FTL.service

Każdy z nich powinien być aktywny, bez błędu powiązania lub niepowodzenia uruchomienia resolvera. Przetestuj serwer proxy bezpośrednio przez lokalny odbiornik DNS:

dig @127.0.0.1 -p 5053 example.com

Odpowiedź DNS oznacza, że ​​lokalny serwer proxy odpowiada. Następnie przetestuj Pi-hole na porcie 53:

dig @127.0.0.1 example.com

Sprawdź dziennik zapytań Pi-hole lub pulpit nawigacyjny, aby upewnić się, że żądanie dotarło do Pi-hole. Jeśli test się nie powiedzie, przejrzyj dziennik serwera proxy:

sudo journalctl -u dnscrypt-proxy.service -b --no-pager

Aby przeprowadzić dodatkową kontrolę, sprawdź dane wyjściowe z uruchomienia serwera proxy lub dziennika dla wybranego resolvera oraz status protokołu DoH. digSamo pomyślne zakończenie testu dowodzi, że rozpoznawanie nazw domen działa; samo w sobie nie dowodzi, że żądanie korzystało z protokołu HTTPS.

Typowe problemy i bezpieczne odzyskiwanie

  • „Adres jest już używany”: inny proces może już zajmować port 5053 lub nadpisanie gniazda nie zostało załadowane. Sprawdź nasłuchiwacze za pomocą sudo ss -lntup, przejrzyj drop-in za pomocą systemctl cat dnscrypt-proxy.socketi upewnij się, że puste linie resetowania poprzedzają wpisy 5053.
  • Serwer proxy jest aktywny, ale przekroczono limit czasu wyszukiwania: sprawdź wychodzący dostęp HTTPS, nazwę resolvera i logi serwera proxy. Niektóre sieci blokują połączenia DNS-over-HTTPS lub ograniczają port TCP 443.
  • Test proxy działa, ale Pi-hole nie odpowiada w górę: sprawdź, czy Pi-hole jest ustawiony dokładnie na 127.0.0.1#5053, a następnie zrestartuj pihole-FTL. Upewnij się, że standardowe pola wyboru w górę nie zapewniają po cichu alternatywnej trasy.
  • Samo Ubuntu nie może rozwiązywać nazw po tej zmianie: ta konfiguracja zmienia plik źródłowy Pi-hole, a nie hosta /etc/resolv.conf. Unikaj zastępowania tego pliku lub wyłączania go systemd-resolvedjako skrótu do rozwiązywania problemów.

Aby przywrócić poprzednią wersję, przywróć ustawienia DNS zapisane w Pi-hole i uruchom ponownie pihole-FTL. Gdy Pi-hole przestanie wskazywać na serwer proxy, możesz go wyłączyć lub usunąć dnscrypt-proxyza pomocą menedżera pakietów. Jeśli ten serwer również rozwiązuje własny DNS przez Pi-hole, przed zmianą usług zachowaj dostępną lokalną ścieżkę odzyskiwania.

Która opcja jest odpowiednia dla Twojej sieci?

Użyj tego rozwiązania z pojedynczym hostem proxy, gdy potrzebujesz scentralizowanego filtrowania DNS w Pi-hole i szyfrowanego ruchu z Pi-hole do jednego wybranego resolvera. Jest ono stosunkowo łatwe do sprawdzenia, ponieważ proxy ma jeden adres lokalny i port. Jeśli uruchamiasz Pi-hole w Dockerze, na innym serwerze lub w wielu sieciach, możesz potrzebować adresu sieci kontenera zamiast pętli zwrotnej i musisz ograniczyć nasłuchiwanie proxy, aby nie było ono widoczne jako otwarty resolver. Jeśli potrzebujesz filtrowania opartego na regułach, tożsamości dla każdego urządzenia lub szyfrowanego DNS dla urządzeń mobilnych poza domem, skonfiguruj te klienty lub zarządzaną bramę osobno; połączenie DoH nadrzędne Pi-hole nie szyfruje automatycznie ścieżki każdego klienta do Pi-hole.

Na koniec pamiętaj, że router lub klient może ominąć Pi-hole, jeśli reklamuje drugi serwer DNS. W przypadku filtrowania w całej sieci, przydziel klientom tylko adres Pi-hole przez DHCP i uwzględnij reklamy DNS IPv6, a także IPv4. Po zmianie ustawień routera sprawdź ustawienia na wielu urządzeniach, ponieważ poprawna konfiguracja proxy na serwerze nie może uniemożliwić klientowi bezpośredniego korzystania z innego resolvera.

Oficjalne referencje

Zostaw komentarz

Uruchom Debiana 12 na serwerze VPS z małą ilością pamięci RAM bez awarii pamięci masowej (OOM) powodujących awarię MySQL

Uruchom Debiana 12 na serwerze VPS z małą ilością pamięci RAM bez awarii pamięci masowej (OOM) powodujących awarię MySQL

Zdiagnozuj obciążenie pamięci w systemie Debian 12, dostosuj rozmiar bazy MariaDB lub MySQL, ostrożnie dodaj wymianę i sprawdź, czy Twój VPS jest w stanie obsłużyć obciążenie.

Jak skonfigurować połączenia VPN na pulpicie Pardus Linux

Jak skonfigurować połączenia VPN na pulpicie Pardus Linux

Skonfiguruj połączenia OpenVPN, WireGuard, OpenConnect lub IPsec VPN na komputerze Pardus 25 Desktop, a następnie sprawdź status routingu, DNS i tunelu.

SLES 15 kontra RHEL 9: Porównanie wydajności serwerów korporacyjnych

SLES 15 kontra RHEL 9: Porównanie wydajności serwerów korporacyjnych

Porównaj fakty dotyczące wydajności systemów SLES 15 i RHEL 9, strumienie jądra, profile TuneD, zmienne obciążenia i dowiedz się, jak przeprowadzić sprawiedliwe testy porównawcze obu systemów.

Naprawa serwera SUSE Linux zawieszającego się podczas ponownego uruchomienia i wyłączania systemd

Naprawa serwera SUSE Linux zawieszającego się podczas ponownego uruchomienia i wyłączania systemd

Dowiedz się, jak zdiagnozować i naprawić serwer SUSE Linux, który zawiesza się podczas wyłączania systemd, wyszukując zablokowane zadania, sprawdzając poprzedni rozruch i korygując blokującą usługę lub montowanie.

Jak dostosować panel XFCE w systemie Pardus Linux dla użytkowników systemu Windows

Jak dostosować panel XFCE w systemie Pardus Linux dla użytkowników systemu Windows

Spraw, by Pardus XFCE był dla Ciebie znajomy dzięki dolnemu paskowi zadań, menu aplikacji, ulubionym programom uruchamiającym, przyciskom otwartych okien, zasobnikowi systemowemu i zegarowi. Dowiedz się, co zmienić i jak przetestować układ.

Jak skonfigurować automatyczne aktualizacje Debiana bez interfejsu użytkownika za pomocą funkcji Unattended-Upgrades

Jak skonfigurować automatyczne aktualizacje Debiana bez interfejsu użytkownika za pomocą funkcji Unattended-Upgrades

Konfiguruj aktualizacje bezobsługowe na serwerze Debian bez interfejsu graficznego, weryfikuj liczniki systemd, testuj bezpiecznie, kontroluj ponowne uruchomienia i monitoruj automatyczne aktualizacje zabezpieczeń.

Naprawa braku połączenia konsoli internetowej Cockpit na serwerze SUSE Linux Enterprise

Naprawa braku połączenia konsoli internetowej Cockpit na serwerze SUSE Linux Enterprise

Rozwiąż problemy z Cockpitem na serwerze SUSE Linux Enterprise Server, sprawdzając adres URL HTTPS, gniazdo systemd, zainstalowane pakiety, strefę firewalld, certyfikaty i dzienniki.

Jak przeprowadzić migrację systemu SLES 15 SP5 do SP6 bez przestoju systemu

Jak przeprowadzić migrację systemu SLES 15 SP5 do SP6 bez przestoju systemu

Dowiedz się, jak zachować dostępność usług podczas migracji z systemu SLES 15 SP5 do SP6 dzięki sprawdzonej aktualizacji ciągłej SLE HA, sprawdzeniu węzeł po węźle i wyraźnemu zastrzeżeniu dotyczącym przestoju pojedynczego serwera.

Jak skonfigurować Pi-hole DNS-over-HTTPS na Ubuntu Server 24.04

Jak skonfigurować Pi-hole DNS-over-HTTPS na Ubuntu Server 24.04

Skonfiguruj Pi-hole na Ubuntu Server 24.04 do korzystania z DNS-over-HTTPS z dnscrypt-proxy, a następnie zweryfikuj lokalny serwer nadrzędny i unikaj typowych konfliktów DNS.

Jak naprawić problem z uruchomieniem interfejsu graficznego YaST przez przekierowanie SSH X11

Jak naprawić problem z uruchomieniem interfejsu graficznego YaST przez przekierowanie SSH X11

Rozwiąż problemy z interfejsem graficznym YaST podczas przekierowywania SSH X11. Przetestuj DISPLAY, napraw udokumentowany błąd Qt XIO, sprawdź ustawienia SSH i w razie potrzeby przełącz się na ncurses.