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; і в мережі на одну точку відмови менше. Платою стає оперативна пам’ять — великі списки з’їдають кеш, тож його, можливо, доведеться збільшити.
Підготуйте роутер
Перш ніж 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
Переконайтеся, що Allow Remote Requests увімкнено, аби пристрої локальної мережі могли звертатися до роутера за DNS.
Додайте публічний adlist
Публічні блок-списки на кшталт hosts-файлу StevenBlack одразу дають широке покриття реклами й трекерів. У IP → DNS → Adlist натисніть +, вставте URL списку та вимкніть SSL Verify, якщо ви ще не імпортували відповідний центр сертифікації. Після парсингу список з’явиться зі лічильниками match-count і name-count.
Еквівалент у CLI:
/ip/dns/adlist add \ url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \ ssl-verify=noЩоб подивитися, скільки доменів завантажилося і скільки запитів уже заблоковано:
/ip/dns/adlist/printmatch-count — це кількість заблокованих запитів; name-count — кількість записів, що містить список.
Білі списки і forwarders
Іноді потрібний домен потрапляє до публічного блок-списку. Додайте статичний запис forward, щоб AdList оминав саме цей домен:
/ip/dns/static add name=example.com type=FWDForwarders також дозволяють задавати 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.com0.0.0.0 click.adclick.com0.0.0.0 malware-site.com0.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.
Тестування та діагностика
Очистіть DNS-кеш на клієнті й виконайте запит до відомого рекламного домену:
ipconfig /flushdnsnslookup someadserver.comУ відповідь має повернутися 0.0.0.0, а не справжній IP.
Слідкуйте за 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, дашборд показує постраждалі пристрої, і ви виправляєте їх раніше, ніж помітять клієнти.