«Обычная блокировка рекламы слепа к тому, что происходит вне браузера. Настоящий контроль начинается тогда, когда ты берёшь под свой контроль первый и самый фундаментальный протокол интернета — DNS. Связка Pi-hole и Unbound — это не просто «фильтр», а полная замена внешним DNS-серверам. Ты перестаёшь спрашивать у чужих серверов, куда тебе идти, и начинаешь находить путь самостоятельно. Побочный эффект — приватность, независимость от провайдера и неожиданное понимание того, что твои устройства делают в сети, когда ты этого не видишь».
Почему блокировка рекламы выходит за рамки браузера
Браузерные расширения — это локальное и реактивное решение. Они видят запрос, когда он уже сформирован, и пытаются его прервать. Это работает для одного сеанса на одном устройстве, но оставляет в стороне всю остальную экосистему: умные телевизоры, телефоны с их приложениями, игровые приставки, домашнюю технику. Каждое из этих устройств формирует десятки фоновых DNS-запросов к трекерам, телеметрии и рекламным сетям.
DNS-фильтрация решает проблему иначе, действуя на опережение. Прежде чем устройство установит хоть одно соединение, оно должно преобразовать доменное имя (например, ads.example.com) в IP-адрес. Если на этом этапе вернуть некорректный адрес, соединение не состоится физически. Блокировка происходит на уровне всей сети, централизованно, для любого подключённого гаджета без установки дополнительного ПО.
Стандартный путь — перенаправить DNS-запросы на публичный сервер с фильтрацией. Но это лишь меняет одного посредника на другого. Ты по-прежнему отдаёшь полную карту своего сетевого поведения — все запросы ко всем доменам — внешней компании. Единственный способ получить и контроль, и приватность — запустить собственный DNS-сервер внутри сети. Именно эту задачу и решает комбинация Pi-hole (фильтр и панель управления) и Unbound (полноценный независимый резолвер).
Архитектура решения: от запроса до IP-адреса
Чтобы увидеть разницу, нужно сравнить два маршрута DNS-запроса.
Типичный сценарий: Устройство -> Роутер -> DNS-сервер провайдера/Google/Cloudflare -> Кеш сервера -> Корневые серверы -> Серверы доменной зоны -> Ответ. Здесь провайдер или оператор публичного DNS видит все твои запросы целиком и является единой точкой контроля и потенциального отказа.
[ИЗОБРАЖЕНИЕ: Двухколоночная диаграмма. Слева — стандартный поток запросов с метками «Запросы видны провайдеру/публичному DNS». Справа — поток через Pi-hole и Unbound: устройство -> Pi-hole (проверка чёрного списка) -> Unbound (рекурсивный обход с корневых серверов) -> ответ. Акцент на том, что запросы не покидают локальную сеть до обращения к корневым серверам.]
Сценарий с Pi-hole и Unbound:
- Фильтрация: Запрос от любого устройства в сети попадает на Pi-hole. Мгновенная проверка по обновляемым чёрным спискам (миллионы доменов). При совпадении — возвращается пустой адрес (0.0.0.0), соединение блокируется.
- Рекурсивное разрешение: Если домен чист, запрос передаётся локальному серверу Unbound. Unbound не обращается к сторонним «полным» резолверам. Вместо этого он самостоятельно начинает обход с корневых DNS-серверов, узнаёт, кто отвечает за зону .com, .ru или другую, запрашивает у этих серверов окончательный IP-адрес, проверяет цифровую подпись (DNSSEC) и кеширует результат.
- Ответ: Кешированный ответ возвращается через Pi-hole на исходное устройство.
Итог этой архитектуры — полное отсутствие посредников в цепочке доверия. Ты зависишь только от публичной инфраструктуры корневых серверов, доступ к которым невозможно полностью ограничить без отключения интернета. Это даёт уровень приватности, недостижимый при использовании любых публичных DNS, даже самых «честных».
Развёртывание Pi-hole: ядро системы фильтрации
Pi-hole — это, по сути, веб-панель управления и DNS-прокси, написанный на Python и C. Его можно установить на любой Linux-сервер, от Raspberry Pi до виртуальной машины. Установка сводится к запуску одного скрипта.
curl -sSL https://install.pi-hole.net | bash
Скрипт задаст вопросы о сетевых настройках и веб-интерф e. Критически важный этап — интеграция в сеть. Есть два надёжных метода:
- Pi-hole как DHCP-сервер: Самый эффективный способ. Ты отключаешь раздачу IP-адресов (DHCP) на своём роутере и передаёшь эту функцию Pi-hole. Каждое устройство, запрашивая адрес, автоматически получит и адрес Pi-hole в качестве DNS-сервера. Гарантия тотального покрытия.
- Указание DNS в роутере: Если нельзя отключить DHCP на роутере, можно в его настройках прописать адрес Pi-hole как «DNS-сервер для клиентов». Роутер будет раздавать IP, но в настройках сети устройствам укажет использовать Pi-hole для разрешения имён.
[ИЗОБРАЖЕНИЕ: Скриншот главной панели администрирования Pi-hole. Видны крупные цифры: «Запросы за сегодня», «Заблокировано сегодня», «Процент заблокировано». Ниже — график активности, список топ заблокированных доменов и быстрые ссылки на разделы Blacklist, Whitelist, Query Log.]
Сила Pi-hole — в простоте управления. «Blacklist» — это место, куда добавляются списки доменов для блокировки. Можно подписаться на десятки списков, поддерживаемых сообществом. «Whitelist» — аварийный клапан для доменов, которые были заблокированы по ошибке и сломали работу нужного сервиса. Панель статистики в реальном времени показывает, что именно происходит в твоей сети.
Настройка Unbound: независимый поиск пути
Unbound — это validating recursive DNS resolver. Ключевое слово — recursive. Он не запрашивает готовый ответ у кого-то ещё (как это делает Pi-hole в режиме по умолчанию с Google DNS), а сам выполняет всю работу по обходу иерархии DNS, начиная с корневых серверов. Установка элементарна:
sudo apt install unbound
Основная работа — конфигурация. Нужно настроить Unbound так, чтобы он:
- Принимал запросы только от Pi-hole (с локального адреса).
- Был закрыт от внешнего мира.
- Активно использовал кеширование для скорости.
- Включил проверку DNSSEC для защиты от подмены ответов.
Пример минимальной рабочей конфигурации в файле /etc/unbound/unbound.conf.d/pi-hole.conf:
server:
interface: 127.0.0.1
port: 5335
do-ip4: yes
do-ip6: yes
access-control: 127.0.0.1/32 allow
cache-min-ttl: 3600
prefetch: yes
hide-identity: yes
hide-version: yes
use-caps-for-id: yes
auto-trust-anchor-file: "/var/lib/unbound/root.key"
После перезапуска Unbound остаётся лишь указать Pi-hole использовать его. В веб-интерфейсе Pi-hole, в разделе «Settings» -> «DNS», удаляются все стандартные серверы, а в поле «Custom 1 (IPv4)» вносится 127.0.0.1#5335. Теперь весь чистый трафик будет разрешаться через твой личный рекурсивный резолвер.
Границы возможного: что DNS-фильтрация не может
Понимание ограничений так же важно, как и понимание возможностей.
1. Реклама с того же домена (первая партия). Если сайт загружает рекламу и контент с одного и того же домена (например, через единый CDN), блокировка по DNS убьёт весь сайт. Это предел метода.
2. Жёстко прописанные DNS и DNS-over-HTTPS (DoH). Некоторые устройства и приложения игнорируют настройки сети, используя вшитые адреса DNS-серверов или DoH. Pi-hole может бороться с этим, блокируя на сетевом уровне известные адреса публичных DoH-серверов. Но это «война на истощение» — список адресов нужно постоянно актуализировать.
3. Слепота к содержимому. DNS видит только доменное имя. Он не может отфильтровать рекламу по URL-пути (/ads/banner.jpg) или по содержимому пакета. Для этого нужются более глубокие инструменты вроде прокси-серверов или межсетевых экранов прикладного уровня.
Несмотря на это, для 85-90% фонового мусорного трафика в домашней сети DNS-фильтрации более чем достаточно. Она перехватывает основную массу трекеров, телеметрии и баннерной рекламы.
От фильтра к платформе контроля
Когда Pi-hole и Unbound настроены, ты получаешь не просто «чистый» интернет. Ты получаете инструмент аудита. Лог запросов в Pi-hole — это карта активности всей твоей сети. Здесь можно увидеть:
- Какое приложение на телефоне каждые 30 секунд стучится на сервер телеметрии.
- Куда пытается подключиться новая «умная» лампочка из неочевидной юрисдикции.
- Как работает фоновое обновление на Smart TV.
Это знание позволяет принимать осознанные решения. Можно создавать группы устройств с разными правилами фильтрации, блокировать целые категории доменов для детских устройств, или просто видеть аномальную активность, которая может указывать на проблему.
Pi-hole и Unbound — это шаг от потребительского отношения к сети к архитектурному. Они демонстрируют, что базовые сервисы интернета можно и нужно контролировать самостоятельно, не делегируя эту функцию неопределённому кругу внешних операторов. Это практический способ вернуть приватность и управляемость в домашнюю цифровую среду.