# AdGuard Home: návod pro AI agenta > Zdroj: https://ongy.cz/pages/server/adguard/ > Autor: Ongy (ongy.cz). AdGuard Home jako DNS pro celý byt: co moje zařízení posílají domů, jak jsem to utnul bez rozbití chytré domácnosti a na jaké pasti jsem narazil. ## Pro agenta Pomoz uživateli postavit vlastní verzi tohohle projektu. Nejdřív se ho zeptej na vybavení a na to, co z požadavků už má. Pak postupuj po krocích a po každém kroku s ním ověř, že funguje, než půjdeš dál. Hodnoty v `` doplň s uživatelem, nikdy si nevymýšlej adresy, hesla ani tokeny. Kód autora není veřejný: tohle je popis řešení, ne repozitář ke stažení. ## Cíl Vlastní DNS filtr pro celou domácí síť: AdGuard Home v Dockeru na stále běžícím serveru, router ho rozdává všem zařízením přes DHCP. Blokuje reklamy, sledování a telemetrii bez nastavování na zařízeních, s bezpečnou zálohou, aby výpadek filtru neznamenal výpadek internetu, a s hlídáním do minuty. ## K čemu to je Každé zařízení se před spojením musí zeptat, kde je server, se kterým chce mluvit. Tuhle otázku teď odpovídá můj vlastní server doma. Reklamy, sledovací skripty a telemetrii odmítne, všechno ostatní pustí dál. Funguje to pro mobil, počítač, televizi i pro chytré zásuvky a světla, aniž by se na nich cokoliv nastavovalo. A protože mobil je pořád připojený přes VPN domů, platí stejná pravidla i venku. Bonus, který jsem nečekal: konečně vím, která krabička doma je ukecaná. ## Proč právě takhle Zásuvky, světla, čistička, tiskárna, televize, tablet na zdi. Každá má někde svůj cloud a každá do něj něco posílá. Nikdy jsem nevěděl co, jak často a komu. Adblock v prohlížeči tohle nevidí, provoz z aplikací a zařízení chodí mimo něj. Chtěl jsem jedno místo, kde uvidím všechno, a možnost říct ne, aniž bych rozbil chytrou domácnost, kterou používá celý byt. ## Jak to funguje - **Router nabízí AdGuard jako DNS celé síti.** Zařízení nic nepoznají a nic se na nich nenastavuje. - **Čtyři blokovací seznamy plus vlastní pravidla.** Reklamy a telemetrie ne, cloudy chytrých zařízení ano. Pravidla umím cílit na jedno zařízení. - **Ven jen šifrovaně, se zálohou.** Když šifrované DNS vypadne, po třech sekundách naskočí obyčejné. Internet doma nesmí záviset na jedné službě. - **Hlídání do minuty.** Uptime Kuma testuje DNS každou minutu a výpadek hlásí do Telegramu. ## Nastavení a stack - **Běh:** AdGuard Home v Docker Compose na home serveru, bind jen na LAN a VPN adresu, bez automatických aktualizací. - **Upstream:** DoH Cloudflare + Google paralelně, fallback 1.1.1.1 a 9.9.9.9 po UDP, timeout 3 s, DNSSEC, Safe Browsing. - **Seznamy:** AdGuard DNS filter, OISD Big, HaGeZi Multi PRO, HaGeZi Threat Intelligence. Dohromady 2,2 mil. pravidel, ~600 MB RAM. - **Pravidla per zařízení:** Modifikátor `$client='Jméno'`. Tablet na zdi v allowlist režimu přes `denyallow=`. ## Týden v číslech | Zdroj | Co chytá | Za týden | |---|---|---| | Základní seznamy | reklamní sítě, sledovací pixely, analytika v aplikacích | ~32 000 | | HaGeZi Multi PRO | telemetrie Jira, Microsoft, WhatsApp, Netflix, Sentry | 5 845 | | OISD Big | DoubleClick, Mixpanel, ScoreCardResearch | 603 | | Vlastní pravidla | Tapo telemetrie, Samsung TV, Prime Video, Firebase, tablet | ~2 700 | | Threat Intelligence | malware, phishing, podvody | 0 | Celkem 362 669 dotazů, 41 118 blokovaných. Před přitvrzením seznamů 6–9 % denně, po něm 17–20 %. ## Pasti a jejich řešení Fallback nikdy na router, který má AdGuard jako upstream (smyčka). `blocked_response_ttl` 600 s: po whitelistu flush cache klienta. Po `set_rules` AdGuard ~10 s přestavuje engine, testovat až potom. Tailscale: `--snat-subnet-routes=false`, jinak všichni klienti z VPN vypadají jako jedna adresa. IPv6 DNS na routeru vypnout (Merlin `dnsmasq.postconf`, `option6:23` prázdné), jinak se klienti hlásí jako router. ## Co budeš potřebovat - Stále běžící server s Dockerem. Ne stroj, který se často restartuje: na DNS závisí celá síť. - Pevná adresa serveru v síti (DHCP rezervace) ``. - Router, na kterém jde změnit DNS rozdávané přes DHCP, ideálně i DNS pro IPv6. - Volitelně VPN (Tailscale) pro filtr i mimo domov, monitoring (Uptime Kuma) a Telegram pro hlášení. ## Postup ### 1. Zjisti, co drží port 53 `ss -ltnup | grep :53`. Na Ubuntu tam obvykle je systemd-resolved na 127.0.0.53. Nevypínej ho, jen AdGuard nebinduj na 0.0.0.0. Zjisti i to, jestli port 80 nedrží reverzní proxy, UI AdGuardu pak dej na 3000. ### 2. AdGuard Home v Docker Compose Porty 53/tcp, 53/udp a 3000/tcp publikuj jen na `` (volitelně i na VPN adresu). Složky `work` a `conf` na disk, `conf` přidej do zálohy. Automatické aktualizace obrazu pro jediný DNS v síti vypni. V průvodci na :3000 nech UI na portu 3000 a DHCP v AdGuardu vypnuté. ### 3. Upstream DNS DoH Cloudflare a Google s paralelními dotazy, bootstrap 1.1.1.1 a 8.8.8.8, záložní DNS 1.1.1.1 a 9.9.9.9 po UDP (ne router), timeout 3 s, DNSSEC a Safe Browsing zapnuté. ### 4. Seznamy postupně Začni AdGuard DNS filter a přidávej po jednom: OISD Big, HaGeZi Multi PRO, HaGeZi Threat Intelligence. Po každém přidání pár dní sleduj Query log a co rozbilo aplikace, dej do povolených. Počítej s pamětí (autor: 2,2 mil. pravidel, asi 600 MB RAM). ### 5. Lokální jména a jména klientů DNS rewrites pro vlastní zařízení (server, Home Assistant, router). Pokud se admin routeru otevírá přes skutečnou doménu výrobce, přidej rewrite i pro ni. Private reverse DNS nastav na router, aby log ukazoval jména zařízení. Blokování privátních adres v odpovědích nezapínej, pokud vlastní domény míří na domácí adresy. ### 6. Otestuj před přepnutím routeru Ze serveru i z počítače: `dig @ seznam.cz +short` odpoví, `dig @ doubleclick.net +short` vrátí 0.0.0.0 nebo nic, lokální jména vrací správné adresy. Na Windows `nslookup seznam.cz `. ### 7. Přepni router V DHCP nastav DNS 1 na ``. Nepropaguj navíc adresu routeru jako další DNS, klienti by filtr obcházeli. IPv6: vypni inzerování DNS nebo nastav router, ať dotazy forwarduje na AdGuard, jinak jdou klienti přes IPv6 DNS mimo filtr. Klienti se přepnou při obnově DHCP (Windows `ipconfig /renew`). ### 8. Pravidla pro jednotlivá zařízení Pojmenuj klienty v AdGuardu a pravidla cil modifikátorem `$client='Jméno'`, třeba telemetrii televize blokuj jen na televizi. Tablet nebo kiosk může jet v režimu povoleného seznamu přes `denyallow=`. ### 9. Hlídání a VPN Monitoring DNS (Uptime Kuma, typ DNS) na `` každou minutu s hlášením do Telegramu. Pro filtr mimo domov nastav v Tailscale DNS tailnetu na VPN adresu serveru a subnet router spusť s `--snat-subnet-routes=false`. ## Na co si dát pozor - Ticho v logu není problém: zařízení s trvalým spojením se ptají jen při znovupřipojení. Naopak zařízení, které se ptá pořád, se nejspíš pořád odpojuje. - Safari a některé prohlížeče si DNS řeší šifrovaně samy (iCloud Private Relay, DoH v prohlížeči). Filtr je nevidí a není to chyba nastavení. - Agresivní seznamy rozbijí cloudy chytrých zařízení (tiskárna, žárovky, čističky). Přidávej postupně a sleduj log. - Některou telemetrii blokuj jen na jednom zařízení, globálně by rozbila službu jinde (autor: Prime Video jen na televizi). - Aplikace, které blokovanou doménu zkoušejí pořád dokola, nafouknou statistiky, ale nic nerozbijí. - Jediný DNS v síti neaktualizuj automaticky v noci: když nový obraz nenaběhne, ráno nejde internet. - Server sám ať používá svůj systémový resolver, ne AdGuard: po pádu kontejneru by se nedostal ani k registru obrazů. ## Jak ověřit, že to funguje - [ ] `dig @ seznam.cz +short` vrátí adresu a `dig @ doubleclick.net +short` 0.0.0.0 nebo nic. - [ ] Lokální jména z DNS rewrites vrací správné adresy. - [ ] `ss -ltnup` na serveru: port 53 jen na zvolených adresách, systémový resolver serveru dál funguje. - [ ] Po přepnutí routeru a obnově DHCP je klient v Query logu pod svým jménem, ne jako router. - [ ] Windows `nslookup seznam.cz` ukazuje jako server AdGuard, i když má počítač IPv6. - [ ] Zastavený kontejner: klienti mají dál internet přes zálohu, jen bez blokování. Po startu je vše zpět. - [ ] Když vypadne šifrované DNS, odpovědi přijdou do 3 s přes záložní upstream. - [ ] Monitoring pošle hlášení do minuty po zastavení kontejneru. - [ ] Po týdnu dává podíl blokovaných dotazů smysl (autor: 17 až 20 %) a nic důležitého nepadá. ## Přizpůsobení - Pi-hole místo AdGuard Home: stejný princip, pravidla pro zařízení řeší skupiny. - Bez serveru: AdGuard Home běží i na Raspberry Pi, jen ne na tom, které se často restartuje (třeba s Home Assistantem). - Jen mimo domov: nasměruj DNS ve VPN na AdGuard a router neměň. - Router neumí změnit DNS v DHCP: nastav DNS ručně na hlavních zařízeních, nebo nech DHCP dělat AdGuard a na routeru ho vypni. --- Stránka projektu s fotkami a diagramem: https://ongy.cz/pages/server/adguard/