一款快速轻量的 DNS 代理,可为整个局域网拦截广告和追踪域名,并支持按客户端分组设置规则。
- Star
- 3,519
- Fork
- 395
- 未关闭 Issue
- 34
- 最近提交
- 昨天
这是什么?
esp32-c3-adblock 把一块小型 ESP32-C3 开发板变成网络级 DNS 黑洞。局域网内的设备将 DNS 指向该板子,被拦截的域名返回 0.0.0.0,其他请求则转发给上游解析器。
核心做法是把每个被拦截域名以 40 位 FNV-1a 哈希的形式排序后存入闪存,查询时做二分查找。黑名单因此不占用内存,固件仅使用约 50 KB RAM,无需 PSRAM。项目称约 14 万个域名可占用约 0.7 MB 闪存,更大的列表约 53.7 万个。
设备提供 Web 管理面板,可查看各客户端的拦截次数、手动封禁和添加自定义域名,并支持通过 WiFi 更新黑名单和固件。黑名单由 Python 脚本生成,可混合使用 hosts 文件、纯域名列表和 AdGuard 风格规则。
核心功能
- 01通过 UDP DNS 对拦截域名返回 0.0.0.0,其他请求转发至上游。
- 02黑名单以 40 位哈希存于闪存,约占用 50 KB RAM,无需 PSRAM。
- 03Web 管理面板可查看各客户端拦截次数,并手动封禁或添加自定义域名。
- 04支持 WiFi 固件与黑名单在线升级,并可定时拉取远程黑名单。
- 05提供 Captive Portal 形式的 WiFi 配网,并通过 mDNS 访问 c3adblock.local。
- 06黑名单构建脚本支持 hosts 文件、纯域名列表和 AdGuard 基础规则。
适用场景
- 在家庭网络中低成本实现全网广告和追踪域名拦截,无需树莓派。
- 作为主 DNS 之后的低功耗备用解析器,拦截指定域名。
- 在廉价的 ESP32-C3 开发板上学习或实验嵌入式 DNS 过滤。
快速上手
- 1
复制密钥模板并编辑 WiFi 和控制台凭据
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 密码,否则设备会使用公开的默认凭据启动。
- 流量为明文 HTTP 并使用 Basic 认证,局域网内不加密。
收录于专题
标签
常见问题
- esp32-c3-adblock 是什么?
- 面向 2 美元 ESP32-C3 的 Pi-hole 式 DNS 广告拦截器,黑名单以哈希形式存于闪存,无需 PSRAM。 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 适合用来做什么?
- 在家庭网络中低成本实现全网广告和追踪域名拦截,无需树莓派。 作为主 DNS 之后的低功耗备用解析器,拦截指定域名。 在廉价的 ESP32-C3 开发板上学习或实验嵌入式 DNS 过滤。
- esp32-c3-adblock 怎么安装和运行?
- 复制密钥模板并编辑 WiFi 和控制台凭据: 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
7091+14 本周320GoApache-2.0维护活跃更新于 昨天
基于 ESP32 的设备,通过统计周围 Wi-Fi 与蓝牙移动设备来估算人流量。
2128+3 本周457C++Other更新于 上个月
面向 ESP8266 和 ESP32 设备的替代固件,支持网页配置、OTA 升级和完全本地控制。
2.5万+20 本周5209CGPL-3.0维护活跃更新于 20小时前
跨平台的嵌入式开发命令行工具与构建系统,涵盖库管理、多种开发板与框架、调试和单元测试。
9585+8 本周917PythonApache-2.0维护活跃更新于 22天前
基于 ESP32 的开源低成本迷你四足机器人,可 3D 打印,带 OLED 表情屏。
4980+97 本周684CApache-2.0更新于 23天前