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

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

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

Время чтения: 14 мин Самостоятельный хостинг
pi-holeadguarddnsблокировка рекламыself-hostingdockerсетевая безопасность

Содержание

Установка 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-фильтрация особенно эффективна в средах с несколькими контейнерами.