클라이언트 그룹별 규칙을 지원해 로컬 네트워크 전체의 광고와 추적기를 차단하는 빠르고 가벼운 DNS 프록시입니다.
M-Abozaid/esp32-c3-adblock
플래시 메모리에 차단 목록 해시를 저장해 PSRAM 없이 동작하는 2달러짜리 ESP32-C3용 Pi-hole 스타일 DNS 광고 차단기입니다.
대체할 수 있는 제품:Pi-hole
- 스타
- 3,519
- 포크
- 395
- 열린 이슈
- 34
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
esp32-c3-adblock은 소형 ESP32-C3 마이크로컨트롤러 보드를 네트워크 DNS 싱크홀로 바꿔 줍니다. 네트워크의 기기에서 보드의 DNS를 사용하도록 설정하면, 보드는 차단 도메인에 0.0.0.0으로 응답하고 나머지 쿼리는 업스트림 리졸버로 전달합니다.
핵심 방식은 차단 도메인을 정렬된 40비트 FNV-1a 해시로 변환해 플래시에 저장하고, 조회할 때 이 테이블을 이진 탐색하는 것입니다. 덕분에 차단 목록을 RAM에 올리지 않아도 되며, 펌웨어는 약 50 KB의 RAM만 사용하고 PSRAM 없이 실행됩니다. 프로젝트에 따르면 약 0.7 MB의 플래시에 도메인 약 14만 1천 개를 저장할 수 있고, 더 큰 목록을 사용하면 약 53만 7천 개까지 저장할 수 있습니다.
보드는 클라이언트별 차단 횟수, 사용자 지정 차단 및 허용 항목, WiFi를 통한 차단 목록 또는 펌웨어 업데이트를 제공하는 웹 대시보드를 실행합니다. 차단 목록은 hosts 파일, 일반 도메인 목록 또는 AdGuard 스타일 규칙을 받아 Python 스크립트로 생성합니다.
핵심 기능
- 01UDP DNS로 차단 도메인에 0.0.0.0을 응답하고, 그 외 쿼리는 업스트림으로 전달합니다.
- 02차단 목록을 40비트 해시로 변환해 플래시에 저장하며, RAM 약 50 KB를 사용하고 PSRAM은 필요하지 않습니다.
- 03클라이언트별 차단 횟수와 사용자 지정 차단 또는 허용 항목을 제공하는 웹 대시보드.
- 04무선 펌웨어 및 차단 목록 업데이트와 예약된 원격 차단 목록 가져오기.
- 05캡티브 포털 WiFi 설정과 c3adblock.local을 통한 mDNS 검색.
- 06hosts 파일, 일반 도메인 목록, AdGuard 기본 규칙을 지원하는 차단 목록 생성기.
활용 사례
- Raspberry Pi를 구매하지 않고 홈 라우터에서 네트워크 전체의 광고 및 트래커 차단을 설정할 때.
- 기본 DNS 뒤에서 도메인을 차단하는 저전력 보조 DNS 리졸버를 운영할 때.
- 저렴한 ESP32-C3 보드에서 임베디드 DNS 필터링을 실험할 때.
빠른 시작
- 1
시크릿 템플릿을 복사한 뒤 Wi-Fi 및 대시보드 인증 정보를 입력합니다
cp src/secrets.example.h src/secrets.h - 2
차단 목록 해시 테이블을 빌드합니다
python3 tools/build_blocklist.py data/blocklist.bin - 3
USB를 통해 ESP32-C3에 펌웨어를 플래시합니다
pio run -t upload - 4
USB를 통해 차단 목록 파일 시스템을 플래시합니다
pio run -t uploadfs
사용 전 알아둘 점
- 최신 PlatformIO가 필요합니다. 오래된 apt 패키지 버전은 빌드에 실패합니다.
- 플래시 용량이 4 MB인 경우, 펌웨어 OTA 업데이트를 사용하면 차단 목록은 약 25만 개 도메인으로 제한됩니다.
- secrets.h에 대시보드 및 OTA 비밀번호를 설정하지 않으면 기기가 공개된 기본 인증 정보로 부팅됩니다.
- 트래픽은 Basic Auth를 사용하는 일반 HTTP이므로 LAN에서 암호화되지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- esp32-c3-adblock은(는) 무엇인가요?
- 플래시 메모리에 차단 목록 해시를 저장해 PSRAM 없이 동작하는 2달러짜리 ESP32-C3용 Pi-hole 스타일 DNS 광고 차단기입니다. esp32-c3-adblock은 소형 ESP32-C3 마이크로컨트롤러 보드를 네트워크 DNS 싱크홀로 바꿔 줍니다. 네트워크의 기기에서 보드의 DNS를 사용하도록 설정하면, 보드는 차단 도메인에 0.0.0.0으로 응답하고 나머지 쿼리는 업스트림 리졸버로 전달합니다.
- esp32-c3-adblock은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- esp32-c3-adblock은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- esp32-c3-adblock은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. esp32-c3-adblock의 마지막 커밋은 2026년 11월 6일입니다.
- esp32-c3-adblock은(는) 어디에 사용할 수 있나요?
- Raspberry Pi를 구매하지 않고 홈 라우터에서 네트워크 전체의 광고 및 트래커 차단을 설정할 때. 기본 DNS 뒤에서 도메인을 차단하는 저전력 보조 DNS 리졸버를 운영할 때. 저렴한 ESP32-C3 보드에서 임베디드 DNS 필터링을 실험할 때.
- esp32-c3-adblock는 어떻게 설치하나요?
- 시크릿 템플릿을 복사한 뒤 Wi-Fi 및 대시보드 인증 정보를 입력합니다: cp src/secrets.example.h src/secrets.h 차단 목록 해시 테이블을 빌드합니다: python3 tools/build_blocklist.py data/blocklist.bin USB를 통해 ESP32-C3에 펌웨어를 플래시합니다: pio run -t upload USB를 통해 차단 목록 파일 시스템을 플래시합니다: pio run -t uploadfs
- esp32-c3-adblock은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/M-Abozaid/esp32-c3-adblock
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
주변 Wi-Fi 및 Bluetooth 모바일 기기를 세어 유동 인구를 추정하고, LoRaWAN·MQTT·SD 카드로 데이터를 출력하는 ESP32 기반 기기입니다.
ESP8266 및 ESP32 보드용 대체 펌웨어로, 웹 기반 설정, OTA 업데이트, 로컬 자동화와 MQTT, HTTP, Serial 또는 KNX 제어를 지원합니다.
임베디드 개발을 위한 크로스 플랫폼 CLI 도구이자 빌드 시스템으로, 라이브러리 관리, 다양한 보드와 프레임워크, 디버깅 및 단위 테스트를 지원합니다.
ESP32 기반의 오픈소스 3D 프린팅 미니 사족보행 로봇으로, OLED 얼굴과 서보 모터 구동 보행 기능을 갖췄습니다.