Перейти к основному содержимому
Вернуться в категорию

Установка Pi-hole и AdGuard Home: Блокировка рекламы на уровне сети

Установка Pi-hole и AdGuard Home через Docker, настройка DNS, управление списками блокировки, DHCP-сервер, белый/чёрный список, статистика и поддержка DoH/DoT.

Время чтения: 14 мин Самостоятельный хостинг
pi-holeadguarddnsблокировка рекламыself-hostingdockerсетевая безопасность
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Установка Pi-hole и AdGuard Home: Блокировка рекламы на уровне сети

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

Сравнение Pi-hole и AdGuard Home

ФункцияPi-holeAdGuard Home
ИнтерфейсКлассический, функциональныйСовременный, удобный
DoH/DoTТребует плагинВстроенный
DHCPПоддерживаетсяПоддерживается
Regex-правилаОграниченныеРасширенные
УстановкаПростаяОчень простая
ПроизводительностьХорошаяОчень хорошая
Рекомендуется дляОпытных пользователейНовичков

Системные требования

  • Сервер или Raspberry Pi с установленными Docker и Docker Compose
  • Минимум 512 МБ ОЗУ
  • Статический IP-адрес (важно для DNS-сервера)
  • Порт 53 должен быть доступен

Установка Pi-hole через Docker

hljs yaml
version: '3.8'

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "127.0.0.1:8080:80"
    environment:
      TZ: 'Europe/Moscow'
      WEBPASSWORD: 'надёжный-пароль'
      PIHOLE_DNS_: '1.1.1.1;8.8.8.8'
      DNSSEC: 'true'
      DNSMASQ_LISTENING: 'all'
    volumes:
      - ./pihole/etc-pihole:/etc/pihole
      - ./pihole/etc-dnsmasq.d:/etc/dnsmasq.d
    cap_add:
      - NET_ADMIN
hljs bash
# Остановить сервис, использующий порт 53 (Ubuntu)
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

# Обновить /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

# Запустить Pi-hole
docker compose up -d

В Ubuntu systemd-resolved использует порт 53. Необходимо остановить этот сервис перед запуском Pi-hole.

Установка AdGuard Home через Docker

hljs yaml
version: '3.8'

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "127.0.0.1:3000:3000"
      - "127.0.0.1:8080:80"
      - "853:853/tcp"
      - "443:443/tcp"
    volumes:
      - ./adguard/work:/opt/adguardhome/work
      - ./adguard/conf:/opt/adguardhome/conf
hljs bash
docker compose up -d
# Начальная настройка: http://IP_СЕРВЕРА:3000

Настройка DNS

Настройка DNS на роутере (Рекомендуется)

Панель управления роутером → Настройки DHCP
Основной DNS: IP_СЕРВЕРА (IP Pi-hole/AdGuard)
Дополнительный DNS: 1.1.1.1 (резервный)

Настройка DNS на отдельных устройствах

hljs bash
# Linux
sudo nano /etc/resolv.conf
nameserver IP_СЕРВЕРА

# Windows (PowerShell)
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses IP_СЕРВЕРА

Управление списками блокировки

Добавление списков блокировки Pi-hole

Group Management → Adlists → Добавить

Популярные списки:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://adaway.org/hosts.txt
https://v.firebog.net/hosts/Easylist.txt
https://v.firebog.net/hosts/Easyprivacy.txt
hljs bash
# Обновить gravity (обновить списки)
docker exec pihole pihole -g

Списки фильтров AdGuard Home

Фильтры → DNS-списки блокировки → Добавить список блокировки

Рекомендуемые списки:
- AdGuard DNS filter (по умолчанию)
- EasyList
- EasyPrivacy
- Malware Domains

Белый и чёрный список

Pi-hole

hljs bash
# Добавить в белый список
docker exec pihole pihole -w example.com

# Добавить в чёрный список
docker exec pihole pihole -b ads.example.com

# Regex-чёрный список
docker exec pihole pihole --regex '(^|\.)ads\..*'

AdGuard Home

Фильтры → Пользовательские правила фильтрации

# Блокировать
||ads.example.com^

# Разрешить (белый список)
@@||example.com^

DHCP-сервер

Pi-hole: Настройки → DHCP
- DHCP-сервер включён: Да
- Диапазон: 192.168.1.100 - 192.168.1.200
- Роутер: 192.168.1.1
- Время аренды: 24 часа

AdGuard Home: Настройки → Настройки DHCP
- Включить DHCP-сервер
- Диапазон IP: 192.168.1.100 - 192.168.1.200
- Шлюз: 192.168.1.1

Отключите DHCP на роутере перед включением его на Pi-hole/AdGuard. Два DHCP-сервера вызывают проблемы с сетью.

Настройка DoH и DoT

AdGuard Home с DoH/DoT

Настройки → Настройки шифрования:
- Включить шифрование: Да
- Имя сервера: dns.example.com
- HTTPS-порт: 443
- DNS-over-TLS порт: 853

Pi-hole с DoH (Cloudflared)

hljs yaml
cloudflared:
  image: cloudflare/cloudflared:latest
  container_name: cloudflared
  restart: unless-stopped
  command: proxy-dns --port 5053 --upstream https://1.1.1.1/dns-query
  network_mode: host
Pi-hole → Настройки → DNS
Пользовательский DNS: 127.0.0.1#5053

Установив Pi-hole или AdGuard Home на серверах REXE VPS, вы можете фильтровать весь трафик сервера. DNS-фильтрация особенно эффективна в средах с несколькими контейнерами.

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

После установки Pi-hole пропало интернет-соединение.

Другой сервис может использовать порт 53. В Ubuntu остановите systemd-resolved: sudo systemctl stop systemd-resolved. Проверьте /etc/resolv.conf и временно добавьте 8.8.8.8. Убедитесь, что контейнер Pi-hole запущен с помощью docker ps. Обновите настройку DNS на роутере до IP Pi-hole.

Некоторые сайты не открываются с Pi-hole/AdGuard.

Сайт может быть случайно заблокирован. В Pi-hole найдите в Query Log, какой домен заблокирован, и добавьте его в белый список: pihole -w domain.com. В AdGuard Home добавьте @@||domain.com^ в Фильтры → Пользовательские правила фильтрации. Если используете очень агрессивные списки блокировки, попробуйте отключить некоторые из них.

Мой процент блокировки очень низкий (менее 5%), это нормально?

Процент блокировки варьируется в зависимости от использования сети. 20-30% считается нормальным при интенсивном использовании рекламы. Добавьте больше списков блокировки для увеличения процента. Убедитесь, что устройства используют Pi-hole/AdGuard в качестве DNS. Приложения с зашифрованным DNS (DoH/DoT) могут не поддаваться фильтрации.

После переноса DHCP на Pi-hole некоторые устройства не могут получить IP-адрес.

Убедитесь, что DHCP на роутере полностью отключён. Проверьте, что диапазон DHCP Pi-hole не пересекается со старым диапазоном роутера. Обновите сетевое подключение на затронутых устройствах: ipconfig /release && ipconfig /renew (Windows) или dhclient -r (Linux). Проверьте логи DHCP Pi-hole.

Как использовать DNS-over-HTTPS с AdGuard Home?

Загрузите SSL-сертификат из раздела Настройки шифрования в AdGuard Home. URL DNS-over-HTTPS: https://dns.example.com/dns-query. Добавьте этот URL как DoH-сервер на устройствах. Windows 11, Android 9+ и iOS 14+ имеют встроенную поддержку DoH. В Firefox используйте about:config → network.trr.uri.

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

Запустить оба на одном сервере невозможно, так как оба используют порт 53. Можно запустить их на разных серверах или разных IP-адресах. Альтернативно можно использовать один как основной, а другой как вторичный DNS. Для большинства пользователей достаточно выбрать один из них.

Связанные статьи

Сетевой трафикВходящий GbpsИсходящий Gbps