Блокировка рекламы во всей сети с помощью микроконтроллера за 7 долларов
Рост цен на одноплатные компьютеры Raspberry Pi заставляет энтузиастов искать более доступные альтернативы для домашних проектов. В обзорах ИТ-специалистов все чаще фигурируют компактные микроконтроллеры, способные решать сложные задачи при минимальных затратах. Одним из таких решений стало создание сетевого блокировщика рекламы на базе платы ESP32-S3 стоимостью менее 10 долларов, которая работает как локальный DNS-фильтр.
Содержание
Основные преимущества решения
- Крайне низкая стоимость: плата обходится примерно в 7 долларов.
- Энергоэффективность: в отличие от полноценных одноплатных компьютеров, микроконтроллер потребляет ничтожно мало электричества (в пределах нескольких милливатт).
- Простота архитектуры: устройству не требуется карта памяти microSD для работы операционной системы.
- Экономия трафика: рекламные объявления отсекаются еще до начала их загрузки на клиентские устройства.
Сравнение ESP32-S3 и Raspberry Pi
Разница между флагманским одноплатником Raspberry Pi 5 и платой ESP32-S3 огромна. Raspberry Pi 5 оснащен мощным четырехъядерным 64-битным процессором Arm Cortex-A76 с частотой 2,4 ГГц, гигабайтами оперативной памяти и поддерживает подключение быстрых NVMe-накопителей. Такое устройство потребляет до 12 Вт энергии, что для простой фильтрации DNS-запросов является избыточным.
Микроконтроллер ESP32-S3 использует двухъядерный 32-битный процессор Tensilica Xtensa LX7 с тактовой частотой до 240 МГц, имеет всего 520 КБ оперативной памяти и до 16 МБ встроенной флеш-памяти. При этом его производительности достаточно для обработки трафика домашней сети, а энергопотребление измеряется в милливаттах.
Что потребуется для сборки блокировщика
Для реализации проекта необходима плата ESP32-S3. Обозреватели рекомендуют выбирать версию с 8 МБ PSRAM (дополнительной оперативной памяти), так как стандартная версия или вариант с 4 МБ могут не справиться с объемными списками нежелательных адресов. Наиболее выгодный способ приобретения — покупка комплектов из нескольких плат.
Для настройки и работы устройства также понадобятся:
- Кабель USB-C для прошивки и подачи питания (важно использовать кабель с поддержкой передачи данных, а не только для зарядки).
- Среда разработки Arduino IDE на компьютере для загрузки программного обеспечения.
- Корпус для платы (можно напечатать на 3D-принтере, купить готовый или использовать отрезок термоусадочной трубки диаметром около 3,8 см).
Программную часть обеспечивает бесплатный проект с открытым исходным кодом ESP32_AdBlocker.
Процесс прошивки и настройки
Плата подключается к компьютеру через USB-порт, предназначенный для передачи данных (обычно помечен как COM или USB/Native). В среде Arduino IDE выбирается соответствующий тип платы, после чего код ESP32_AdBlocker загружается в память микроконтроллера.
При первом запуске устройство создает собственную Wi-Fi сеть с именем вида ESP32_Adblocker_ХХХХ. Пользователю необходимо подключиться к ней со смартфона или компьютера, открыть в браузере адрес 192.168.4.1 и указать параметры домашней беспроводной сети (имя и пароль для роутера).
После перезагрузки в веб-интерфейсе устройства прописывается ссылка на файл со списком блокируемых доменов. Финальным шагом является изменение настроек домашнего роутера или конкретных рабочих устройств: в поле DNS-сервера необходимо указать локальный IP-адрес платы ESP32.
Принцип работы и ограничения
Разработанная система функционирует по принципу «DNS-черной дыры» (DNS sinkhole). Когда пользователь пытается открыть сайт, браузер запрашивает IP-адрес сервера у DNS. Если запрос направлен к рекламному серверу, адрес которого есть в базе данных ESP32, микроконтроллер подменяет ответ, возвращая несуществующий адрес (0.0.0.0). Запрос блокируется, и реклама на странице не отображается.
У данного бюджетного решения есть несколько нюансов:
- Метод не позволяет блокировать рекламу на YouTube, так как коммерческие ролики транслируются с тех же серверов, что и основное видео.
- Отсутствует поддержка современного протокола IPv6.
- При высокой нагрузке на сеть микроконтроллер может стать узким горлышком. В качестве более производительной, но дорогой альтернативы эксперты называют плату Raspberry Pi Zero 2 W с установленным пакетом PiHole.
Тем не менее, проект на базе ESP32-S3 представляет собой отличный пример того, как микрокомпьютер стоимостью менее 10 долларов может успешно справляться с утилитарными задачами сетевой безопасности.

