Repolode
M-Abozaid

M-Abozaid/esp32-c3-adblock

Bloqueador de anúncios DNS no estilo Pi-hole para o ESP32-C3 de US$ 2, que armazena hashes de listas de bloqueio na flash e dispensa PSRAM.

Alternativa open source a:Pi-hole

Estrelas
3,519
Forks
395
Issues abertas
34
Último commit
há 24 horas

O que é?

O esp32-c3-adblock transforma uma pequena placa microcontroladora ESP32-C3 em um sinkhole DNS para a rede. Os dispositivos da rede apontam o DNS para a placa, que responde aos domínios bloqueados com 0.0.0.0 e encaminha as demais consultas a um resolvedor upstream.

A técnica principal consiste em armazenar cada domínio bloqueado como um hash FNV-1a de 40 bits ordenado na flash e fazer uma busca binária nessa tabela a cada consulta. Assim, a lista de bloqueio fica fora da RAM, o firmware usa cerca de 50 KB de RAM e funciona sem PSRAM. O projeto informa que cerca de 141 mil domínios cabem em aproximadamente 0,7 MB de flash, e que a lista maior comporta por volta de 537 mil domínios.

A placa oferece um painel web com contagens de bloqueios por cliente, entradas personalizadas para bloquear e permitir domínios e atualizações de listas de bloqueio ou do firmware via WiFi. As listas de bloqueio são geradas com um script Python a partir de arquivos hosts, listas simples de domínios ou regras no estilo AdGuard.

Recursos principais

  • 01Responde a domínios bloqueados com 0.0.0.0 via DNS UDP e encaminha as demais consultas a um servidor upstream.
  • 02Armazena a lista de bloqueio como hashes de 40 bits na flash, usando cerca de 50 KB de RAM e sem PSRAM.
  • 03Painel web com contagens de bloqueios por cliente e entradas personalizadas para bloquear ou permitir domínios.
  • 04Atualizações de firmware e da lista de bloqueio over-the-air, com busca remota programada de listas.
  • 05Configuração de WiFi por portal cativo e descoberta mDNS em c3adblock.local.
  • 06O gerador de listas de bloqueio aceita arquivos hosts, listas simples de domínios e regras básicas do AdGuard.

Casos de uso

  • Adicionar bloqueio de anúncios e rastreadores em toda a rede doméstica sem comprar um Raspberry Pi.
  • Executar um resolvedor DNS secundário de baixo consumo que bloqueia domínios atrás do DNS principal.
  • Experimentar filtragem DNS embarcada em uma placa ESP32-C3 barata.

Início rápido

  1. 1

    Copie o modelo de secrets e edite-o com as credenciais do seu Wi-Fi e do painel

    cp src/secrets.example.h src/secrets.h
  2. 2

    Compile a tabela hash da lista de bloqueio

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

    Grave o firmware no ESP32-C3 via USB

    pio run -t upload
  4. 4

    Grave o sistema de arquivos da lista de bloqueio via USB

    pio run -t uploadfs

Antes de usar

  • É necessária uma versão atual do PlatformIO; a versão antiga empacotada no apt falha ao compilar.
  • Com 4 MB de memória flash, as atualizações OTA do firmware limitam a lista de bloqueio a cerca de 250 mil domínios.
  • As senhas do painel e do OTA devem ser definidas em secrets.h; caso contrário, o dispositivo inicializa com credenciais padrão públicas.
  • O tráfego usa HTTP sem criptografia com Basic Auth, portanto não é criptografado na LAN.

Em coleções

Tópicos

Perguntas frequentes

O que é esp32-c3-adblock?
Bloqueador de anúncios DNS no estilo Pi-hole para o ESP32-C3 de US$ 2, que armazena hashes de listas de bloqueio na flash e dispensa PSRAM. O esp32-c3-adblock transforma uma pequena placa microcontroladora ESP32-C3 em um sinkhole DNS para a rede. Os dispositivos da rede apontam o DNS para a placa, que responde aos domínios bloqueados com 0.0.0.0 e encaminha as demais consultas a um resolvedor upstream.
esp32-c3-adblock é gratuito? Qual é a licença?
esp32-c3-adblock é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
esp32-c3-adblock ainda é mantido?
Manutenção ativa. O último commit de esp32-c3-adblock foi em 6 de nov. de 2026.
Para que posso usar esp32-c3-adblock?
Adicionar bloqueio de anúncios e rastreadores em toda a rede doméstica sem comprar um Raspberry Pi. Executar um resolvedor DNS secundário de baixo consumo que bloqueia domínios atrás do DNS principal. Experimentar filtragem DNS embarcada em uma placa ESP32-C3 barata.
Como instalar esp32-c3-adblock?
Copie o modelo de secrets e edite-o com as credenciais do seu Wi-Fi e do painel: cp src/secrets.example.h src/secrets.h Compile a tabela hash da lista de bloqueio: python3 tools/build_blocklist.py data/blocklist.bin Grave o firmware no ESP32-C3 via USB: pio run -t upload Grave o sistema de arquivos da lista de bloqueio via USB: pio run -t uploadfs
Onde consigo esp32-c3-adblock?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/M-Abozaid/esp32-c3-adblock

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

Conjunto de listas de bloqueio DNS que bloqueiam anúncios, rastreadores, telemetria, phishing, malware e golpes em toda a rede, em qualquer servidor DNS ou bloqueador de anúncios.

Segurança#dns#blocklist#adblock
28,3 mil+280 esta semana861TextGPL-3.0Atualizado há 15 horas