PSSStudio
MikroTik · AdGuard · DNS

MikroTik: jak wymusić DNS przez AdGuard Home (force-DNS)

Aktualizacja: lipiec 2026 · czas czytania ~7 min

Postawiłeś AdGuard Home, ustawiłeś go jako serwer DNS w DHCP i cieszysz się siecią bez reklam. Do czasu, aż zauważasz, że smart TV, telefon z Androidem albo aplikacja z zaszytym na sztywno 8.8.8.8 dalej wyświetlają reklamy. Powód jest prosty: urządzenie omija Twój DNS i pyta bezpośrednio serwer Google/Cloudflare.

Rozwiązanie: skoro cały ruch i tak przechodzi przez router, to na MikroTiku przechwytujemy każde zapytanie DNS (port 53) i siłą przekierowujemy je do AdGuarda. Urządzenie „myśli", że gada z 8.8.8.8, a odpowiada mu Twój bloker. Poniżej komplet komend RouterOS i, co ważne, jak zrobić wyjątki, żeby np. własny komputer administracyjny nie był filtrowany.

Założenia. RouterOS 7.x, AdGuard Home nasłuchuje na 192.168.100.98 port 53, sieć LAN to 192.168.100.0/24. Podmień adresy na swoje. Masz jeden interface-list LAN obejmujący porty/most lokalny (domyślna konfiguracja RouterOS zwykle go tworzy).

Krok 1: reguła NAT przekierowująca DNS do AdGuarda

Dodajemy do dstnat dwie reguły — dla UDP i TCP (DNS używa obu). Każde zapytanie na port 53 wychodzące z LAN ląduje na AdGuardzie:

/ip firewall nat
add chain=dstnat action=dst-nat \
    protocol=udp dst-port=53 \
    in-interface-list=LAN \
    src-address=!192.168.100.98 \
    to-addresses=192.168.100.98 to-ports=53 \
    comment="force-dns-adguard-udp"

add chain=dstnat action=dst-nat \
    protocol=tcp dst-port=53 \
    in-interface-list=LAN \
    src-address=!192.168.100.98 \
    to-addresses=192.168.100.98 to-ports=53 \
    comment="force-dns-adguard-tcp"

Kluczowy jest warunek src-address=!192.168.100.98 — dzięki niemu sam AdGuard (który przecież też musi odpytywać DNS w górę) nie wpada w pętlę przekierowania na samego siebie. Bez tego stracisz rozwiązywanie nazw na całej sieci.

Krok 2: wyjątki — lista dns-bypass

W praktyce zawsze chcesz kogoś wyłączyć z wymuszania: komputer administracyjny, serwer, na którym stoi coś wrażliwego na filtrację, albo urządzenie, które samo pobiera aktualizacje z zablokowanego przez upstream hosta. Tworzymy listę adresów i dokładamy warunek do obu reguł:

# dodaj hosta do wyjątków
/ip firewall address-list
add list=dns-bypass address=192.168.100.191 comment="PC-admin"

# a w regułach NAT dołóż warunek wykluczający tę listę
/ip firewall nat
set [find comment="force-dns-adguard-udp"] src-address-list=!dns-bypass
set [find comment="force-dns-adguard-tcp"] src-address-list=!dns-bypass
Realny przykład z życia. Home Assistant potrafił mieć problem z pobieraniem aktualizacji, bo upstream AdGuarda (np. Cloudflare Family) blokował host ghcr.io. Dodanie IP Home Assistanta do dns-bypass naprawiło pobieranie, nie rozwalając filtracji na reszcie sieci.

Krok 3: sprawdzenie, czy działa

Z dowolnego urządzenia w LAN (spoza listy bypass) wymuś zapytanie do publicznego DNS-a i zobacz, kto naprawdę odpowiada:

# Windows
nslookup dwoolarnia.example 8.8.8.8

# Linux/macOS
dig @8.8.8.8 example.com

Jeśli force-DNS działa, w statystykach zapytań AdGuarda pojawi się ta domena — mimo że pytałeś „Google". W panelu MikroTika liczniki reguł też będą rosnąć:

/ip firewall nat print stats where comment~"force-dns"

Czego to NIE załatwia: DoH i DoT

Powyższe łapie klasyczny DNS na porcie 53. Nowsze urządzenia i przeglądarki potrafią używać DNS-over-HTTPS (DoH, port 443) lub DNS-over-TLS (DoT, port 853) — tego nie odróżnisz prostą regułą portową, bo DoH wygląda jak zwykły HTTPS.

Sprzęt do tego zadania

Router MikroTik dla domu / małej firmy

Do force-DNS wystarczy praktycznie dowolny MikroTik z RouterOS. Popularne, tanie modele na start to hEX (RB750Gr3) do sieci przewodowej albo hAP ax² / ax³, jeśli chcesz też Wi-Fi.

Zobacz modele MikroTik ›
Link afiliacyjny — jeśli kupisz przez niego, dostajemy niewielką prowizję, dla Ciebie cena bez zmian.

Podsumowanie

W kolejnym poradniku pokazujemy, jak postawić samego AdGuard Home w Dockerze na OpenMediaVault — od kontenera po szyfrowany upstream.