AdGuard Home — локальный DNS-сервер, который позволяет блокировать рекламу, трекеры, вредоносные и нежелательные домены сразу для всей домашней сети.
Если ваш MikroTik поддерживает Container, отдельный сервер, Raspberry Pi или виртуальная машина для AdGuard Home не нужны — его можно запустить непосредственно на роутере.
Схема работы будет примерно такой: Код доступен зарегистрированным пользователям. Зарегистрируйтесь В результате все устройства домашней сети смогут использовать единый DNS-фильтр.
2. Что потребуется
Перед установкой необходимо:
- MikroTik с RouterOS 7;
- архитектура устройства, поддерживающая Container;
- установленный пакет container;
- USB-накопитель, SSD или другое хранилище;
- доступ MikroTik к интернету;
- доступ к терминалу RouterOS через WinBox, WebFig или SSH.
Не рекомендуется хранить контейнер AdGuard Home во внутренней Flash-памяти роутера. AdGuard ведёт статистику, журналы DNS-запросов и периодически записывает данные на диск.
Лучше использовать USB-накопитель или SSD.
Проверить архитектуру и версию RouterOS: Код доступен зарегистрированным пользователям. Зарегистрируйтесь В списке пакетов должен присутствовать: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 3. Включаем Container Mode
На актуальных версиях RouterOS разрешаем использование контейнеров: Код доступен зарегистрированным пользователям. Зарегистрируйтесь RouterOS запросит физическое подтверждение изменения Device Mode.
Следуйте сообщению в терминале — в зависимости от модели потребуется нажать кнопку Reset/Mode либо выполнить другое физическое подтверждение.
После этого проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Должно быть: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 4. Проверяем накопитель
Посмотрим доступные диски: Код доступен зарегистрированным пользователям. Зарегистрируйтесь В этом гайде будем считать, что USB-накопитель в RouterOS называется: Код доступен зарегистрированным пользователям. Зарегистрируйтесь ВАЖНО: на вашем MikroTik имя накопителя может отличаться.
Например: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Во всех командах ниже замените usb1 на имя своего накопителя.
Для контейнеров желательно использовать файловую систему ext4.
[warning]Форматирование полностью удалит данные с выбранного накопителя. Не форматируйте диск, пока не убедитесь, что выбрали правильное устройство.[/warning]
5. Настраиваем Container Registry
Укажем Docker Hub как источник образов: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Создавать tmpdir вручную на современных версиях RouterOS обычно не требуется, но каталог должен находиться на накопителе с достаточным свободным местом.
Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 6. Создаём виртуальный интерфейс для AdGuard Home
Контейнеру потребуется собственный VETH-интерфейс.
В этом примере используем отдельную сеть: Код доступен зарегистрированным пользователям. Зарегистрируйтесь MikroTik: Код доступен зарегистрированным пользователям. Зарегистрируйтесь AdGuard Home: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Создаём VETH: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Теперь создаём отдельный bridge: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Назначаем адресу bridge IP: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 7. Даём контейнеру доступ в интернет
Если стандартное правило masquerade уже распространяется на эту сеть, дополнительное правило может не понадобиться.
В противном случае добавляем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь После запуска контейнера можно будет проверить его доступ к сети.
8. Создаём постоянное хранилище AdGuard Home
AdGuard Home использует два важных каталога: Код доступен зарегистрированным пользователям. Зарегистрируйтесь В них находятся конфигурация, база, статистика и рабочие данные.
Чтобы они не исчезали при пересоздании контейнера, подключим их через RouterOS Mount.
Создаём Mount для конфигурации: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Создаём Mount для рабочих данных: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Должны появиться: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 9. Скачиваем контейнер AdGuard Home
Используем официальный Docker-образ: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Добавляем контейнер: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Примечание:
Скачивание и распаковка образа на MikroTik могут занять некоторое время. Особенно долго это происходит на слабых моделях и медленных USB-накопителях.
Следить за процессом можно командами: Код доступен зарегистрированным пользователям. Зарегистрируйтесь После завершения установки контейнер должен появиться в: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 10. Запускаем AdGuard Home
Посмотрим номер контейнера: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Если AdGuard имеет номер 0: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Либо можно запускать контейнер через его имя/идентификатор, отображаемый RouterOS.
Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Контейнер должен перейти в состояние: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Посмотреть сообщения контейнера: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 11. Открываем мастер настройки AdGuard Home
При первом запуске AdGuard Home запускает мастер первоначальной настройки на TCP-порту: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Поэтому открываем с компьютера: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Важно:
Никакой Docker-style проброс портов в данном варианте не нужен.
Контейнер имеет собственный IP: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Поэтому клиенты локальной сети обращаются непосредственно к этому адресу, если правила Firewall разрешают такой трафик.
12. Настраиваем мастер AdGuard Home
В мастере первоначальной настройки выбираем интерфейс прослушивания.
Для DNS можно использовать: Код доступен зарегистрированным пользователям. Зарегистрируйтесь DNS-порт: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Для Web-интерфейса можно оставить стандартные параметры или выбрать удобный порт.
Создаём:
- имя администратора;
- надёжный пароль.
13. Настраиваем Upstream DNS
Открываем:
Settings → DNS settings
В качестве обычных DNS, например: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Либо можно использовать DNS-over-HTTPS.
Например Cloudflare: Код доступен зарегистрированным пользователям. Зарегистрируйтесь После сохранения желательно выполнить проверку Upstream DNS Servers непосредственно из интерфейса AdGuard Home.
14. Настраиваем MikroTik DHCP
Теперь необходимо сообщить клиентам локальной сети, что DNS-сервер находится по адресу: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Сначала смотрим DHCP Networks: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Например, если наша LAN: Код доступен зарегистрированным пользователям. Зарегистрируйтесь можно выполнить: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Замените: Код доступен зарегистрированным пользователям. Зарегистрируйтесь на адрес своей локальной сети.
После этого клиентам потребуется обновить DHCP lease.
Самый простой вариант — отключить и снова включить Wi-Fi/сетевой интерфейс.
В Windows можно выполнить: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь В качестве DNS должен отображаться: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 15. Вариант: MikroTik сам использует AdGuard Home
При необходимости можно указать AdGuard Home в качестве DNS для самого MikroTik: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Однако здесь важно не создать DNS-петлю.
Например, если AdGuard использует MikroTik как Upstream DNS, а MikroTik одновременно использует AdGuard, получится: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Поэтому Upstream DNS в AdGuard Home должен быть внешним DNS-сервером.
Например: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 16. Принудительное перенаправление DNS через AdGuard
Этот пункт необязательный.
Некоторые устройства могут игнорировать DNS, полученный через DHCP, и использовать, например: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Обычные DNS-запросы TCP/UDP 53 можно принудительно перенаправить на AdGuard.
Например, для LAN: Код доступен зарегистрированным пользователям. Зарегистрируйтесь добавляем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Замените: Код доступен зарегистрированным пользователям. Зарегистрируйтесь на свою LAN-подсеть.
Обратите внимание:
Эти правила перехватывают обычный DNS на порту 53, но не блокируют автоматически DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT).
17. Firewall
Если используется стандартный строгий Firewall MikroTik, необходимо убедиться, что LAN-клиентам разрешено обращаться к сети контейнеров.
Нам как минимум нужен доступ: Код доступен зарегистрированным пользователям. Зарегистрируйтесь и для администрирования: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Конкретные правила зависят от существующей конфигурации Firewall, поэтому бездумно вставлять универсальные ACCEPT-правила не рекомендуется.
Очень важно:
Не открывайте DNS AdGuard Home в интернет.
Публично доступный UDP/TCP 53 может превратить ваш роутер в открытый DNS resolver.
18. Проверяем работу DNS
На Windows: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Если всё работает, получим IP-адрес Google.
Также можно проверить обычный запрос: Код доступен зарегистрированным пользователям. Зарегистрируйтесь DNS Server должен соответствовать AdGuard Home либо выбранной вами схеме DNS.
После этого открываем Web-интерфейс AdGuard Home.
В разделе:
Query Log
должны появляться DNS-запросы клиентов.
19. Добавляем фильтры
Переходим:
Filters → DNS blocklists
AdGuard Home уже имеет базовые возможности фильтрации.
Не стоит сразу добавлять десятки огромных списков.
Для MikroTik особенно важно помнить, что AdGuard работает непосредственно на роутере и использует его:
- RAM;
- CPU;
- дисковое пространство.
20. Ограничиваем размер Query Log и статистики
Если контейнер работает с USB-флешки, желательно не хранить чрезмерное количество статистики.
В настройках AdGuard Home можно уменьшить период хранения:
Settings → General settings
Это снизит объём записей и расход места.
Для постоянной работы контейнеров предпочтительнее хороший USB SSD, чем дешёвая флешка.
21. Обновление AdGuard Home
Контейнеры на MikroTik отличаются от обычного Docker.
Для обновления безопаснее сохранить каталоги: Код доступен зарегистрированным пользователям. Зарегистрируйтесь а затем загрузить свежий образ и пересоздать контейнер, снова подключив существующие Mount.
Именно поэтому конфигурацию и рабочие данные мы вынесли из: Код доступен зарегистрированным пользователям. Зарегистрируйтесь в отдельные каталоги.
Таким образом: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 22. Полезные команды
Посмотреть контейнеры: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Посмотреть подробную информацию: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Запустить контейнер: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Остановить: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Посмотреть VETH: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверить Mount: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Посмотреть логи: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Следить за логом в реальном времени: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверить адреса: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверить маршруты: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Проверить DNS MikroTik: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 23. Типичные проблемы
Проблема №1: контейнер не скачивается
Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь У MikroTik должен быть рабочий интернет и DNS.
---
Проблема №2: AdGuard запущен, но 172.18.0.2 недоступен
Проверяем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь VETH должен находиться в bridge-containers.
---
Проблема №3: AdGuard работает, но клиенты не имеют интернета
Сначала проверяем DNS: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Затем смотрим: Код доступен зарегистрированным пользователям. Зарегистрируйтесь ---
Проблема №4: ошибка при добавлении mounts
Mount должны быть сначала созданы: Код доступен зарегистрированным пользователям. Зарегистрируйтесь После этого их имена передаются контейнеру: Код доступен зарегистрированным пользователям. Зарегистрируйтесь ---
Проблема №5: после обновления/пересоздания пропали настройки
Проверьте, что конфигурация действительно вынесена через Mount: Код доступен зарегистрированным пользователям. Зарегистрируйтесь Если данные хранились только внутри root-dir контейнера, при его удалении они также могут быть потеряны.
24. Итоговая схема
В результате получаем: Код доступен зарегистрированным пользователям. Зарегистрируйтесь DNS-запрос проходит: Код доступен зарегистрированным пользователям. Зарегистрируйтесь 25. Краткий результат
После выполнения настройки мы получаем:
- AdGuard Home непосредственно на MikroTik;
- отдельный IP контейнера;
- DNS-фильтрацию для всей локальной сети;
- блокировку рекламы и трекеров;
- Web-интерфейс AdGuard Home;
- сохранение конфигурации вне root контейнера;
- автоматический запуск AdGuard после перезагрузки MikroTik;
- возможность принудительно направлять обычный DNS клиентов через AdGuard.
Готово! AdGuard Home работает в Container на MikroTik RouterOS 7.