Установка Pi-hole и AdGuard Home: Блокировка рекламы на уровне сети
Установка Pi-hole и AdGuard Home через Docker, настройка DNS, управление списками блокировки, DHCP-сервер, белый/чёрный список, статистика и поддержка DoH/DoT.
Содержание
Установка Pi-hole и AdGuard Home: Блокировка рекламы на уровне сети
Pi-hole и AdGuard Home — это самостоятельно размещаемые решения, обеспечивающие DNS-блокировку рекламы и трекеров для всех устройств в вашей сети. В отличие от расширений браузера, они работают на уровне всей сети, блокируя рекламу также в смарт-телевизорах, игровых консолях и мобильных приложениях.
Сравнение Pi-hole и AdGuard Home
| Функция | Pi-hole | AdGuard Home |
|---|---|---|
| Интерфейс | Классический, функциональный | Современный, удобный |
| DoH/DoT | Требует плагин | Встроенный |
| DHCP | Поддерживается | Поддерживается |
| Regex-правила | Ограниченные | Расширенные |
| Установка | Простая | Очень простая |
| Производительность | Хорошая | Очень хорошая |
| Рекомендуется для | Опытных пользователей | Новичков |
Системные требования
- Сервер или Raspberry Pi с установленными Docker и Docker Compose
- Минимум 512 МБ ОЗУ
- Статический IP-адрес (важно для DNS-сервера)
- Порт 53 должен быть доступен
Установка Pi-hole через Docker
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
# Остановить сервис, использующий порт 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
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
docker compose up -d
# Начальная настройка: http://IP_СЕРВЕРА:3000
Настройка DNS
Настройка DNS на роутере (Рекомендуется)
Панель управления роутером → Настройки DHCP
Основной DNS: IP_СЕРВЕРА (IP Pi-hole/AdGuard)
Дополнительный DNS: 1.1.1.1 (резервный)
Настройка DNS на отдельных устройствах
# 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
# Обновить gravity (обновить списки)
docker exec pihole pihole -g
Списки фильтров AdGuard Home
Фильтры → DNS-списки блокировки → Добавить список блокировки
Рекомендуемые списки:
- AdGuard DNS filter (по умолчанию)
- EasyList
- EasyPrivacy
- Malware Domains
Белый и чёрный список
Pi-hole
# Добавить в белый список
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)
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-фильтрация особенно эффективна в средах с несколькими контейнерами.
Связанные статьи
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.