家里网速慢、Wi-Fi有死角,很多人第一反应是换路由器、加Mesh。但真正让网络变吵的,往往不是速度不够,而是设备太爱"说话"——手机、智能电视、恒温器,甚至打印机,都在闲置时忙着加载广告、把数据回传给那些你从没点头同意过的公司。 有个办法能一次性掐掉这些噪音:一台约 20美元 的Raspberry Pi Zero 2 W,跑上Pi-hole。它拦截整个网络的DNS请求,广告和应用遥测一起断掉。想要更宽裕的性能,Pi 4或者一台旧电脑也行,但Zero 2 W通常够用。把拦截放到网络层,噪音在抵达设备之前就被拦下了。 它到底卡在哪一层 正常情况下,设备要访问某个网站,会先问DNS服务器:"这个网站的IP是多少?"DNS服务器把IP回给它,连接才建立。 Pi-hole做的是DNS黑洞。它站在你网络里的设备和DNS服务器之间,某些请求根本不会被转发出去,它直接回一句"哪儿都没有"。效果就是:你网络里任何设备都拿不到那个网站的IP,自然也就打不开。 Pi-hole几乎能跑在任何东西上——Pi Zero 2 W、Proxmox服务器里的容器,或者从垃圾堆里捡回来的旧笔记本。也正因为这个位置,它能看到你网络里大部分的上网流量,顺带成了一个相当好用的网络监控工具。 那些装不了广告拦截器的设备 你没法在Roku或者智能冰箱上装广告拦截插件。想在这些设备上拦广告,只能从网络层下手。 Pi-hole干的正是这件事。手机、平板、电视、智能冰箱,网络上几乎所有设备发出的请求它都能拦。因为是在设备连上域名之前就拦掉,这些请求根本不消耗带宽。 但它有明显边界。Pi-hole拦不住和内容同域名的广告,这在主流流媒体平台上很常见。也就是说,YouTube和Twitch的广告照样能进来,那类广告还得靠浏览器层面的拦截器。不过它确实补上了不少缺口:手机和平板里的应用内广告常常直接消失,因为广告服务器解析不出来了;智能电视首页和流媒体盒子上的杂乱内容也会明显减少。 谁在偷偷回传,一目了然 因为工作方式的关系,Pi-hole还能让你看清网络里到底发生了什么。你大概率会发现,某些智能设备——比如电视——在不停连接遥测域名,一天出现几百条是常事。有人的扫地机器人也被发现花了大量时间往家里"打电话"。 你可以用拦截列表把这些遥测挡掉,同时不影响设备本身的功能。除了减少杂乱、改善隐私,这可能还是一项实打实的安全提升。被攻陷的物联网设备往往需要连回命令服务器,如果你的网络里20台设备每天产生 10000条 遥测请求,其中一台行为异常你根本注意不到。反过来,如果 90% 的噪音已经被挡掉,一台物联网设备做点奇怪的事就很容易冒出来。 当然,有些设备就是设计得很难搞。少数电视在遥测被拦之后,会拒绝打开某些应用。 真正的价值在查询日志 网络里最让人头疼的问题,往往和速度、延迟无关,而是那些不请自来的流量:追踪器、广告、偷偷回传的设备。一台20美元的Raspberry Pi就能把这件事了结。 就算你不在乎广告,光是查询日志本身就值回票价。一旦你知道智能设备在背后干什么,你就能做点什么,或者至少在做决定时更有依据。 代价也要说清楚。最大的一个是:Pi-hole会成为单点故障。Pi或者SD卡一坏,DNS就挂了,你会直接断网。解决办法是再跑一个实例,或者配一个备用DNS,但这都需要额外设置。另外,Pi-hole的拦截列表有时会过于激进,把某个页面拦到打不开或者功能不正常,这时候你得手动把它从列表里移出去。 特别