Что такое AdGuard Home
AdGuard Home — DNS-сервер с блокировкой рекламы и трекеров для всей локальной сети. В отличие от расширений браузера, работает на уровне DNS: любое устройство в сети (смартфон, Smart TV, игровая консоль) получает защиту автоматически без дополнительных настроек.
Ключевые возможности:
- Блокировка рекламы, трекеров, вредоносных доменов
- DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT) для зашифрованных запросов
- Статистика и логи DNS-запросов по устройствам
- Родительский контроль и пользовательские правила
- Встроенный DHCP-сервер (опционально)
Требования
- Сервер или VM с Linux (Debian/Ubuntu/Rocky)
- Docker и Docker Compose
- Порт 53 свободен (systemd-resolved может его занимать)
- Статический IP сервера в локальной сети
Шаг 1 — Освободить порт 53
На большинстве современных дистрибутивов Ubuntu/Debian порт 53 занят systemd-resolved. Его нужно отключить до запуска AdGuard.
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Настройте DNS вручную, чтобы сервер не потерял доступ в интернет после отключения resolved:
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
На Debian 12+ вместо редактирования/etc/resolv.confиспользуйте NetworkManager:nmcli con mod <name> ipv4.dns "1.1.1.1 8.8.8.8"
Шаг 2 — Структура проекта
mkdir -p /opt/adguard/{work,conf}
cd /opt/adguard
Шаг 3 — Docker Compose файл
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
restart: unless-stopped
network_mode: host
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
environment:
- TZ=Europe/Moscow
Сохраните файл как /opt/adguard/docker-compose.yml.
network_mode: host обязателен для корректной работы на порту 53 — AdGuard должен видеть реальные IP-адреса клиентов для статистики по устройствам.
Шаг 4 — Первый запуск и настройка
cd /opt/adguard
docker compose up -d
Откройте в браузере мастер первоначальной настройки:
http://<IP-сервера>:3000
Мастер предложит:
- Выбрать интерфейсы для DNS (оставьте все)
- Задать логин и пароль для веб-панели
- После настройки веб-панель переедет на порт 80 (или 3000 если 80 занят)
Шаг 5 — Настройка DNS-серверов
Перейдите в Настройки → Настройки DNS. Рекомендуемые апстримы с поддержкой DoH:
# Cloudflare (DoH)
https://dns.cloudflare.com/dns-query
# Google (DoH)
https://dns.google/dns-query
# Quad9 (DoH, блокирует вредоносное ПО)
https://dns.quad9.net/dns-query
В разделе Резервные DNS-серверы укажите обычные серверы на случай недоступности DoH:
1.1.1.1
8.8.8.8
Шаг 6 — Списки блокировок
Перейдите в Фильтры → Списки блокировки DNS и добавьте:
Базовые (уже встроены)
- AdGuard DNS filter — реклама и трекеры
- AdAway Default Blocklist — мобильная реклама
Дополнительные рекомендуемые
# Реклама и трекеры (расширенный)
https://raw.githubusercontent.com/nicehash/ha-adlist/main/combined.txt
# Вредоносные домены
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/tif.txt
# Российская реклама
https://raw.githubusercontent.com/nicehash/ha-adlist/main/ru.txt
Шаг 7 — Настройка MikroTik для использования AdGuard
Укажите IP сервера с AdGuard как DNS для всех клиентов сети через DHCP:
/ip/dhcp-server/network/set [find] dns-server=192.168.1.100
И для самого роутера:
/ip/dns set servers=192.168.1.100 allow-remote-requests=yes
Принудительно перенаправляйте все DNS-запросы клиентов на AdGuard (даже если устройство вручную прописало 8.8.8.8):
/ip/firewall/nat
add chain=dstnat protocol=udp dst-port=53 in-interface-list=LAN action=dst-nat to-addresses=192.168.1.100 to-ports=53 comment="Force DNS to AdGuard"
add chain=dstnat protocol=tcp dst-port=53 in-interface-list=LAN action=dst-nat to-addresses=192.168.1.100 to-ports=53 comment="Force DNS to AdGuard TCP"
Шаг 8 — HTTPS для веб-панели (опционально)
Если есть домен и SSL-сертификат, включите HTTPS для панели и DoH/DoT:
# Скопируйте сертификат и ключ в директорию conf
cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /opt/adguard/conf/
cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /opt/adguard/conf/
В AdGuard: Настройки → Настройки шифрования — укажите пути к файлам сертификата.
После этого клиенты смогут использовать DoH напрямую:
https://yourdomain.com/dns-query
Шаг 9 — Обновление
cd /opt/adguard
docker compose pull
docker compose up -d
Полезные команды
Просмотр логов
docker logs adguardhome -f --tail 50
Резервное копирование конфигурации
tar -czf adguard-backup-$(date +%Y%m%d).tar.gz /opt/adguard/conf /opt/adguard/work/data
Статистика запросов из консоли
docker exec adguardhome cat /opt/adguardhome/work/data/querylog.json | tail -20 | python3 -m json.tool
Устранение неполадок
Контейнер не запускается — порт 53 занят
sudo lsof -i :53
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Клиенты не отображаются по именам
Перейдите в Настройки → Клиенты и вручную задайте имена для IP-адресов, либо включите reverse DNS lookup в настройках.
Некоторые сайты не открываются
Проверьте раздел Журнал запросов — там видно, какие домены заблокированы. Добавьте исключения в Фильтры → Пользовательские правила:
@@||example.com^