Полное руководство: Установка и настройка AdGuard Home на Raspberry Pi через Docker (с обходом конфликта портов)
Чистый интернет во всей домашней сети, блокировка мобильной рекламы, защита от трекеров и полное скрытие DNS-запросов от провайдера - всё это можно реализовать силами одной лишь Raspberry Pi или другим устройством на Linux.
Долгое время королем сетевой блокировки считался Pi-hole, но сегодня индустрия двинулась дальше. AdGuard Home - более современное решение: оно написано на Go, работает "из коробки" с шифрованием (DoH, DoT, DoQ) и поддерживает мощный Adblock-синтаксис фильтров.
В этой статье мы разберем, как правильно развернуть AdGuard Home в Docker на Raspberry Pi, как решить частую проблему занятого 53-го порта (особенно если у вас стоят другие сервисы вроде v2rayA/Xray) и как правильно настроить систему для RU-сегмента.
Подготовка: Решаем проблему 53-го порта
Главная сложность при установке любого DNS-сервера в Docker - борьба за порт 53. Этот порт необходим для работы DNS, но в современных дистрибутивах Linux (включая Raspberry Pi OS и Ubuntu) он часто уже занят системным резолвером (systemd-resolved), встроенным dnsmasq или прокси-глушилками (например, движком Xray).
Перед стартом проверим, свободен ли порт. Выполните команду в терминале малинки:
sudo ss -tulpn | grep :53Сценарий 1: Порт занят службой systemd-resolved
Если в выводе вы увидели этот процесс, его нужно отключить, чтобы освободить порт для Docker:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
Сценарий 2: Порт частично занят другими сервисами (Xray, VPN, dnsmasq)
Если вы увидели, что на порту 53 висят другие важные службы (например, на локальных адресах 127.2.0.17 или 10.42.0.1), отключать их нельзя - это сломает ваши туннели или внутреннюю сеть.
Решение: Мы заставим AdGuard Home слушать порт 53 только на основном IP-адресе вашей Raspberry Pi, который смотрит в домашнюю сеть.
Узнайте локальный IP-адрес малинки:
hostname -I(Допустим, ваш адрес 192.168.1.50. Запомните его, он пригодится при написании Docker Compose).
Шаг 1: Развертывание через Docker Compose (Предполагается, что у Вас уже установлен и настроен Docker)
Создадим отдельную директорию для проекта и конфигурационный файл:
mkdir -p ~/adguard && cd ~/adguard
nano docker-compose.ymlВставьте в файл следующий конфиг. Внимание: замените 192.168.1.50 на реальный IP-адрес вашей Raspberry Pi!
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
restart: unless-stopped
ports:
# Привязываем DNS к конкретному IP малинки, чтобы избежать конфликтов
- "192.168.1.50:53:53/tcp"
- "192.168.1.50:53:53/udp"
# Веб-панель управления
- "80:80/tcp"
# Порт для первичной инициализации
- "3000:3000/tcp"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/confСохраните файл (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X).
Запускаем контейнер:
docker compose up -d
Шаг 2: Первичная настройка AdGuard Home
Откройте браузер и перейдите по адресу: http://<IP_ВАШЕЙ_МАЛИНКИ>:3000.
Перед вами откроется приветственный мастер установки:
- Веб-интерфейс: Оставляйте "Все интерфейсы" и порт 80.
DNS-сервер: Оставляйте "Все интерфейсы" и порт 53.
Примечание: Внутри контейнера AdGuard должен слушать всё, Docker сам перенаправит трафик с внешнего IP на внутренний.
- Нажмите Далее, придумайте логин и надежный пароль для администратора.
После завершения панель управления станет доступна по обычному адресу: http://<IP_ВАШЕЙ_МАЛИНКИ>.

Шаг 3: Настройка шифрования (DNS-over-HTTPS / QUIC)
По умолчанию AdGuard отправляет запросы в сеть в открытом виде. Провайдер может их перехватывать, анализировать и подменять (так работают базовые блокировки сайтов). Защитим наш трафик.
- В панели управления перейдите в Настройки -> Настройки DNS.
В поле Апстрим DNS-серверы удалите всё и вставьте этот список быстрых и зашифрованных серверов:
https://dns.cloudflare.com/dns-query quic://dns.adguard-dns.com tls://dns.quad9.net https://dns.google/dns-query- Ниже в режиме маршрутизации выберите "Параллельные запросы" - AdGuard будет опрашивать все серверы одновременно и выбирать самый быстрый ответ. Это ускорит загрузку сайтов.
В поле Серверы начальной загрузки (Bootstrap DNS) вставьте обычные IP-адреса. Они нужны системе только для того, чтобы в первый раз узнать координаты зашифрованных серверов:
9.9.9.10 149.112.112.10 2620:fe::10 2620:fe::fe:10 1.1.1.1 1.0.0.1 8.8.8.8 9.9.9.9- Нажмите Проверить апстримы и, если всё ок, нажмите Применить.
Шаг 4: Подключаем лучшие фильтры для рунета (и где искать пропавшие списки)
Чтобы не перегружать оперативную память Raspberry Pi и не вызывать "поломку" нормальных сайтов, списки блокировок нужно подбирать аккуратно. В последних версиях AdGuard Home разработчики сильно почистили встроенные каталоги.
Перейдите в Фильтры -> Черные списки DNS -> Добавить черный список
Рекомендуемый сбалансированный набор:
- Общие: AdGuard DNS filter (включен по умолчанию, отлично режет базовую рекламу и трекеры) и OISD Blocklist Full (идеальный агрегатор без ложных срабатываний)..
- Региональные: AdGuard Russian filter и RU AdList (без них реклама Яндекса, Mail.ru и локальных сетей будет пролетать).
- Безопасность: Phishing URL Blocklist (PhishTank and OpenPhish), Malicious URL Blocklist (URLhaus) (Они надежно защитят домашнюю сеть от фишинга и вирусов.), WindowsSpyBlocker (глушит телеметрию Windows, не ломая обновления системы).

Куда пропал список для России и защита от трекеров?
Если вы не нашли в меню "Региональные" привычный российский фильтр - не пугайтесь. Дело в том, что разработчики AdGuard перенесли все актуальные DNS-блокировки для России (и правила против трекеров) прямо в базовый AdGuard DNS filter. Технически, вы уже защищены от отечественной рекламы "из коробки".
Как добавить кастомные списки вручную (Для продвинутых):
Для максимальной, бескомпромиссной фильтрации специфического мусора в рунете и телеметрии, добавьте пару легендарных списков вручную.
Нажмите "Добавить свой список" и введите:
- Для блокировки телеметрии Windows 10/11 (без поломки обновлений):
- Название:
WindowsSpyBlocker - URL:
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
- Название:
- Для жесткой блокировки Яндекс.Метрики, Mail.ru и тизерных сетей:
- Название:
RU AdList - URL:
https://easylist-downloads.adblockplus.org/advblock.txt
- Название:
Нажмите "Сохранить", и AdGuard сам скачает актуальные правила.
Заключение: Направляем трафик
Теперь, когда ваш персональный DNS-сервер готов, нужно направить на него трафик.
У вас есть два пути:
- Для всего дома: Зайдите в настройки вашего домашнего роутера, найдите параметры DHCP и в поле Primary DNS (Основной DNS) введите IP-адрес вашей Raspberry Pi. Перезагрузите роутер. Теперь все устройства (телефоны, ТВ, ноутбуки) защищены автоматически.
- Для одного устройства: Если не хотите трогать роутер, зайдите в сетевые настройки конкретного ПК или смартфона и укажите IP малинки в качестве DNS вручную.
Что в итоге?
Вы получили полный контроль над своим сетевым трафиком. Вкладка "Журнал запросов" в AdGuard Home наглядно покажет, какие устройства и куда пытаются "стучаться" в фоновом режиме. Если какой-то нужный вам сайт или банк случайно заблокируется - вы сможете внести его в белый список прямо из лога в один клик.
Часто задаваемые вопросы (FAQ)
Почему AdGuard Home не блокирует рекламу внутри видео на YouTube, VK или Rutube?
Потому что эти платформы используют технологию серверной вклейки рекламы (SSAI - Server-Side Ad Insertion). Рекламные ролики и основное видео склеиваются на серверах корпораций и отдаются на ваше устройство с одного и того же домена единым зашифрованным потоком. DNS-фильтр работает на уровне доменов: он либо заблокирует весь видеопоток целиком, либо пропустит его вместе с рекламой. Для блокировки in-stream рекламы вам всё еще понадобятся браузерные расширения (например, uBlock Origin) или модифицированные клиенты (ReVanced).
У меня перестал открываться нужный сайт (Сбербанк, Госуслуги, Кинопоиск). Как починить?
Такое иногда случается - это типичное "ложное срабатывание" одного из черных списков. Не паникуйте! Откройте веб-панель AdGuard Home, перейдите в раздел "Журнал запросов". Найдите там свежую красную строчку с заблокированным доменом вашего сервиса и просто нажмите кнопку "Разблокировать". Сайт моментально заработает.
Что произойдет, если Raspberry Pi зависнет или я выдерну ее из розетки?
Это важный нюанс, о котором нужно помнить. Если вы указали малинку в настройках роутера как единственный DNS-сервер для всего дома, то при её отключении у всех устройств в квартире "пропадет" интернет. Сайты просто перестанут открываться (хотя мессенджеры по прямым IP могут работать). Если вы планируете выключить сервер надолго, не забудьте вернуть в настройках роутера автоматическое получение DNS от провайдера.
Что будет, если дома отключится электричество? Придется ли запускать всё заново?
Нет. В конфигурации нашего Docker-файла прописано правило restart: unless-stopped. Это значит, что как только Raspberry Pi получит питание и загрузится, AdGuard Home запустится автоматически, и интернет у всех устройств в доме восстановится.
Можно ли использовать AdGuard Home одновременно с VPN или обходом DPI (например, v2rayA / Xray)?
Да, они прекрасно работают на одном сервере. Более того, это классическая связка для современного домашнего сервера. Главное правило - грамотно настроить порты (как описано в нашей инструкции), чтобы движок VPN и Docker-контейнер с AdGuard не пытались одновременно занять 53-й порт на всех сетевых интерфейсах. Привязка AdGuard к локальному IP-адресу полностью решает эту проблему.
Глоссарий терминов
- DNS (Domain Name System) - "телефонная книга" интернета. Переводит понятные человеку адреса (например, riopass.ru) в числовые IP-адреса серверов (например, 192.168.1.1), которые понимают компьютеры.
- Апстрим DNS (Upstream DNS) - вышестоящий сервер в интернете. Когда вы вводите адрес сайта, а ваш домашний AdGuard Home не знает его IP-адреса, он обращается именно к апстрим-серверам (например, к серверам Cloudflare или Google) за ответом.
- Серверы начальной загрузки (Bootstrap DNS) - обычные, нешифрованные серверы (например,
1.1.1.1). Они нужны вашему AdGuard только в самую первую секунду работы: чтобы перевести буквенный адрес шифрованного апстрим-сервера (типаdns.cloudflare.com) в цифры и установить с ним защищенное соединение. - DNS-over-HTTPS (DoH) / DNS-over-QUIC (DoQ) - современные протоколы шифрования. Заворачивают ваши DNS-запросы в непроницаемый криптографический туннель. Благодаря им ваш интернет-провайдер не видит, на какие сайты вы заходите, и не может подменить ответ (например, выдать страницу-заглушку о блокировке).
- Порт 53 - стандартная "дверь" в сетевом оборудовании, через которую проходит весь нешифрованный DNS-трафик.
- DHCP (Dynamic Host Configuration Protocol) - служба на вашем домашнем роутере, которая автоматически раздает IP-адреса и настройки сети (включая адрес нашего нового DNS-сервера) всем подключающимся телефонам, телевизорам и компьютерам.
- Docker / Docker Compose - система контейнеризации. Позволяет запускать программы (например, AdGuard Home) в изолированной среде со всеми необходимыми зависимостями, чтобы они не конфликтовали с основной операционной системой (Raspberry Pi OS).
- systemd-resolved - встроенная в Linux системная служба для управления сетевыми именами. Часто является главной головной болью при настройке собственных DNS-серверов, так как намертво занимает порт 53.
- v2rayA / Xray - мощные современные инструменты для маршрутизации трафика и обхода систем глубокого анализа пакетов (DPI). Часто устанавливаются на тот же сервер, что и AdGuard Home, для создания комплексного домашнего шлюза.
- SSAI (Server-Side Ad Insertion) - серверная вклейка рекламы. Технология, из-за которой AdGuard Home и другие сетевые блокировщики не могут вырезать рекламу внутри видеороликов на YouTube или VK Video. Видео и реклама отдаются с одного домена единым зашифрованным потоком.
- Ложные срабатывания (False Positives) - ситуация, когда из-за слишком агрессивных списков фильтрации под блокировку попадает полезный домен. Из-за этого может сломаться верстка сайта или перестать работать авторизация в приложении банка.
- Локальный IP-адрес - внутренний адрес устройства в вашей домашней сети (обычно начинается на 192.168.x.x или 10.x.x.x). Доступ к нему есть только у устройств, подключенных к вашему домашнему Wi-Fi, из интернета напрямую до него не добраться.