Повний посібник з встановлення AdGuard Home за допомогою Docker

Останнє оновлення: 15/09/2026

  • Вторинний публічний DNS може дозволити деяким комп'ютерам обійти блокування.
  • Для використання AdGuard Home DHCP рекомендується використовувати network_mode: host у Linux.
  • AdGuard Home блокує домени, але не замінює VPN і не видаляє всю рекламу.
  • Правильне оновлення за допомогою Compose — це docker compose pull, а потім docker compose up -d.

AdGuard Home дозволяє Блокуйте рекламу, трекери та шкідливі домени по всій вашій домашній мережі з одного сервера. Замість встановлення розширення в кожному браузері, мобільні телефони, комп’ютери, телевізори та інші пристрої використовують AdGuard Home як свій DNS-сервер.

Встановіть його за допомогою Docker Compose Це спрощує налаштування, ізолює службу від решти системи та дозволяє зберігати її конфігурацію в постійних каталогах. Це також спрощує оновлення та резервне копіювання.

Важливо одразу уточнити, що AdGuard Home Це не працює як VPNВін не приховує вашу IP-адресу та не анонімізує ваш перегляд веб-сторінок. Крім того, блокування на основі DNS не може видалити рекламу, що відображається з того ж домену, що й контент, як це відбувається з деякою рекламою на YouTube, Twitch та певних платформах соціальних мереж.

Що вам потрібно перед встановленням AdGuard Home

що потрібно для встановлення AdGuard

Ви можете запустити AdGuard Home на комп’ютері, домашньому сервері, сумісному NAS або платі ARM, такій як Raspberry Pi або Orange Pi. Пристрій має залишатися ввімкненим щоразу, коли вам потрібна роздільна здатність DNS та мережева фільтрація.

Перш ніж почати, переконайтеся, що у вас є:

  • Система Linux з Docker Engine та Docker Compose встановлено.
  • Обліковий запис із правами на запуск Docker.
  • А статична локальна IP-адреса для сервера або резервування DHCP, налаштоване на маршрутизаторі.
  • Доступ до панелі адміністрування роутера.
  • Доступні порти TCP та UDP 53.

Ви можете перевірити встановлення Docker за допомогою цих команд:

docker --version
docker compose version

Також рекомендується завантажити образ перед зміною DNS самого сервера:

docker pull adguard/adguardhome:latest

Як вирішити конфлікт порту 53

AdGuard Home потребує прослуховування порт 53 з використанням TCP та UDPУ Ubuntu та інших дистрибутивах, що використовують systemd-resolvedЦей порт може бути зайнятий локальною службою DNS.

Перевірте, який процес його використовує:

sudo lsof -i :53

Не вимикайте жодну службу, доки не визначите її. Якщо результат відображається systemd-resolved слухаючи 127.0.0.53:53Ви можете вимкнути його локальне прослуховування, виконавши процедуру, рекомендовану AdGuard.

Спочатку створіть каталог і відкрийте файл конфігурації:

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf

Введіть ці рядки:

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Далі замініть посилання на resolv.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

З цього моменту сервер може тимчасово втратити розпізнавання імен, доки AdGuard Home не почне працювати. Тому бажано заздалегідь завантажити образ і залишити термінал відкритим.

Ексклюзивний вміст - натисніть тут  Як отримати SS на ПК

Якщо порт 53 зайнятий іншою програмою, вам потрібно перевірити її налаштування замість автоматичного застосування цих змін.

Як встановити AdGuard Home за допомогою Docker Compose

Мережеві кабелі, підключені до комутатора, що представляє підключення AdGuard Home до домашньої мережі.

Створіть каталог для проєкту та дві папки для постійних даних:

mkdir -p ~/adguardhome/work
mkdir -p ~/adguardhome/conf
cd ~/adguardhome

У цьому каталозі створіть файл з назвою compose.yaml з наступним змістом:

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
      - "3000:3000/tcp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

У цьому файлі публікуються лише порти, необхідні для базової домашньої інсталяції:

  • 53 TCP та UDP: DNS-запити.
  • 3000 ТСР: майстер початкової інсталяції.
  • 80 ТСР: панель адміністрування після завершення роботи майстра.

Якщо порт 80 вже використовується, замініть відповідний рядок на:

      - "8080:80/tcp"

У такому разі панель буде доступна на порту 8080 сервера.

Запустіть контейнер у фоновому режимі:

docker compose up -d

Перевірте його стан:

docker compose ps

Якщо контейнер запускається неправильно, перевірте журнали:

docker compose logs adguardhome

Завершіть початкове налаштування

Комп’ютер, який використовується для безпечного налаштування домашньої панелі AdGuard.

Відкрийте браузер на іншому пристрої, підключеному до тієї ж мережі, та відвідайте:

http://IP-DEL-SERVIDOR:3000

Замінює IP-DEL-SERVIDOR за локальною адресою машини, на якій працює Docker, наприклад 192.168.1.50.

Під час роботи асистента:

  1. Виберіть інтерфейс, на якому має працювати панель адміністрування.
  2. Залиште внутрішній порт 80 для веб-інтерфейсу, якщо ви не підготували іншу конфігурацію.
  3. Налаштуйте DNS-сервер для прослуховування порту 53.
  4. Створіть ім'я користувача та довгий та унікальний пароль.
  5. Завершіть роботу майстра та відкрийте панель у http://IP-DEL-SERVIDOR.

Якщо ви використовували картографування 8080:80Вам потрібно буде увійти, використовуючи:

http://IP-DEL-SERVIDOR:8080

У контейнері зазвичай необхідно вибрати всі інтерфейси для коректної роботи портів, опублікованих Docker. Тоді вплив слід обмежити за допомогою конфігурації брандмауера сервера та маршрутизатора.

Налаштуйте свій роутер для використання AdGuard Home

Адміністратор налаштовує домашній DNS-сервер з ноутбука.

Встановлення контейнера не означає автоматичного початку його використання пристроями в мережі. Вам потрібно отримати доступ до панелі керування маршрутизатора та знайти налаштування для LAN, DHCP або DNS-сервер.

Введіть статичну IP-адресу сервера, на якому встановлено AdGuard Home, як основний DNS-сервер. Потім оновіть підключення на своїх пристроях або перезавантажте маршрутизатор, щоб вони отримали нову конфігурацію.

Не вводьте Google DNS, Cloudflare або інший публічний сервер як вторинний DNS-сервер, якщо ви хочете, щоб усі запити проходили через AdGuard Home. Багато пристроїв перемикаються між обома серверами та можуть обійти фільтрацію. Для справжнього резервування вам знадобиться другий екземпляр AdGuard Home.

Ексклюзивний вміст - натисніть тут  Як відкрити STL-файл

Якщо ваша мережа використовує IPv6, вам також потрібно налаштувати DNS-сервер, що рекламується за допомогою IPv6. В іншому випадку деякі пристрої можуть надсилати свої запити таким чином і обходити AdGuard Home.

Ви можете перевірити, який сервер використовує комп'ютер:

nslookup example.org

Адреса, що відображається в полі сервера, має збігатися з IP-адресою AdGuard Home. Запит також має відображатися в журнал запитів панелі.

Налаштуйте фільтри без порушення роботи вебсторінок

AdGuard Home містить достатньо фільтрів для початку. Перш ніж додавати кілька великих списків, використовуйте налаштування за замовчуванням протягом кількох днів і перегляньте журнал запитів.

Додавання занадто великої кількості списків не завжди покращує захист. Багато з них містять дублікати доменів, а надмірно агресивна конфігурація може перешкоджати роботі програм, телевізорів, систем входу або смарт-пристроїв.

Якщо сторінка перестала працювати:

  1. Відкрийте журнал запитів AdGuard Home.
  2. Відтворіть проблему на ураженому пристрої.
  3. Знайдіть заблоковані запити.
  4. Розблокуйте лише необхідний домен.
  5. Перевірте, чи сервіс знову працює.

Правила винятків необхідно додавати окремо. Дозвіл цілого домену без перевірки його функціональності може знову ввімкнути трекери або непотрібну рекламу.

Як використовувати AdGuard Home як DHCP-сервер

AdGuard Home також може призначати IP-адреси пристроям, але ця функція вимагає доступу до мережевого широкомовного трафіку. Офіційна документація рекомендує запускати контейнер із... режим хост-мережі на Лінуксі.

Щоб зробити це за допомогою команди Compose, замініть розділ ports від:

    network_mode: host

Не поєднуйте network_mode: host з відображенням портів, оскільки Docker ігнорує правила ports коли контейнер використовує мережу хост-системи.

Перш ніж увімкнути DHCP в AdGuard Home, вимкніть DHCP-сервер маршрутизатора. Два DHCP-сервери ніколи не повинні працювати без попереднього планування, оскільки це може призвести до конфлікту конфігурацій.

Цей підхід рекомендується в першу чергу для виділеного сервера Linux. Додаткові обмеження можуть застосовуватися до NAS, Docker Desktop та віртуалізованих середовищ.

Зашифрований DNS, без обмежень та обмеження конфіденційності

AdGuard Home підтримує сервери вищої ланки через DNS-овер-HTTPS, DNS-овер-TLS та DNS-овер-QUICЦі опції шифрують запити між AdGuard Home та обраним DNS-провайдером, але цей провайдер все одно зможе їх обробляти. Вони також не приховують наступні підключення до веб-сайтів.

Інша можливість — використовувати Unbound як рекурсивний резолвер. Це зменшує залежність від централізованого постачальника DNS, хоча й додає складності та не робить перегляд веб-сторінок анонімним.

Якщо ви запускаєте Unbound у Docker, обидва сервіси повинні використовувати спільну мережу Compose, а AdGuard Home має підключатися через назва служби та портНе рекомендується безпосередньо вводити внутрішню IP-адресу контейнера, оскільки вона може змінитися, коли Docker її відтворюватиме.

Ексклюзивний вміст - натисніть тут  Як створити новий шаблон Word

Для початкової домашньої інсталяції Unbound не є обов'язковим. Бажано спочатку перевірити, чи AdGuard Home працює правильно, а рекурсивний резолвер додати на другому етапі.

Оновлення та створення резервних копій

Домашній сервер, на якому працює AdGuard Home з використанням Docker.

Важливі дані знаходяться в довідниках. work y confДругий містить файл AdGuardHome.yamlякі не слід змінювати під час роботи служби, оскільки програма може перезаписати зміни.

Перед оновленням створіть копії обох каталогів. Щоб забезпечити узгодженість копій, ви можете тимчасово зупинити контейнер:

cd ~/adguardhome
docker compose stop
tar -czf adguardhome-backup.tar.gz compose.yaml work conf
docker compose start

Щоб завантажити останню стабільну версію та повторно створити службу:

docker compose pull
docker compose up -d

Compose замінить контейнер, коли зображення зміниться, але збереже дані в постійних каталогах.

Після оновлення перевірте:

  • Зробіть контейнер активним.
  • Переконайтеся, що панель адміністрування доступна.
  • Що тестовий запит відображається в журналі.
  • Що налаштовані фільтри та клієнти залишаються доступними.

Типові помилки під час встановлення AdGuard Home за допомогою Docker

Найпоширенішими проблемами є наступні:

  • Порт 53 зайнятий: Визначте процес за допомогою lsof і перевірте systemd-resolved.
  • Контейнер працює, але не відповідає: Перевірте брандмауер і переконайтеся, що порти 53 TCP та UDP відкриті.
  • Запити не відображаються: Маршрутизатор або пристрій продовжує використовувати інший DNS-сервер.
  • Деякі команди уникають блокування: Перевірте функції вторинного DNS, IPv6 та приватного DNS пристрою.
  • Налаштування втрачаються під час повторного створення контейнера: перевірити збірки work y conf.
  • DHCP не може знайти клієнтів: Використовувати мережевий режим host на Linux і перевірте, чи DHCP маршрутизатора вимкнено.
  • Програма перестає працювати: Перш ніж вимикати всі фільтри, перевірте, який домен було заблоковано.

Зрештою, не перенаправляйте порти 53, 80, 3000 або 6060 до Інтернету з вашого маршрутизатора. Відкритий DNS-сервер може бути використаний для атак посилення, тоді як публічна панель адміністрування безпідставно збільшує поверхню атаки.

Завдяки статичній IP-адресі, постійним томам та правильно налаштованому DNS маршрутизатора, AdGuard Home може централізовано фільтрувати запити по всій мережі. Docker Compose спрощує обслуговування, але доступність сервера стає критично важливою: якщо він вимикається, а резервного копіювання немає, пристрої можуть тимчасово втратити роздільну здатність DNS.