游客发表
去年帮朋友处理一台旧笔记本,屏蔽浏览器主页被劫持到一个仿冒的网站导航站,怎么改都改不掉。屏蔽我打开 hosts 文件,网站发现里面密密麻麻塞了三百多行 IP 映射,屏蔽全是网站 127.0.0.1 后面跟着各种域名。朋友说这是屏蔽之前找人“优化”系统时装的,目的网站是屏蔽某些视频和游戏网站,防止孩子沉迷。屏蔽结果孩子没防住,网站自己倒是屏蔽先被恶心到了。
屏蔽网站这件事,网站工具比想象中多,屏蔽但真正好用的网站没几个。最原始的屏蔽办法是改 hosts 文件——把域名指向本地回环地址,浏览器连不上服务器,自然就打不开。这招在 Windows 和 Linux 上都管用,缺点是得手动维护,网站换个域名就失效。而且现在很多浏览器自带 DoH(DNS over HTTPS),直接绕过系统 hosts,你改了半天,Chrome 照样能打开。
稍微现代一点的是 DNS 层面的屏蔽。OpenDNS 和 AdGuard DNS 都提供家庭保护选项,在路由器上把 DNS 服务器一换,整个局域网内的设备都生效。我试过 AdGuard 的免费 DNS,屏蔽列表更新挺勤,但误杀率也不低。有次发现某个技术博客打不开,查了半天才知道被归到“内容农场”类别里去了。这种工具适合家长控制,对技术用户来说反而碍事。
浏览器扩展是另一条路。uBlock Origin 本身就能自定义规则,加一行 ||example.com^ 就能屏蔽整个域名。BlockSite 这类专门工具更直接,点一下按钮就把当前网站加进黑名单。但扩展的局限很明显:换浏览器就失效,开无痕模式可能绕过,手机端更是基本用不了。我见过有人装了五六个屏蔽扩展,结果互相冲突,网页加载慢得像拨号上网。
真正狠的是防火墙级别的屏蔽。pfSense 或者 OpenWRT 上跑 pfBlockerNG,配合 IP 黑名单和 DNSBL,能在网络层直接掐断连接。公司里常用这种方案封杀社交媒体,员工连 IP 都拿不到。但配置门槛高,普通用户折腾一整天可能连规则都写不对。而且 HTTPS 普及之后,SNI 加密让基于域名的过滤越来越难做,除非做中间人解密——那又是另一个层面的问题了。
手机端的情况更乱。Android 可以用 Blokada 这类本地 VPN 工具,原理是把流量导到本地过滤再放行。iOS 上则依赖 Screen Time 的内容限制,或者用 DNS 配置描述文件。但 iOS 的机制很死板,只能按苹果给的分类来屏蔽,想单独封某个域名得绕一大圈。我试过用 Shortcuts 自动化在打开特定 App 时切换 DNS,延迟高得让人想摔手机。
说到底,屏蔽网站的工具分两种:一种防自己,一种防别人。防自己的话,靠意志力比靠工具靠谱,因为你知道密码、能改配置,真想绕过去也就是几分钟的事。防别人的话,工具越底层越有效,但维护成本也越高。那个朋友的旧笔记本最后重装了系统,hosts 文件清空,孩子该玩还是玩。工具解决不了所有问题,有时候只是给焦虑找个出口。
友情链接