ESP32-C3 上跑通 DNS 广告拦截:53.7 万域名只占 50 KB 内存
有人把 Pi-hole 塞进了 ESP32-C3,53 万个广告域名二分查找匹配,只用 50 KB 内存,10 毫秒拦截,成本比树莓派方案低太多。
一个开源项目在 ESP32-C3 上实现了类似 Pi-hole 的 DNS 广告拦截。537,000 个广告域名以 40 位 FNV-1a 哈希排序存进 flash,查询用二分查找,整个进程只占约 50 KB RAM。命中域名 10 ms 内返回 0.0.0.0,未命中则转发上游 DNS。固件与黑名单支持 WiFi OTA 升级,黑名单可由 GitHub Actions 每周自动更新,自带 Web 面板可按客户端查看拦截数、封禁或加白名单。
听说这个项目很屌,在 ESP32-C3 上实现 Pi-hole 级别的 DNS 广告拦截。 把 537,000 个域名以 40 位 FNV-1a 哈希的形式排序存在 flash 里,用二分查找匹配,查询时整个进程只吃掉约 50 KB RAM,10 ms 内对命中域名回 0.0.0.0,没命中就转给上游。 控制面是自带的 Web 面板,能按客户端看拦截数、封客户端、加白加黑;固件和黑名单都走 WiFi OTA,黑名单还能指向 GitHub Actions 每周更新。 github.com/M-Abozaid/esp3… 💬 0 🔄 1 ❤️ 1 👀 661 📊 1 ⚡