MAATRIX / Блог / Как установить и настроить AdGuard Home на VPS

Как установить и настроить AdGuard Home на VPS

MAATRIX

Реклама и трекеры лезут отовсюду — в браузере, в приложениях на телефоне, даже в прошивке смарт-телевизора, где ничего не заблокируешь. Решение на уровне роутера или отдельного устройства дома работает только пока вы дома. AdGuard Home на VPS снимает это ограничение: один DNS-сервер фильтрует трафик для всех ваших устройств, где бы вы ни находились, плюс из коробки умеет шифровать сами DNS-запросы через DoH и DoT — провайдер не увидит, какие домены вы резолвите.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое AdGuard Home и почему не просто Pi-hole

AdGuard Home — DNS-сервер с фильтрацией на уровне резолвинга: запрос к рекламному или трекинговому домену просто не получает ответа (или получает 0.0.0.0), и ресурс не грузится ещё до соединения. По задаче он прямой аналог Pi-hole, но writing на Go, а не на связке dnsmasq + PHP + lighttpd, из-за чего собран в один бинарник без внешних зависимостей.

Практическая разница с Pi-hole, о которой стоит знать заранее:

AdGuard HomePi-hole
DNS-over-HTTPS/TLS сервероместь из коробкинужен отдельный proxy (cloudflared, stubby)
DNS-over-HTTPS/TLS как upstreamесть из коробкичерез dnsmasq-плагины, менее гибко
Установкаодин бинарник, systemd-юнитPython-скрипт, больше зависимостей
Правила фильтрациисинтаксис AdBlock, гибчев основном списки доменов
Веб-интерфейсвстроенный, на GoPHP, требует lighttpd/nginx
RAM в простое40-80 МБ30-60 МБ

Если вам нужен именно шифрованный DNS без танцев с дополнительными прокси — AdGuard Home закрывает это из коробки. Если статья про Pi-hole вам ближе по духу, у нас есть отдельный разбор: как установить и настроить Pi-hole на VPS.

Установка на VPS: подготовка и сам процесс

Берём чистый VPS на Ubuntu 24.04 или Debian 12 — AdGuard Home не требователен к ресурсам, хватит 1 vCPU и 1 ГБ RAM, но для стабильной работы под нагрузкой в несколько десятков клиентов комфортнее на 2 ГБ. Регион сервера имеет значение: для минимальной задержки резолвинга берите VPS ближе к тому месту, где физически находятся ваши устройства.

Первым делом обновите систему и проверьте, что порт 53 свободен:

apt update && apt upgrade -y
ss -tulpn | grep :53

На Ubuntu почти наверняка порт 53 уже занят системным systemd-resolved — это стандартная грабля, разберём её отдельно ниже. Ставим AdGuard Home официальным скриптом установки:

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Скрипт скачивает актуальный релиз, распаковывает в /opt/AdGuardHome, регистрирует systemd-сервис AdGuardHome.service и сразу его запускает. Проверить, что всё поднялось:

systemctl status AdGuardHome

По умолчанию мастер первичной настройки слушает на порту 3000 — временно откройте его в файрволе (если используете ufw, см. настройку UFW на VPS):

ufw allow 3000/tcp

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Первый запуск и настройка через веб-панель

Откройте http://IP_вашего_сервера:3000 — запустится мастер настройки. Он попросит указать:

  • Порт веб-интерфейса — можно оставить 3000 или перенести на 80/443, если DNS-панель будет единственным сервисом на сервере;
  • Порт DNS-сервера — стандартный 53/udp и 53/tcp;
  • Логин и пароль администратора — обязательно сложный, панель торчит в интернет.

После мастера AdGuard Home попытается занять 53-й порт и почти наверняка упрётся в конфликт с systemd-resolved. Это самая частая грабля при установке на Ubuntu — лечится так:

mkdir -p /etc/systemd/resolved.conf.d
cat > /etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
EOF

rm -f /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved

После этого перезапустите AdGuard Home и убедитесь, что 53-й порт слушает уже он:

systemctl restart AdGuardHome
ss -tulpn | grep :53

Дальше сразу закройте прямой доступ к DNS и веб-панели с любых IP, кроме нужных вам (VPN-подсети или конкретных адресов), правилами ufw — панель администратора не должна быть открыта всему интернету.

DNS-over-HTTPS и DNS-over-TLS: шифрование от провайдера

Обычный DNS-запрос летит по UDP открытым текстом — провайдер или любой узел на пути видит, какие домены вы резолвите, и по этому списку легко восстановить, чем вы пользуетесь. DoH заворачивает запрос в HTTPS (порт 443, неотличим от обычного веб-трафика), DoT — в TLS на отдельном порту 853. AdGuard Home умеет и то и другое в обе стороны: как принимать зашифрованные запросы от клиентов, так и сам ходить к вышестоящим DNS зашифрованно.

Настройка upstream-серверов делается в разделе Настройки DNS-сервера → Upstream DNS-серверы:

https://dns.cloudflare.com/dns-query
tls://1.1.1.1
https://dns.google/dns-query

Так сам AdGuard Home резолвит имена наружу уже зашифрованным каналом — провайдер видит только зашифрованный трафик к известному DoH/DoT-серверу, а не список ваших запросов.

Чтобы клиенты (браузер, телефон, роутер) могли подключаться к вашему AdGuard Home по DoH/DoT, а не голому DNS, нужен домен и TLS-сертификат — раздел Настройки → Шифрование. Заведите A-запись на IP сервера и получите сертификат Let's Encrypt, например через certbot или Caddy — подробный процесс описан в статье про Let's Encrypt SSL на VPS. Пути к сертификату и приватному ключу указываются прямо в настройках шифрования AdGuard Home, после чего сервер начинает принимать запросы на https://ваш-домен/dns-query и tls://ваш-домен:853.

Если тема шифрования DNS вам интересна отдельно от контекста фильтрации рекламы — у нас есть материал про DNS-over-HTTPS и доступ к ИИ-сервисам.

Списки фильтрации и собственные правила блокировки

Из коробки AdGuard Home идёт с базовым набором фильтров, но реальную пользу вы получите, добавив дополнительные списки в разделе Фильтры → Списки блокировки. Практика показывает, что для домашнего использования достаточный баланс покрытия и ложных срабатываний дают:

  • AdGuard DNS filter — базовый список, включён по умолчанию;
  • AdAway Default Blocklist — хорошо закрывает мобильную рекламу;
  • OISD Full или списки HaGeZi (Multi PRO, Threat Intelligence) — широкое покрытие трекеров и вредоносных доменов, но обновляйте их не слишком часто, если сервер маломощный: парсинг больших списков на пару секунд нагружает CPU.

Добавляется список одной ссылкой на raw-файл с правилами, AdGuard Home сам скачивает и обновляет его по расписанию (по умолчанию раз в сутки, настраивается).

Кастомные правила пишутся синтаксисом AdBlock в разделе Фильтры → Пользовательские правила:

||ads.example.com^
||tracker.example.net^
@@||важный-домен.com^
127.0.0.1 old.local.test

Первые две строки блокируют домен и все поддомены, третья — исключение (белый список) для домена, который иначе попал бы под общий фильтр, четвёртая — локальный DNS-override для внутреннего хоста. Такая гибкость правил — как раз то место, где AdGuard Home ощутимо удобнее Pi-hole: не нужно городить отдельные конфиги dnsmasq для локального резолвинга.

Отдельно стоит настроить клиентов (раздел Клиенты): по IP или имени устройства можно выдать индивидуальные фильтры — например, для детского планшета включить родительский контроль и SafeSearch, а для рабочего ноутбука оставить только базовую блокировку рекламы.

Подключение устройств и использование через VPN

Просто указать IP сервера как DNS в настройках телефона работает, но только пока вы на этой сети, и весь остальной трафик остаётся нешифрованным. Куда практичнее связка с VPN: поднимаете на том же VPS WireGuard, а в его конфиге прописываете AdGuard Home как DNS для всех клиентов — тогда фильтрация рекламы работает на любом устройстве и в любой сети, пока поднят туннель. Подробная установка описана в статье WireGuard на VPS; в конфиге клиента WireGuard достаточно указать:

[Interface]
DNS = 10.8.0.1

где 10.8.0.1 — внутренний IP сервера в VPN-подсети, на котором слушает AdGuard Home. Так весь DNS-трафик клиента идёт через зашифрованный туннель прямо к фильтрующему DNS, минуя провайдера полностью.

Для домашнего роутера без VPN-клиента можно прописать IP AdGuard Home напрямую в DHCP-настройках роутера — тогда фильтрация применится ко всем устройствам дома автоматически, без установки чего-либо на каждое из них. Единственный минус — работает только пока вы физически в этой сети; для мобильных устройств вне дома нужен именно вариант с VPN.

Не забудьте настроить регулярный бэкап конфигурации — весь стейт AdGuard Home лежит в /opt/AdGuardHome/conf/AdGuardHome.yaml, разумно копировать его в бэкап-скрипт вместе с остальными конфигами сервера.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Обязательно ли нужен домен для работы AdGuard Home?

Нет, обычный DNS (порт 53) работает без домена и сертификата — домен нужен только для приёма зашифрованных DoH/DoT-запросов от клиентов на стороне сервера.

Сколько ресурсов VPS реально нужно?

Для личного использования на несколько устройств хватает 1 vCPU и 1 ГБ RAM с запасом; большие фильтр-листы (HaGeZi Multi PRO и подобные) на слабом CPU дольше парсятся при обновлении, но на работу DNS-резолвинга это не влияет.

Можно ли совместить AdGuard Home с Pi-hole на одном сервере?

Технически да, если развести порты, но смысла немного — функционал пересекается почти полностью, выберите один инструмент.

AdGuard Home замедляет интернет?

Дополнительная задержка на резолвинг обычно измеряется единицами миллисекунд и на глаз не ощущается; заметнее эффект от географии сервера, чем от самой фильтрации.

Что делать, если после установки сайты вообще перестали открываться?

Скорее всего, конфликт с systemd-resolved за 53-й порт не был устранён до конца — проверьте ss -tulpn | grep :53, там должен быть виден только процесс AdGuardHome.

Как обновить AdGuard Home до новой версии?

Через сам веб-интерфейс — раздел «Общие настройки» показывает уведомление о новой версии с кнопкой обновления, либо повторным запуском install-скрипта с флагом -r (переустановка).

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →