Настройка DNS-фильтра через Pi-hole стала популярным проектом для домашнего использования. Одноплатный мини-компьютер Raspberry Pi отлично подходит для роли блокировщика рекламы, однако существует альтернатива, которая стоит значительно дешевле и занимает вдвое меньше места — микроконтроллер ESP32. Это устройство из мира интернета вещей может показаться слишком слабым для роли DNS-фильтра, но на практике оно отлично справляется с задачей.

Требования к памяти микроконтроллера
Для реализации проекта используется скетч ESP32_AdBlocker от разработчика s60sc для среды Arduino, который превращает ESP32 в полноценный DNS-фильтр. Когда какое-либо устройство запрашивает у него домен из черного списка, микроконтроллер отвечает адресом 0.0.0.0, из-за чего реклама или трекер не загружаются. Домены, отсутствующие в списке, перенаправляются на внешний DNS-сервер — например, 1.1.1.1 и 1.0.0.1 от Cloudflare. Принцип работы аналогичен Pi-hole, но выполняется на микроконтроллере без сложной панели мониторинга.
Для такой задачи подходит далеко любая плата на базе ESP32. Главным ограничением выступает память: документация проекта указывает на необходимость наличия PSRAM для хранения актуального черного списка. Модель ESP32-S3 с 8 МБ памяти способна вместить полный список, тогда как старая версия ESP32 с 4 МБ памяти может потребовать его сокращения. Автор использовал вариант N16R8, включающий 16 МБ флеш-памяти и 8 МБ PSRAM. Плата подключается к домашней сети по протоколу Wi-Fi на частоте 2.4 ГГц, работает от USB-адаптера питания, не имеет вентилятора и не требует регулярного обновления Linux.
Интеграция блокировщика в сеть предельно проста. Достаточно зарезервировать IP-адрес для платы в настройках роутера и указать его в качестве первичного DNS-сервера. Это избавляет от необходимости менять настройки на каждом отдельном устройстве.
Производительность и особенности работы
DNS-фильтр не требует высокой вычислительной мощности. Даже Raspberry Pi Zero обладает гораздо большим потенциалом, но DNS работает значительно быстрее, чем кажется. Он лишь преобразует доменное имя в IP-адрес, после чего соединение устанавливается напрямую с сервером, а весь игровой трафик, потоковое вещание и загрузки идут в обход ESP32. Фильтрация не оказывает никакого влияния на пропускную способность канала, поскольку обрабатывается только момент установления соединения, к тому же браузеры и устройства кэшируют ответы.
Проверка домена по черному списку на ESP32-S3 с 8 МБ PSRAM занимает менее 50 микросекунд. Задержка для разрешенных доменов связана исключительно со временем отправки запроса к Cloudflare. Единственным слабым местом может стать беспроводное соединение: поддержка только диапазона 2.4 ГГц означает, что плата, спрятанная за телевизором в зашумленном радиоэфире, может увеличивать задержки или терять запросы. Размещение устройства имеет критическое значение, а ежедневное обновление черного списка лучше планировать на ночное время.
Ограничения по сравнению с Pi-hole
Хотя ESP32 отлично выполняет роль DNS-фильтра, Pi-hole остается более мощным инструментом. Микроконтроллер принимает только один URL черного списка, поэтому требуется единый объединенный файл, размер которого ограничен объемом PSRAM. Pi-hole поддерживает неограниченное число списков и позволяет применять их к конкретным группам устройств по IP- или MAC-адресам, что удобно для родительского контроля. Кроме того, ESP32 выводит базовые счетчики и живой лог, но не ведет долгосрочную базу данных запросов с детализацией по каждому устройству через удобный веб-интерфейс.

Блокировка рекламы на ESP32 не способна полностью заменить полноценный сервер Pi-hole, но это один из лучших способов развернуть DNS-фильтрацию с нуля при минимальных затратах. Для домашних пользователей, которым нужна система по принципу «установил и забыл», большинство ограничений микроконтроллера не имеют решающего значения.
Дополнительные технические нюансы и сравнение возможностей
Важной особенностью настройки сети является то, что присвоение постоянного IP-адресу плате через роутер позволяет блокировщику работать даже с теми устройствами, у которых изменить системные настройки DNS невозможно физически или программно.
Что касается аппаратной части, проект скетча s60sc’s ESP32_AdBlocker задействует беспроводной модуль на частоте 2.4 ГГц. Из-за этого физическое расположение платы играет ключевую роль: если спрятать микроконтроллер за телевизором в зашумленном радиоканале, это может добавить задержки или привести к полной потере DNS-запросов. Кроме того, процесс ежедневного обновления черного списка требует определенных ресурсов от процессора, поэтому данную процедуру рекомендуется планировать на ночное время.
Существуют и другие функциональные отличия от классического Pi-hole:
- ESP32 обрабатывает только один URL черного списка, объединяя все источники в один файл.
- Pi-hole способна работать в качестве DHCP-сервера, хотя использовать её для этих целей разработчики не рекомендуют.
- Микроконтроллер привлекает своей экономичностью: он потребляет минимум энергии («trickle of power») и стоит дешевле стоимости обычного обеда навынос.






