Strona główna
» Jak
»
Szyfrowanie Pi-hole Upstream DNS na Ubuntu Server 24.04
Szyfrowanie Pi-hole Upstream DNS na Ubuntu Server 24.04
W tym przykładowym przykładzie Linh uruchamia Pi-hole na Ubuntu Server 24.04 i chce szyfrować żądania DNS wysyłane przez Pi-hole. Zainstaluj program dnscrypt-proxy, powiąż go z programem 127.0.0.1:5053, wybierz resolver DNS-over-HTTPS (DoH), przetestuj lokalny serwer proxy, a następnie wskaż go Pi-hole. W tym przewodniku założono, że Pi-hole jest już zainstalowany i działa; Linh to hipotetyczny przykład, a nie prawdziwy raport z instalacji ani testów.
Wybierz aktualną metodę DoH
Pi-hole sam nie komunikuje się z serwerem nadrzędnym (upstream resolver) w protokole DoH; zazwyczaj przekierowuje DNS na adres IP i port. Lokalny serwer proxy łączy oba protokoły: Pi-hole wysyła standardowy DNS do prywatnego lokalnego serwera nasłuchującego, a serwer proxy wysyła zaszyfrowane żądania do wybranego serwera nasłuchującego. W tym przykładzie Linh korzysta dnscrypt-proxyz tego samego serwera i utrzymuje swój serwer nasłuchujący w pętli zwrotnej, więc inne urządzenia nie mogą połączyć się bezpośrednio z tym serwerem proxy.
Unikaj rozpoczynania nowej instalacji ze starszą cloudflared proxy-dnsrecepturą. Aktualna strona Pi-hole w serwisie Cloudflare informuje, że ta funkcja została wycofana przez Cloudflare w listopadzie 2025 roku i że nowe instalacje z jej użyciem nie są zalecane. Instrukcje Pi-hole dotyczące dnscrypt-proxy oferują alternatywę. Lista pakietów Ubuntu Noble zawiera obecnie dnscrypt-proxy: wersje pakietów różnią się w zależności od architektury i mogą ulec zmianie wraz z publikacją aktualizacji.
Polecenie terminala Ubuntu służące do instalacji dnscrypt-proxy z repozytoriów pakietów Noble.
1. Zainstaluj pakiet Ubuntu
Zaktualizuj listy pakietów APT i zainstaluj pakiet repozytorium Noble:
sudo apt update
sudo apt install dnscrypt-proxy
Pakiet znajduje się w komponencie Universe w Ubuntu. Jeśli APT nie może go zlokalizować, sprawdź, czy Universe jest włączony i uruchom ponownie sudo apt update. Nie pobieraj losowej kompilacji innej firmy, aby obejść problem z konfiguracją repozytorium.
Przed kontynuowaniem sprawdź, czy Ubuntu zainstalowało jednostkę gniazda systemd używaną przez procedurę Pi-hole:
systemctl list-unit-files dnscrypt-proxy.socket
Lista plików pakietu Ubuntu Noble zawiera gniazdo dnscrypt-proxy.socket, a instrukcje Pi-hole wykorzystują to gniazdo do udostępniania lokalnego programu nasłuchującego DNS bez konieczności konkurowania z usługą portu 53 Pi-hole.
Nadpisanie gniazda z nasłuchiwaczami TCP i UDP wyczyszczonymi i przekierowanymi do localhost na porcie 5053.
2. Powiąż serwer proxy z portem lokalnym 5053
Usługa DNS FTL Pi-hole zazwyczaj posiada port 53. Nadaj serwerowi dnscrypt-proxy inny port i połącz się tylko z samym serwerem. Utwórz nadpisanie systemd:
sudo systemctl edit dnscrypt-proxy.socket
Dodaj poniższe wiersze do pustego pliku nadpisywania, zapisz i wyjdź:
Puste przypisania usuwają oryginalne odbiorniki portu 53 jednostki gniazda przed dodaniem nowych adresów. Zachowanie odbiornika 127.0.0.1jest ważne: nie należy go zmieniać w 0.0.0.0konfiguracji tego samego hosta, ponieważ spowodowałoby to ujawnienie serwera proxy na każdym interfejsie sieciowym.
Pusta listen_addresseslista informuje serwer dnscrypt-proxy o konieczności aktywacji gniazda systemd. Nazwany resolver zabezpieczeń Cloudflare jest przykładem użytym w przewodniku dnscrypt-proxy Pi-hole; oprócz własnych list blokowania Pi-hole stosuje on filtrowanie złośliwego oprogramowania resolvera. Jeśli wolisz innego dostawcę lub nie chcesz stosować dodatkowego filtrowania zabezpieczeń, wybierz aktualny resolver DoH z publicznej listy resolverów i użyj jego dokładnej nazwy serwera. Dostępne nazwy i zasady resolverów mogą ulec zmianie, dlatego sprawdź aktualny wpis, zamiast kopiować nieaktualną nazwę ze starego posta.
Uruchom ponownie gniazdo i usługę, aby ustawienia nadpisywania i TOML zaczęły obowiązywać:
Następnie przetestuj lokalnego nasłuchiwacza przed zmianą źródła sygnału Pi-hole:
dig @127.0.0.1 -p 5053 example.com
Odpowiedź DNS i status wyjścia równy zero oznaczają, że lokalny serwer proxy odpowiedział na zapytanie. Aby potwierdzić, że wybrany serwer nadrzędny używa DoH, sprawdź ostatnie komunikaty usługi i poszukaj resolvera oznaczonego OK (DoH):
Jeśli dignie jest zainstalowany, zainstaluj pakiet Ubuntu dnsutils. Jeśli zapytanie przekroczy limit czasu lub w dzienniku nie pojawi się resolver DoH, sprawdź sudo systemctl status dnscrypt-proxy.socket dnscrypt-proxy.servicedziennik usług przed kontynuacją.
Polecenie Pi-hole CLI służące do ustawienia lokalnego szyfrowanego serwera proxy DNS jako resolvera nadrzędnego.
4. Skieruj Pi-hole na lokalny serwer proxy
Dopiero po zakończeniu lokalnego testu zastąp listę nadrzędną Pi-hole listą lokalnego nasłuchującego:
Wartość wykorzystuje niestandardowy format upstream Pi-hole: 127.0.0.1jest to host lokalny i #5053określa niestandardowy port DNS. Można to również zrobić 127.0.0.1#5053w Ustawieniach > DNS > Niestandardowe serwery upstream DNS w interfejsie administracyjnym Pi-hole. Odznacz wstępnie ustawione publiczne serwery upstream i zapisz zmiany, w przeciwnym razie Pi-hole może nadal wysyłać niektóre żądania bezpośrednio do nich bez użycia DoH.
Sprawdź pełną ścieżkę
Zapytaj samego Pi-hole, używając jego adresu LAN zamiast PIHOLE_IP:
dig @PIHOLE_IP example.com
Potwierdź, że wyszukiwanie zakończyło się powodzeniem. Dziennik zapytań Pi-hole pokazuje żądanie klienta, a status usługi lub dzienniki dnscrypt-proxy pokazują, że wybrany serwer nadrzędny jest osiągalny. Wynikowa ścieżka powinna przebiegać z klienta do Pi-hole przez sieć LAN, następnie z Pi-hole do lokalnego serwera proxy, a następnie z serwera proxy do resolvera DoH. Szyfruje to połączenie serwer-resolver; nie szyfruje zwykłego ruchu DNS między klientem a Pi-hole w sieci LAN, nie ukrywa zapytań od wybranego resolvera ani nie przekształca Pi-hole w sieć VPN.