Repolode
M-Abozaid

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. 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. 2

    Compila la tabla hash de la lista de bloqueo

    python3 tools/build_blocklist.py data/blocklist.bin
  3. 3

    Graba el firmware en el ESP32-C3 por USB

    pio run -t upload
  4. 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

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.

Seguridad#dns#blocklist#adblock
28,3 mil+280 esta semana861TextGPL-3.0Actualizado hace 12 horas