Un proxy DNS rápido y ligero que bloquea anuncios y rastreadores en toda la red local, con reglas por grupo de clientes.
M-Abozaid/esp32-c3-adblock
Bloqueador de anuncios DNS al estilo Pi-hole para el ESP32-C3 de $2, que guarda hashes de listas de bloqueo en la memoria flash y no necesita PSRAM.
Alternativa open source a:Pi-hole
- Estrellas
- 3,519
- Forks
- 395
- Issues abiertos
- 34
- Último commit
- hace 21 horas
¿Qué es?
esp32-c3-adblock convierte una pequeña placa con microcontrolador ESP32-C3 en un agujero negro DNS para la red. Los dispositivos de la red envían sus consultas DNS a la placa, que responde a los dominios bloqueados con 0.0.0.0 y reenvía todas las demás consultas a un servidor DNS ascendente.
La técnica principal consiste en guardar cada dominio bloqueado como un hash FNV-1a de 40 bits ordenado en la memoria flash y buscarlo mediante búsqueda binaria cuando se recibe una consulta. Así, la lista de bloqueo no ocupa RAM y el firmware usa unos 50 KB de RAM y funciona sin PSRAM. El proyecto indica que caben aproximadamente 141.000 dominios en unos 0,7 MB de memoria flash y alrededor de 537.000 dominios con la lista más grande.
La placa ofrece un panel web con recuentos de bloqueos por cliente, entradas personalizadas para bloquear y permitir dominios, y actualizaciones de listas de bloqueo o del firmware por WiFi. Las listas de bloqueo se generan con un script de Python a partir de archivos hosts, listas de dominios sin formato o reglas al estilo AdGuard.
Funciones clave
- 01Responde con 0.0.0.0 a los dominios bloqueados mediante DNS por UDP y reenvía las demás consultas a un servidor ascendente.
- 02Guarda la lista de bloqueo como hashes de 40 bits en la memoria flash; usa unos 50 KB de RAM y no necesita PSRAM.
- 03Panel web con recuentos de bloqueos por cliente y entradas personalizadas para bloquear o permitir dominios.
- 04Actualizaciones inalámbricas del firmware y de la lista de bloqueo, con descargas remotas programadas de listas de bloqueo.
- 05Configuración de WiFi mediante portal cautivo y detección por mDNS en c3adblock.local.
- 06El generador de listas de bloqueo acepta archivos hosts, listas de dominios sin formato y reglas básicas de AdGuard.
Casos de uso
- Añadir el bloqueo de anuncios y rastreadores en toda la red de casa sin comprar una Raspberry Pi.
- Usar un servidor DNS secundario de bajo consumo que bloquee dominios detrás del servidor DNS principal.
- Experimentar con el filtrado DNS integrado en una placa ESP32-C3 económica.
Inicio rápido
- 1
Copia la plantilla de secretos y edítala para añadir las credenciales de tu Wi-Fi y del panel de control
cp src/secrets.example.h src/secrets.h - 2
Compila la tabla hash de la lista de bloqueo
python3 tools/build_blocklist.py data/blocklist.bin - 3
Graba el firmware en el ESP32-C3 por USB
pio run -t upload - 4
Graba el sistema de archivos de la lista de bloqueo por USB
pio run -t uploadfs
Antes de usarlo
- Se necesita una versión actual de PlatformIO; la antigua versión empaquetada en apt no compila.
- Con 4 MB de memoria flash, las actualizaciones OTA del firmware limitan la lista de bloqueo a unos 250 000 dominios.
- Debes configurar las contraseñas del panel de control y de OTA en secrets.h; de lo contrario, el dispositivo arranca con credenciales predeterminadas públicas.
- El tráfico usa HTTP sin cifrar con Basic Auth, por lo que no está cifrado en la LAN.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es esp32-c3-adblock?
- Bloqueador de anuncios DNS al estilo Pi-hole para el ESP32-C3 de $2, que guarda hashes de listas de bloqueo en la memoria flash y no necesita PSRAM. esp32-c3-adblock convierte una pequeña placa con microcontrolador ESP32-C3 en un agujero negro DNS para la red. Los dispositivos de la red envían sus consultas DNS a la placa, que responde a los dominios bloqueados con 0.0.0.0 y reenvía todas las demás consultas a un servidor DNS ascendente.
- ¿esp32-c3-adblock es gratuito? ¿Qué licencia tiene?
- esp32-c3-adblock es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿esp32-c3-adblock sigue mantenido?
- Mantenimiento activo. El último commit de esp32-c3-adblock fue el 6 nov 2026.
- ¿Para qué puedo usar esp32-c3-adblock?
- Añadir el bloqueo de anuncios y rastreadores en toda la red de casa sin comprar una Raspberry Pi. Usar un servidor DNS secundario de bajo consumo que bloquee dominios detrás del servidor DNS principal. Experimentar con el filtrado DNS integrado en una placa ESP32-C3 económica.
- ¿Cómo se instala esp32-c3-adblock?
- Copia la plantilla de secretos y edítala para añadir las credenciales de tu Wi-Fi y del panel de control: cp src/secrets.example.h src/secrets.h Compila la tabla hash de la lista de bloqueo: python3 tools/build_blocklist.py data/blocklist.bin Graba el firmware en el ESP32-C3 por USB: pio run -t upload Graba el sistema de archivos de la lista de bloqueo por USB: pio run -t uploadfs
- ¿Dónde consigo esp32-c3-adblock?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/M-Abozaid/esp32-c3-adblock
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Dispositivo basado en ESP32 que estima el flujo de pasajeros contando dispositivos móviles Wi-Fi y Bluetooth cercanos, con salida de datos por LoRaWAN, MQTT y tarjeta SD.
Firmware alternativo para placas ESP8266 y ESP32 con configuración web, actualizaciones OTA, automatización local y control por MQTT, HTTP, Serial o KNX.
Herramienta de línea de comandos y sistema de compilación multiplataforma para desarrollo embebido, con gestión de bibliotecas, compatibilidad con varias placas y frameworks, depuración y pruebas unitarias.
Robot cuadrúpedo mini de código abierto e imprimible en 3D, basado en ESP32, con cara OLED y movimiento mediante servos.
Conjunto de listas de bloqueo DNS que bloquean anuncios, rastreadores, telemetría, phishing, malware y estafas en toda la red, con cualquier servidor DNS o bloqueador de anuncios.