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

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.