Tutorial
Werbung auf MikroTik mit AdList blockieren
Blockiere Werbung auf DNS-Ebene auf MikroTik-Routern mit der nativen AdList-Funktion in RouterOS v7.15+ — ohne Pi-hole oder Extra-Hardware.
Zusammenfassung MikroTik AdList (RouterOS v7.15+) blockiert Werbung auf DNS-Ebene für jedes Gerät im LAN — ohne Pi-hole und ohne Zusatz-Hardware. Diese Anleitung deckt die Voraussetzungen, das Einrichten öffentlicher und eigener Blocklisten, das Testen, Whitelisting und die zu erwartenden Grenzen ab (In-App-Werbung und YouTube-Videoanzeigen liegen außerhalb der DNS-basierten Filterung).
Warum AdList statt Pi-hole?
AdList ist MikroTiks integrierter, DNS-basierter Werbeblocker. Anders als ein Pi-hole-Container läuft AdList nativ in RouterOS und braucht weder ein separates Gerät noch eine Container-Runtime oder eine DNS-Umstellung. Einmal aktiviert, filtert er Anfragen an bekannte Werbeserver (A- und AAAA-Records), indem er 0.0.0.0 anstelle der echten IP zurückgibt. Jedes Handy, jeder Fernseher, jede Konsole und jedes IoT-Gerät im LAN bekommt die Sperre automatisch, solange der MikroTik als DNS dient.
Im Vergleich zum Betrieb von Pi-hole punktet AdList in drei operativen Dimensionen: das Setup ist ein einziges Panel innerhalb von IP → DNS statt der Bereitstellung eines separaten Hosts; Updates kommen mit den RouterOS-Upgrades mit, nicht über einen parallelen apt-Zyklus; und im Netzwerk gibt es einen Single Point of Failure weniger. Der Trade-off ist RAM — große Listen verbrauchen Cache-Platz, daher musst du ihn eventuell erhöhen.
Router vorbereiten
Zwei Voraussetzungen müssen erfüllt sein, bevor AdList nützlich wird:
Auf RouterOS v7.15 oder neuer aktualisieren. AdList wurde in v7.15 eingeführt. Gehe zu System → Packages → Check for updates und installiere die aktuelle stable Version. Ältere Releases zeigen den Pfad /ip dns adlist schlicht nicht an.
DNS-Cache-Größe erhöhen. Die Adlists leben im DNS-Cache; die Standardgröße ist für jede ernsthafte Liste zu klein und produziert den Fehler adlist read: max cache size reached. Hebe in IP → DNS den Wert Cache size so weit an, dass deine Listen hineinpassen — für einen Router mit 128 MB RAM und einer oder zwei Listen sind 30–40 MB ein vernünftiges Ziel.
/ip/dns set cache-size=40000
Stelle sicher, dass Allow Remote Requests aktiviert ist, damit LAN-Geräte den Router nach DNS fragen können.
Eine öffentliche Adlist hinzufügen
Öffentliche Blocklisten wie die Hosts-Datei von StevenBlack liefern dir am ersten Tag breite Werbe- und Tracker-Abdeckung. Unter IP → DNS → Adlist klickst du auf +, fügst die Listen-URL ein und deaktivierst SSL Verify, sofern du nicht bereits die zugehörige Zertifikatsautorität importiert hast. Nach dem Parsen erscheint die Liste mit einem Match- und einem Name-Count.
CLI-Äquivalent:
/ip/dns/adlist add \ url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \ ssl-verify=noSo prüfst du, wie viele Domains geladen wurden und wie viele Anfragen bereits blockiert wurden:
/ip/dns/adlist/printmatch-count ist die Anzahl blockierter Anfragen; name-count ist die Anzahl der Einträge in der Liste.
Whitelisting und Forwarder
Manchmal landet eine Domain, die du eigentlich erreichen willst, in einer öffentlichen Blockliste. Lege einen statischen Forward-Eintrag an, damit AdList genau diesen Namen umgeht:
/ip/dns/static add name=example.com type=FWDForwarder erlauben dir außerdem, für bestimmte Domains eigene Upstream-Resolver (Quad9, Cloudflare) zu definieren. Definiere zuerst den Forwarder-Pool, dann zeigt der statische Eintrag darauf:
/ip/dns/forwarders add dns-servers=1.1.1.1,8.8.8.8 name=my-fwd/ip/dns/static add name=example.com type=FWD forward-to=my-fwdEigene Blockliste erstellen und importieren
Für mehr Kontrolle baust du dir deine eigene Liste. Jede Zeile lautet 0.0.0.0 domain:
0.0.0.0 adverts.com0.0.0.0 click.adclick.com0.0.0.0 malware-site.com0.0.0.0 fraud.scam.comDatei in RouterOS anlegen oder hochladen:
/file/add name=adbl.txt/file/edit adbl.txt contentsTrage die Domain-Liste ein, speichere mit Ctrl-O und hänge die Datei an AdList:
/ip/dns/adlist add file=adbl.txtBestätige das Parsen über den name-count mit /ip/dns/adlist/print.
Testen und Fehler finden
Leere den DNS-Cache auf einem Client und schlage eine bekannte Werbedomain nach:
ipconfig /flushdnsnslookup someadserver.comDie Antwort sollte als 0.0.0.0 zurückkommen statt als echte IP.
Beobachte den match-count über die Zeit, um zu sehen, ob die Liste tatsächlich Wirkung zeigt. Erscheint adlist read: max cache size reached, erhöhe den Cache oder lass eine Liste weg. Für tiefergehendes DNS-Härten als Ergänzung siehe unsere Guides zur DNS-over-HTTPS-Konfiguration und zum Sperren von Traffic in ein Land.
Wartung und Grenzen
- Automatische Updates. RouterOS aktualisiert Adlists alle vier Stunden. Ein manuelles Reload über
/ip/dns/adlist/reloadist möglich, aber selten nötig. - Speicherbudget. Große Listen kosten RAM. Passe Anzahl und Größe der Listen an den freien Speicher des Geräts an; ein hAP ac² hat einen ganz anderen Spielraum als ein RB5009.
- Blockade nur per DNS. AdList kann keine Werbung blockieren, die vom selben Host wie der Content kommt (insbesondere YouTube-Videoanzeigen). Bei Bedarf eine Browser-Erweiterung dazu nutzen.
- DoH/DoT-Bypass. Clients mit eigenen DoH- oder DoT-Resolvern umgehen das Router-DNS komplett. Sperre ausgehendes DNS zu allem außer dem Router per Firewall-Regel, um die Richtlinie durchzusetzen.
Werbeblockade über alle Standorte skalieren
AdList auf einem Router zu pflegen ist einfach. Es auf einer Flotte zu pflegen — mit kundenspezifischen Whitelists, Listengrößen-Budgets pro Gerätemodell und der unvermeidlichen Drift zwischen Standorten — ist schwieriger, als man denkt.
MKController spielt dieselbe AdList-Konfiguration, eigene Listen und Forwarder-Regeln in einer einzigen Operation an jeden MikroTik in deinem Inventar aus. Wenn der match-count einbricht oder max cache size-Fehler im Log auftauchen, zeigt das Dashboard die betroffenen Geräte an, damit du sie reparierst, bevor Kunden es merken.