开发者打造硬件广告拦截器!50KB内存挡53万个广告域名 10毫秒响应

2026-07-21 12:26:36 3点赞 8收藏 10评论

快科技7月21日消息,埃及全栈开发者ZedAxis使用一块售价约5美元的ESP32-C3 SuperMini开发板打造了一个可拦截超过53万个广告域名的硬件DNS过滤器,固件仅占用约50KB内存,响应延迟约10毫秒。

ESP32-C3 SuperMini是一块搭载Wi-Fi功能的微型单片机,仅有400KB内存和4MB闪存,这个规格无法存储任何有意义的明文黑名单域名列表,数据量太大。

开发者打造硬件广告拦截器!50KB内存挡53万个广告域名 10毫秒响应

ZedAxis的解决方案是对域名进行哈希压缩,先下载公开的广告拦截列表,去除重复项和注释后,将每个域名用40位FNV-1a算法哈希为一个40位数值,排序后写入ESP32的闪存。选择40位哈希也是经过权衡的结果,32位碰撞率太高,64位则浪费存储空间。

开发者打造硬件广告拦截器!50KB内存挡53万个广告域名 10毫秒响应

查询匹配阶段当DNS查询到达时,设备用相同方式对请求的域名进行哈希,然后对排好序的哈希表执行二分查找。命中则拦截请求,未命中则转发给上游DNS解析器。

开发者打造硬件广告拦截器!50KB内存挡53万个广告域名 10毫秒响应

据ZedAxis介绍,最终固件仅使用约50KB RAM内存,拦截响应耗时约10毫秒。

设计中还有一个巧妙的取舍,ESP32通常会保留两份完整固件用于OTA无线更新,以防刷写失败导致设备变砖。如果放弃OTA功能,就可以将第二份固件分区腾出来存放黑名单数据库。保留OTA时项目最多支持约25万个域名,放弃OTA后容量直接翻倍到约53.7万个。

开发者打造硬件广告拦截器!50KB内存挡53万个广告域名 10毫秒响应

供电方式也很有意思,ZedAxis直接从ISP提供的华为OptiXstar光猫背面的USB口取电,USB连接不传输任何数据,纯粹就是路由器提供5V供电。且所有网络通信都通过ESP32集成的Wi-Fi模块完成,设备体积小到几乎可以藏在路由器后面。

编辑:黑白

【本文结束】如需转载请务必注明出处:快科技

展开 收起
10评论

  • 精彩
  • 最新
  • 看起来好像很厉害的样子,有没有大神说说?

    校验提示文案

    提交
  • 没人告他吗

    校验提示文案

    提交
    为什么告他

    校验提示文案

    提交
    国内的广告商以前干过这种事

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 如果不贵我都想买几个

    校验提示文案

    提交
  • 开源吗

    校验提示文案

    提交
  • 必胜客已经开始收集资料了

    校验提示文案

    提交
  • 你小心法务告你

    校验提示文案

    提交
  • 如果某个广告商总是弹出来烦你,那么你要是也给他们弹垃圾广告会怎样?比如熊猫烧香那种

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
8
扫一下,分享更方便,购买更轻松