Настройка DNS-фильтрации для отдельных устройств через AdGuard Home на роутере Keenetic
Рассмотрим конфигурацию, в которой используется роутер Keenetic GIGA (версия ОС 4.3.6.3). На локальной машине с Ubuntu 24 развернут сервис AdGuard Home в контейнере Docker. Цель - направлять DNS-запросы с определенных устройств сети через этот фильтр.
Исходная конфигурация и проблема
В настройках роутера была выполнена следующая последовательность действий:
- В меню «Интернет» → «Фильтры» для режима фильтрации выбрано значение «Публичные DNS-резолверы».
- На вкладке «Настройка DNS» создан отдельный профиль с именем «Профиль модерация».
- В этом профиле в качестве DNS-сервера указан IP-адрес 192.168.1.20 (хост с AdGuard Home).
Возникшая проблема: при назначении этого профиля целевому устройству интернет на нем перестает работать. Команды nslookup и dig возвращают ошибку «Query refused» или «UnKnown не удалось найти ya.ru: Query refused».
При этом, если явно указать DNS-сервер в запросе (например, nslookup ya.ru 192.168.1.20), разрешение имен работает корректно. Это указывает на то, что сам AdGuard Home функционирует, но роутер неправильно маршрутизирует к нему DNS-трафик.
Вероятная причина и решение
Ошибка «Query refused» часто возникает, когда DNS-запрос приходит с IP-адреса, который не входит в список разрешенных клиентов AdGuard Home. По умолчанию AdGuard Home может принимать запросы только от локального хоста или явно указанных подсетей.
Последовательность действий для решения:
- Проверка настроек AdGuard Home:
- В веб-интерфейсе AdGuard Home (обычно по адресу
http://192.168.1.20:3000) перейдите в «Настройки» → «Настройки DNS». - В блоке «Настройки доступа» убедитесь, что в поле «Разрешить запросы со следующих IP-адресов и сетей» указана подсеть вашего роутера (например,
192.168.1.0/24) или конкретный IP-адрес роутера (например,192.168.1.1). Это разрешит принимать запросы от всех устройств сети или от шлюза.
- В веб-интерфейсе AdGuard Home (обычно по адресу
- Корректировка настроек роутера Keenetic:
- В меню «Интернет» → «Фильтры» рекомендуется установить режим «DNS-серверы провайдера» или «Выключено». Это предотвратит возможные конфликты, когда роутер сам пытается фильтровать DNS-запросы, направляемые в ваш профиль.
- Убедитесь, что в созданном профиле «Профиль модерация» корректно указан порт AdGuard Home (по умолчанию - 53). В поле сервера можно указать
192.168.1.20:53.
- Назначение профиля устройству:
- Перейдите в «Домашняя сеть» → «Устройства», выберите нужное устройство и в его свойствах назначьте созданный DNS-профиль.
- Проверка работы:
- После применения настроек и перезагрузки целевого устройства выполните команду
nslookup example.comбез указания сервера. Запрос должен теперь автоматически уходить на192.168.1.20и успешно разрешаться.
- После применения настроек и перезагрузки целевого устройства выполните команду
Итог
Ключевым шагом является настройка AdGuard Home на прием запросов от всей локальной сети или от IP-адреса роутера. После этого созданный в роутере DNS-профиль будет корректно перенаправлять запросы выбранных устройств через фильтр, обеспечивая их модерацию без потери интернет-соединения.