Pi-hole + AdGuard — DNS jako warstwa filtrująca w sieci
Adblock w przeglądarce zostawia telewizor i telefon na pastwę reklam. DNS-level filtering załatwia wszystko z każdego urządzenia. Pokazuję mój setup Pi-hole + upstream AdGuard.

uBlock Origin blokuje reklamy w przeglądarce. Telewizor, nie ma uBlock. Telefon, apki nie używają uBlocka. Konsola, smart home, IoT, wszystko leci do internetu z reklamami i telemetrią.
Rozwiązanie: blokowanie na poziomie DNS. Każde urządzenie pyta DNS o IP serwera, jeśli DNS odmawia (zwraca 0.0.0.0), komunikacja się nie odbywa. Cała sieć dostaje filtrowanie naraz.
Architektura
[Każde urządzenie w LAN]
↓ DNS query
[Pi-hole na Proxmox VM] ← filtruje znane reklamowe domeny
↓ jeśli OK
[AdGuard upstream] ← drugi filtr + DoH (DNS over HTTPS)
↓
[Cloudflare 1.1.1.1 / Quad9]Router lokalny ma w DHCP wpisany Pi-hole jako primary DNS. Każde urządzenie automatycznie idzie tą drogą.
Pi-hole setup
VM na Proxmox, Ubuntu Server, 1GB RAM (z wstecznym kompresorem zapasu, Pi-hole na 256MB też hula).
curl -sSL https://install.pi-hole.net | bashInstalator pyta:
- Interface (zwykle
eth0) - Upstream DNS (wybieram Custom → AdGuard)
- Block lists (default jest OK na start)
- Web UI (yes, port 80)
- Logging (yes, ale TTL 7 dni)
Po 5 minutach panel jest dostępny pod http://pi-hole.local/admin.
AdGuard jako upstream
Po co dwa filtry? Pi-hole ma wielką community blocklist, AdGuard dodaje:
- bardzo agresywne anti-tracking lists
- DNS-over-HTTPS (DoH) do upstream'u
- regex matching (Pi-hole tylko domain match)
Setup AdGuard też jako VM albo jeszcze prościej, Docker:
services:
adguard:
image: adguard/adguardhome
ports:
- "8853:53/udp"
- "8853:53/tcp"
- "3000:3000"
volumes:
- adguard-data:/opt/adguardhome/confW Pi-hole settings → DNS → custom upstream: 192.168.x.x:8853.
Co warto wpisać do block list
Domyślne listy załatwiają reklamy. Ja dodaję:
- OISD basic, najnowocześniejsza, dobrze utrzymywana
- Steven Black hosts, agreguje wiele list, ad+tracking+malware
- AdGuard SDN trackers, telemetria mobile apps
- Custom: domeny smart-home które za dużo dzwonią do internetu
Blokuję np. *.tuya.com (chińskie żarówki), *.miio.com (Xiaomi), *.tplinkcloud.com, ich produkty działają lokalnie, telemetria nie potrzebna.
Whitelist — bez tego nie działa
Niektóre apki padają gdy zablokujesz im telemetrię. Mam ~15 whitelist'ów:
# Spotify telemetria - blokowanie psuje skip między urządzeniami
gew4-spclient.spotify.com
ap-gew4.spotify.com
# Apple - blokowanie psuje iCloud sync
*.apple.com (selektywnie)
# Banki PL - PSD2 wymaga ich telemetria
api.mbank.plReguła: jak coś psuje, sprawdzam Pi-hole logi, identyfikuję domenę, dodaję do whitelist. Maks 5 minut.
Rezultaty po roku
Statystyki z mojego Pi-hole:
- Łączna liczba blokowanych zapytań: ~4M
- % blokowanych: 23%
- Najczęściej blokowane:
app-measurement.com(Google Analytics mobile) - Top 3 urządzenia generujące najwięcej query: TV LG, telefon żony, Sonos
Pułapki
1. Single point of failure. Padnie Pi-hole → cały internet padnie. Mam drugiego Pi-hole jako secondary DNS w DHCP. Failover automatyczny.
2. CDN load balancing. Niektóre serwisy używają DNS do load balancingu (zwracają różne IP). Cache Pi-hole może to zaburzyć. TTL ustawiam na max 1h.
3. DoH/DoT bypass. Współczesne przeglądarki (Firefox, Chrome) potrafią używać DoH bezpośrednio do CF/Google. Bypassują mój DNS. Trzeba to wyłączyć w settings przeglądarki LUB blokować port 853 na firewallu.
4. Smart TV bypass. LG i Samsung mają hardkodowane DNS Google. Bypass. Rozwiązanie: firewall rule blokujący port 53 na zewnątrz dla IP TV.
Bonus: integracja z Home Assistant
Pi-hole ma API. Mam HA integration:
- Stat blokowanych zapytań na dashboardzie
- Toggle "wyłącz blokadę na 5 min" przyciskiem (gdy coś psuje)
- Alert gdy blokada przekracza 50% (znak że coś dziwnego się dzieje)
# configuration.yaml
pi_hole:
- host: 192.168.1.10
api_key: !secret pihole_api_keyDNS-level blocking to najbardziej leveraged rzecz jaką masz w sieci domowej. Konfigurujesz raz, działa na wszystko, w tle. Pi-hole to ~10 minut setup'u, a daje filtrowanie reklam, telemetrii i znanych malware'ów dla każdego urządzenia w LAN.