Настройка AdGuard Home: частный DNS и серверы по доменам

Настройка AdGuard Home: частный DNS и серверы по доменам

Marcus Reid
14 октября 2026 г.· 11 мин чтения

Безопасная настройка AdGuard Home — это резолвер на одном узле локальной сети, который отвечает только перечисленным устройствам, отправляет выбранные домены на собственные вышестоящие DNS-серверы, а остальные запросы — на один зашифрованный сервер по умолчанию. Сначала вы проверяете схему на одном устройстве, подтверждаете фильтрацию и отсутствие утечек и сохраняете проверенный путь отката.

Ключевые выводы:

  • Закрепите один выпуск, сверьте контрольную сумму и сохраните настройки резолвера узла до любых изменений.
  • Освободите порт 53 от stub-слушателя systemd-resolved так, чтобы это можно было отменить.
  • Кто получает ответы, решают и правила межсетевого экрана, и список разрешенных клиентов: настройте оба.
  • Upstream для конкретных доменов отправляет локальные и корпоративные имена на их собственные серверы.
  • Сначала верните настройки устройства, затем удалите службу и восстановите резолвер.

Что подготовить, прежде чем начнется настройка AdGuard Home?

Подготовьте узел Ubuntu 24.04 LTS x64 в домашней сети или VPS, доступный только через частную сеть, и одно тестовое устройство под вашим контролем. Инструкция рассчитана на AdGuard Home v0.107.79, выпущенный 18 августа 2026 года.[1] Инструкция основана на перечисленных ниже официальных источниках; полный сквозной тест не выполнялся.

AdGuard описывает установку из архива, служебные команды и порты: TCP 3000 для мастера первого запуска, TCP 80 для веб-интерфейса по умолчанию и UDP 53 для DNS.[2] Старая вики на GitHub помечена как устаревшая и отсылает к Knowledge Base, поэтому при расхождении команд опирайтесь на Knowledge Base.[3]

Постоянно работающий резолвер требует обслуживания; оцените эту нагрузку по обзору обязанностей при самостоятельном хостинге. Это руководство отличается от пробной установки Pi-hole на одном устройстве и от собственного рекурсивного резолвера Unbound: AdGuard Home пересылает запросы и позволяет выбрать вышестоящий сервер для каждого домена. У блокировки доменов есть и пределы, которые не снимает ни один резолвер; см. как на самом деле работает блокировка рекламы через DNS.

Остановитесь, если узел относится к общей рабочей среде, управляется кем-то другим или доступен из интернета на порту 53. Никогда не открывайте этот резолвер публично.

Какой вышестоящий сервер должен отвечать на какие имена?

AdGuard Home принимает в качестве upstream обычный DNS, DNS-over-TLS (tls://), DNS-over-HTTPS (https://), DNS-over-QUIC (quic://) и DNS stamps. Строка вида [/example.local/] с адресом сервера отправляет этот домен и его поддомены на указанный сервер, а # означает «использовать upstream по умолчанию».[4]

Тип запросаРекомендуемый upstreamПочему
Публичные именаОдин зашифрованный upstream по умолчаниюПровайдер больше не видит открытых запросов
Локальные имена маршрутизатора, например .lanLAN-адрес маршрутизатораЭти имена знает только маршрутизатор
Корпоративные или лабораторные доменыВнутренний резолвер этой сетиПубличные резолверы на них не ответят
Обратные запросы для частных адресовПоле Private reverse DNS serversAdGuard требует указывать частные диапазоны там

Шаг 1: Сохраните исходное состояние и скачайте закрепленный выпуск

Сохраните текущее состояние резолвера, чтобы точно восстановить его позже:

readlink -f /etc/resolv.conf
resolvectl status
sudo ss -lntup

В Ubuntu systemd-resolved держит stub-слушатель на 127.0.0.53 и 127.0.0.54, а /etc/resolv.conf обычно указывает на stub-файл.[5] Запишите LAN-интерфейс, LAN-адрес узла, адрес тестового устройства и адрес устройства администратора.

Скачайте выпуск, пока DNS узла еще работает, и сверьте его с опубликованными контрольными суммами:

cd "$(mktemp -d)"
VER='v0.107.79'
BASE="https://github.com/AdguardTeam/AdGuardHome/releases/download/$VER"
curl -fLO "$BASE/AdGuardHome_linux_amd64.tar.gz"
curl -fLO "$BASE/checksums.txt"
sha256sum -c --ignore-missing checksums.txt
tar -xzf AdGuardHome_linux_amd64.tar.gz
sudo mv AdGuardHome /opt/AdGuardHome

Продолжайте, только если строка проверки сообщает OK. Если /opt/AdGuardHome уже существует, остановитесь и выясните, кто его установил.

Шаг 2: Закройте межсетевой экран до первого запуска

При первом запуске программа слушает 0.0.0.0:3000, поэтому мастер доступен любому устройству в сети.[2] В рамках уже проверенной политики UFW, которая по умолчанию запрещает входящий трафик, разрешите только нужное для пробы; замените интерфейс и адреса:[6]

LAN_IF='enp1s0'
TEST_V4='192.168.1.25'
ADMIN_V4='192.168.1.10'
sudo ufw allow in on "$LAN_IF" from "$TEST_V4" to any port 53 proto udp
sudo ufw allow in on "$LAN_IF" from "$TEST_V4" to any port 53 proto tcp
sudo ufw allow in on "$LAN_IF" from "$ADMIN_V4" to any port 3000 proto tcp
sudo ufw status numbered

Сохраните правило SSH и доступ к локальной консоли. Если UFW неактивен, сначала настройте политику запрета по умолчанию, а не пропускайте этот шаг.

Шаг 3: Освободите порт 53 для AdGuard Home

DNSStubListener=no отключает stub-слушатель, а файлы в /etc/systemd/resolved.conf.d/ переопределяют основной файл.[7] В FAQ AdGuard приведено такое ручное исправление и сказано, что строка DNS=127.0.0.1 обязательна:[8]

sudo mkdir -p /etc/systemd/resolved.conf.d
printf '[Resolve]\nDNS=127.0.0.1\nDNSStubListener=no\n' | sudo tee /etc/systemd/resolved.conf.d/adguardhome.conf
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved
sudo ss -lntup | grep ':53 '

Последняя команда не должна ничего показать на порту 53. Теперь запросы самого узла не разрешаются, пока AdGuard Home не начнет отвечать на 127.0.0.1, — поэтому загрузка шла первой. В мастере есть и кнопка Fix для этого конфликта; ручной путь оставляет файл, который потом можно удалить.[8]

Шаг 4: Установите службу и пройдите мастер

cd /opt/AdGuardHome
sudo ./AdGuardHome -s install
sudo ./AdGuardHome -s status

С устройства администратора откройте http://HOST_LAN_IP:3000. В мастере привяжите веб-интерфейс администратора к LAN-адресу узла на порту 3000, а DNS-сервер — к LAN-адресу на порту 53. Создайте учетную запись администратора с длинным уникальным паролем.[2]

Шаг 5: Сузьте слушатели, клиентов и журналы

Редактируйте конфигурацию только при остановленной службе: работающий экземпляр перезаписывает изменения в файле.[9] Меняйте лишь эти ключи внутри существующих разделов:

sudo /opt/AdGuardHome/AdGuardHome -s stop
sudoedit /opt/AdGuardHome/AdGuardHome.yaml
http:
  address: 192.168.1.53:3000
dns:
  bind_hosts:
    - 127.0.0.1
    - 192.168.1.53
  port: 53
  allowed_clients:
    - 127.0.0.1
    - 192.168.1.25
querylog:
  enabled: true
  interval: 24h
statistics:
  interval: 24h

bind_hosts ограничивает адреса, на которых обслуживается DNS, а непустой allowed_clients означает, что ответы получают только эти адреса.[9] Loopback остается в списке, потому что сам узел теперь разрешает имена через 127.0.0.1. Ротация журнала запросов принимает значения от 1h до 8760h; для пробы хватит суток. Задайте anonymize_client_ip: true в разделе dns, если журнал по клиентам не нужен.[9]

sudo /opt/AdGuardHome/AdGuardHome --check-config --config /opt/AdGuardHome/AdGuardHome.yaml
sudo /opt/AdGuardHome/AdGuardHome -s start
getent hosts example.com

AdGuard рекомендует поле Allowed clients в разделе Settings → DNS settings → Access settings, когда число клиентов известно, и предупреждает, что открытые резолверы привлекают злоупотребления.[10]

Шаг 6: Направьте одно устройство и убедитесь, что запросы приходят

На тестовом устройстве вручную укажите DNS только по LAN-адресу узла. Не оставляйте публичного запасного резолвера и отключите безопасный DNS браузера в тестовом профиле, чтобы запросы действительно доходили до AdGuard Home. С этого устройства выполните:

nslookup example.com 192.168.1.53
nslookup example.com

Оба запроса должны появиться в Query log с адресом тестового устройства. Если виден только явный запрос, устройство все еще использует другой резолвер.

Шаг 7: Настройте вышестоящие DNS-серверы AdGuard Home по доменам

В Settings → DNS settings → Upstream DNS servers укажите по одному upstream в строке; замените адреса маршрутизатора и компании:

https://unfiltered.adguard-dns.com/dns-query
[/lan/]192.168.1.1
[/corp.example/]10.20.0.53
[/public.corp.example/]#

Первая строка — нефильтрующий адрес DNS-over-HTTPS сервиса AdGuard DNS, так что фильтрация остается на вашем экземпляре.[11] Upstream DoH задаются именами, поэтому оставьте обычный резолвер, например 94.140.14.140, в поле bootstrap DNS (bootstrap_dns).[9][11] Последняя строка возвращает один поддомен к upstream по умолчанию; [/*.corp.example/] совпал бы только с поддоменами, но не с самим corp.example.[4]

Укажите адрес маршрутизатора в Private reverse DNS servers: обратные запросы для частных диапазонов AdGuard направляет только туда.[4] Повторите запросы из шага 6, затем запросите имя .lan и проверьте столбец upstream в журнале.

Шаг 8: Проверьте фильтрацию, одно исключение и утечки

В Filters → Custom filtering rules добавьте ||example.org^: правило блокирует домен и его поддомены. Затем добавьте @@||example.org^, чтобы разблокировать его; строки, начинающиеся с ! или #, — комментарии.[12]

Способ проверкиОжидаемый результатЕсли не получилось
nslookup example.org только с правилом блокировкиВ журнале отмечено как заблокированноеУбедитесь, что устройство использует узел, а правила сохранены
Тот же запрос после добавления исключенияСнова отмечено как разрешенноеУберите правило с $important, которое перекрывает исключения
Запрос имени .lanОтвет приходит от маршрутизатораПроверьте строку [/lan/] и адрес маршрутизатора
Запрос с вашего устройства, которого нет в спискеОтвета нетИсправьте allowed_clients или межсетевой экран
Тест на утечку DNS на тестовом устройствеВидны только резолверы upstream по умолчаниюИщите запасные резолверы, DNS по IPv6 или DNS браузера

Для последней строки используйте эту проверку утечки DNS. DNS по IPv6 — отдельный путь: либо настройте и ограничьте слушатель IPv6, либо обозначьте пробу как только IPv4. После проверки удалите оба тестовых правила.

Шаг 9: Отмените изменения устройства и удалите службу

Верните исходные настройки DNS тестового устройства и убедитесь, что новый запрос проходит, прежде чем трогать узел. AdGuard предупреждает: сначала перенастройте устройства, затем выполните команду удаления и удалите каталог.[8]

sudo /opt/AdGuardHome/AdGuardHome -s uninstall
sudo rm /etc/systemd/resolved.conf.d/adguardhome.conf
sudo rm /etc/resolv.conf
sudo mv /etc/resolv.conf.backup /etc/resolv.conf
sudo systemctl restart systemd-resolved
getent hosts example.com

Сравните readlink -f /etc/resolv.conf и resolvectl status с результатами шага 1. Удалите по номерам только правила UFW, добавленные для пробы. Если планируете вернуться, сохраните частную копию AdGuardHome.yaml, затем удалите /opt/AdGuardHome.

Итоги

  • Закрепите и проверьте выпуск, сохраните настройки резолвера до изменений.
  • Освобождайте порт 53 отдельным файлом, который можно удалить, а не слепым отключением резолвера.
  • Ограничивайте ответы и правилами межсетевого экрана, и allowed_clients.
  • Направляйте локальные и корпоративные домены на их собственные upstream, оставив один зашифрованный по умолчанию.
  • Сначала восстановите устройства, затем удалите службу и верните узлу прежний резолвер.

Часто задаваемые вопросы (FAQ)

Можно ли запустить AdGuard Home, не отключая systemd-resolved?

Да. Отключается только его stub-слушатель через отдельный файл; systemd-resolved продолжает работать и пересылает запросы узла на 127.0.0.1.

Почему мастер сообщает address already in use?

Порт 53 уже занят другой программой, обычно stub-слушателем systemd-resolved. Примените файл из шага 3 или нажмите кнопку Fix в мастере.

Что означает решетка в строке upstream?

Символ # после блока домена велит AdGuard Home использовать для этого домена upstream по умолчанию вместо отдельного сервера.

Нужны ли зашифрованные upstream?

Они необязательны, но разумны для публичных имен: открытые запросы к upstream видны на сетевом пути и провайдеру.

Безопасно ли открыть порт 53 в интернет?

Нет. Открытый резолвер привлекает злоупотребления; держите DNS в локальной или частной сети и явно перечисляйте разрешенных клиентов.

Почему часть рекламы остается при работающей блокировке?

DNS-правила блокируют домены целиком. Реклама с того же домена, что и контент, кэшированные страницы и DNS браузера могут их обходить.

Восстанавливает ли удаление AdGuard Home мой DNS?

Само по себе нет. Сначала верните DNS каждого устройства, затем удалите файл для resolved и восстановите сохраненную ссылку resolv.conf.

Отказ от ответственности: Эти шаги составлены по официальной документации и не являются отчетом о завершенном тестировании. Используйте только узлы и устройства, которые вам разрешено менять, и сохраняйте рабочий путь восстановления.

Источники:

  1. AdGuard Home v0.107.79 release — https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.107.79
  2. AdGuard Home Getting Started — https://adguard-dns.io/kb/adguard-home/getting-started/
  3. AdGuard Home Wiki — https://github.com/AdguardTeam/AdGuardHome/wiki
  4. AdGuard Home Wiki: Configuration — https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration
  5. Ubuntu Manpage: systemd-resolved.service — https://manpages.ubuntu.com/manpages/noble/man8/systemd-resolved.service.8.html
  6. Ubuntu Firewall — https://ubuntu.com/server/docs/how-to/security/firewalls/
  7. Ubuntu Manpage: resolved.conf — https://manpages.ubuntu.com/manpages/noble/man5/resolved.conf.5.html
  8. AdGuard Home FAQ — https://adguard-dns.io/kb/adguard-home/faq/
  9. AdGuard Home Configuration — https://adguard-dns.io/kb/adguard-home/configuration/
  10. AdGuard Home Running Securely — https://adguard-dns.io/kb/adguard-home/running-securely/
  11. AdGuard DNS Known DNS Providers — https://adguard-dns.io/kb/general/dns-providers/
  12. AdGuard DNS Filtering Rules Syntax — https://adguard-dns.io/kb/general/dns-filtering-syntax/

Sources checked 14 октября 2026 г.


Рекомендуемые статьи:

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

Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.

*Только для новых пользователей. Один пробный период на пользователя.

Настройка AdGuard Home: частный DNS и серверы по доменам | AethoVPN