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.

Wiersz terminala serwera Ubuntu z poleceniem sudo apt install dnscrypt-proxy
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.

Edytor Nano pokazujący nadpisanie gniazda systemd powiązanego z 127.0.0.1 na porcie 5053
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ź:

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

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.

Edytor Nano pokazujący skonfigurowany serwer proxy dnscrypt z aktywacją gniazda i programem do rozpoznawania nazw Cloudflare-Security
Ustawienia TOML protokołu dnscrypt-proxy wykorzystujące aktywację gniazda systemd i wybierające resolver zabezpieczeń Cloudflare.

3. Wybierz resolver DoH

Otwórz plik konfiguracji pakietu:

sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Ustaw następujące wartości, zachowując pozostałą część konfiguracji pakietu w stanie nienaruszonym:

listen_addresses = []
server_names = ['cloudflare-security']

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ć:

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

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):

sudo journalctl -u dnscrypt-proxy.service -n 50 --no-pager
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ą.

Monit terminala Ubuntu pokazujący polecenie Pi-hole umożliwiające ustawienie portu 127.0.0.1 5053 jako portu DNS nadrzędnego
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:

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

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.

Aby uzyskać szczegółowe informacje o poleceniach i wersji, zapoznaj się z podręcznikiem Pi-hole dnscrypt-proxy (z 16 lutego 2026 r.), informacją o wycofaniu usługi Cloudflared (z 12 lutego 2026 r.), rekordem pakietu Noble dnscrypt-proxy w Ubuntu oraz aktualną publiczną listą resolverów DoH i DNSCrypt . Jeśli jakakolwiek usługa jest nieaktywna, nie przełączaj Pi-hole na serwer proxy, dopóki test lokalnego zapytania nie zakończy się pomyślnie.

Zostaw komentarz

Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić

Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.

Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd

Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.

Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.

Włącz szyfrowanie po stronie serwera Nextcloud z mierzalnym wpływem

Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.

Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.