Перейти до вмісту
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; і в мережі на одну точку відмови менше. Платою стає оперативна пам’ять — великі списки з’їдають кеш, тож його, можливо, доведеться збільшити.

Підготуйте роутер

Перш ніж 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, якщо ви ще не імпортували відповідний центр сертифікації. Після парсингу список з’явиться зі лічильниками match-count і name-count.

Еквівалент у 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