Перейти к содержимому
InstagramYouTubeFacebook

Tutorial

Блокировка рекламы на MikroTik AdList

Блокируйте рекламу на уровне DNS на роутерах MikroTik с помощью встроенного AdList в RouterOS v7.15+ — без Pi-hole и без лишнего железа.

Резюме MikroTik AdList (RouterOS v7.15+) блокирует рекламу на уровне DNS для каждого устройства в локальной сети — без Pi-hole и без дополнительного оборудования. В этом руководстве рассмотрены предварительные требования, настройка публичных и пользовательских списков, тестирование, белые списки и ограничения, о которых стоит помнить (внутриприложенческие баннеры и видеореклама YouTube вне зоны досягаемости DNS-фильтрации).

Почему AdList, а не Pi-hole?

AdList — это встроенный в MikroTik блокировщик рекламы на основе DNS. В отличие от контейнера Pi-hole, AdList работает нативно в RouterOS и не требует отдельного устройства, контейнерного runtime или перенастройки DNS. После включения он фильтрует запросы к известным рекламным серверам (записи A и AAAA), возвращая 0.0.0.0 вместо реального IP. Каждый телефон, телевизор, консоль и IoT-устройство в локальной сети автоматически получают блокировку, пока используют MikroTik в качестве DNS.

По сравнению с эксплуатацией Pi-hole у AdList три операционных преимущества: настройка — одна вкладка внутри IP → DNS, а не разворачивание отдельного хоста; обновления приходят вместе с апгрейдом RouterOS, а не отдельным циклом apt; и в сети на одну точку отказа меньше. Цена вопроса — RAM: большие списки расходуют кэш, и его, возможно, придётся увеличить.

Подготовка роутера

Перед тем как AdList станет полезен, должны выполняться два условия:

Обновите RouterOS до v7.15 или новее. AdList появился в v7.15. Зайдите в System → Packages → Check for updates и установите последний стабильный релиз. На более старых релизах пути /ip dns adlist просто нет.

Увеличьте размер DNS-кэша. Adlist-ы хранятся внутри DNS-кэша; размер по умолчанию слишком мал для сколько-нибудь значимого списка и приводит к ошибке adlist read: max cache size reached. В IP → DNS поднимите Cache size до значения, достаточного для ваших списков — для роутера со 128 МБ RAM и одним-двумя списками 30–40 МБ — разумный ориентир.

/ip/dns set cache-size=40000
Панель IP DNS в MikroTik с cache-size, выставленным в 40 МБ

Убедитесь, что Allow Remote Requests включён, чтобы устройства локальной сети могли обращаться к роутеру за DNS.

Добавьте публичный adlist

Публичные блок-списки вроде hosts-файла StevenBlack дают широкое покрытие рекламы и трекеров уже в первый день. В IP → DNS → Adlist нажмите +, вставьте URL списка и отключите SSL Verify, если вы ещё не импортировали удостоверяющий центр. После парсинга список появится с количеством совпадений и количеством имён.

Эквивалент в CLI:

/ip/dns/adlist add \
url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \
ssl-verify=no

Чтобы посмотреть, сколько доменов загрузилось и сколько запросов уже заблокировано:

/ip/dns/adlist/print

match-count — количество заблокированных запросов; name-count — количество записей, которые содержит список.

Терминал RouterOS показывает вывод /ip/dns/adlist/print с match-count и name-count

Белые списки и forwarders

Иногда нужный домен оказывается в публичном блок-листе. Добавьте статическую запись forward, чтобы AdList пропускал именно этот домен:

/ip/dns/static add name=example.com type=FWD

Forwarders также позволяют задать upstream-резолверы (Quad9, Cloudflare) для конкретных доменов. Сначала определите пул forwarder, затем направьте статические записи на него:

/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-fwd

Создайте и импортируйте свой блок-список

Если нужен полный контроль, составьте список самостоятельно. Каждая строка — 0.0.0.0 домен:

0.0.0.0 adverts.com
0.0.0.0 click.adclick.com
0.0.0.0 malware-site.com
0.0.0.0 fraud.scam.com

Создайте или загрузите файл на RouterOS:

/file/add name=adbl.txt
/file/edit adbl.txt contents

Введите список доменов, нажмите Ctrl-O для сохранения и подключите файл к AdList:

/ip/dns/adlist add file=adbl.txt

Подтвердите, что файл распарсился, проверив name-count через /ip/dns/adlist/print.

Пользовательский файл adlist RouterOS загружен, видно name-count

Тестирование и диагностика

Очистите DNS-кэш на клиенте и сделайте запрос к известному рекламному домену:

ipconfig /flushdns
nslookup someadserver.com

Ответ должен прийти как 0.0.0.0, а не реальный IP.

Результат nslookup показывает 0.0.0.0 для заблокированного рекламного домена

Следите за match-count со временем, чтобы понять, действительно ли список приносит пользу. Если видите adlist read: max cache size reached, увеличьте кэш или уберите один список. Для более глубокого DNS-харднинга в пару к этому посмотрите наши гайды по настройке DNS over HTTPS и блокировке трафика в страну.

Обслуживание и ограничения

  • Автоматические обновления. RouterOS освежает adlist-ы каждые четыре часа. Ручная перезагрузка через /ip/dns/adlist/reload доступна, но обычно не нужна.
  • Бюджет памяти. Большие списки едят RAM. Подбирайте число и размер списков под свободную память устройства; у hAP ac² запас совсем другой, чем у RB5009.
  • Блокировка только по DNS. AdList не способен блокировать рекламу, отдаваемую с того же хоста, что и контент (особенно видеореклама YouTube). Если она вас раздражает, добавьте расширение в браузер.
  • Обход DoH/DoT. Клиенты со своими DoH- или DoT-резолверами полностью обходят DNS роутера. Заблокируйте исходящий DNS куда-либо, кроме самого роутера, правилом файрвола, чтобы навязать политику.

Масштабируйте блокировку рекламы на все площадки

Поддерживать AdList на одном роутере легко. Поддерживать его на парке устройств — с индивидуальными белыми списками для клиента, бюджетами размера списка под модель и неизбежным расхождением между площадками — задача сложнее, чем кажется.

MKController доставляет одинаковую конфигурацию AdList, пользовательские списки и правила forwarder на каждый MikroTik в вашем инвентаре одной операцией. Когда match-count резко падает или в логе начинают появляться ошибки max cache size, дашборд показывает пострадавшие устройства, чтобы вы починили их раньше, чем заметят клиенты.

Начните бесплатный пробный период MKController