凡是试过给整个网络搭建可靠拦截广告/追踪器方案的人,都听说过 Pi-hole:一个可以自己搭建的工具,跑在树莓派或旧电脑上,能在广告或追踪请求还没到浏览器前就悄悄全拦下来。它运行得非常好,而且设置起来出奇地简单。但前提是你得买个树莓派,或者弄台旧电脑一直插在网上——树莓派虽然不贵,但对第一个 Linux 项目来说并不是最明智的选择。
但如果你不想花个六七十甚至一百美元买树莓派,也不想整天开着旧电脑占网,其实还有个便宜得多的办法。一块 ESP32 开发板几乎只要 5 美元,作为家庭网络升级设备,效果不一定比你盯上的那个高价树莓派差。
这块小小的开发板升级了我的整个网络
直接在网络层面拦截跟踪器
要把你这块 ESP32 变成 DNS 拦截器,只需要用 ESP32_AdBlocker。这是 GitHub 上的一个开源项目,让你把一个 Arduino 程序刷进带 PSRAM 的 ESP32,再把路由器设置成用它做 DNS,然后全网络就有 DNS 拦截了,而且跑在不到一杯咖啡钱的硬件上。
从本质上讲,ESP32_AdBlocker 的原理跟 Pi-hole 一模一样。比如说,你的某个应用里嵌了个可疑的广告服务器或跟踪器,这时你网络里的设备想访问它的域名,它先要让你的 DNS 服务器把这个域名解析成 IP 地址。通常你的路由器会把这个请求往上游转,交给你 ISP 的 DNS——这个最好别用——或者你手动设置的第三方 DNS。
但只要中间插了个 ESP32 当 DNS 陷阱,你屏蔽列表里的域名它就直接给返回一个 0.0.0.0,这个地址根本没法路由,连接到这里就断了。你的设备不会去加载广告,不会让跟踪器收到任何数据,更不会白白浪费带宽去处理这个请求。不管你用什么设备都一样。
该项目使用 ESP32 的 PSRAM 把屏蔽名单存进内存里。域名查找速度也非常快,在标准 ESP32 上一般只需 50 到 100 微秒,甚至更低。你可能不知道,这比大多数到上游 DNS 服务器的往返时间还要快。不在屏蔽名单里的请求都会转发给你选的上游 DNS 解析器,所以正常上网完全不受影响。
几乎不用买什么硬件
一套几乎不花钱的简单方案
唯一硬性要求就是 ESP32 带 PSRAM,而大多数开发板都有。注意,ESP32 有两个版本:一个 4MB PSRAM,一个 8MB。最好选 8MB 版本,这样就能把整个屏蔽名单(比如 Steven Black 的合并 hosts 文件)都存进板子内存。4MB 版本会截短屏蔽名单,好塞进板子较小的内存,不过不管怎样,能屏蔽的域名数量也够可观了。比如带 8MB PSRAM 的 ESP32-S3,干这活完全没问题,价格也就 5 到 10 美元。
无需购买microSD卡,无需维护操作系统,也不用因为出了安全补丁就折腾更新。这段代码负责处理一切:下载屏蔽列表、在内存里排序、自动刷新,以及检查发出的请求。即使你还需要买根USB线和备用充电器才能把所有东西跑起来,总成本也不应超过15美元。
设置比你想的要简单
从刷写固件到运行只需几分钟
设置通过Arduino IDE完成,这软件免费,而且很好上手。设置完成后,先从GitHub仓库把代码文件下载下来,在IDE里打开,然后选对能分配PSRAM的分区方案(具体选哪个,仓库里的readme文件会告诉你),最后刷进开发板就行。
首次启动时,ESP32 会进入 Wi-Fi 接入点模式并广播一个配置网络。用手机或笔记本电脑连接该网络,访问 192.168.4.1,然后填一下你的 Wi-Fi 账号和密码。之后,填上你的屏蔽列表网址(支持 HOSTS 或 AdBlock 格式)以及你想用的解析服务,基本就搞定了。这与将 ESP32 变成 Wi-Fi 中继器的设置过程几乎相同。
最后一步是给开发板设一个固定 IP 地址——可以在路由器的 DHCP 设置里弄,也可以直接在配置页面上改,然后把这个 IP 填到路由器的默认 DNS 服务器那里。此后,你网络上的每台设备都会马上把 DNS 查询交给 ESP32 来处理。不用一台一台去配置。
网页端能让你实时看到下载和整理的进度。还能打开详细日志功能,清楚看到哪些域名被拦了、哪些放行了。以后更新拦截名单时只下载变化的部分,所以比第一次加载快很多。另外,为了防止断电,配个备用电源也挺值的。我用的是一个带额外USB口的路由器充电宝,结果正好完美解决了这个问题。
实际效果真的看得见
上网更快、追踪更少、网络更干净
用一段时间后,你会明显感觉所有设备都不用装任何插件,上网变得特别干净。那些不遵守你广告拦截设置的应用,它们发来的遥测信息也会被拦掉。一块5美元的ESP32就能给你的家庭网络做很多实用的事,而这还只是个开始。
它并不是一个完美的 Pi-hole 替代品,尤其是如果你喜欢看到带图表的集中式仪表板和每个客户端的统计信息,或者需要 DHCP 服务器功能的话。但如果你想要的只是一个成本几乎为零、几乎不耗电、无需任何持续维护的超级简单 DNS 黑洞,那么 ESP32 AdBlocker 项目就很有说服力:设置好就不用管了,能帮你抵御可疑广告和侵犯隐私的追踪器。
热门跟贴