“把 DNS 换成 8.8.8.8 试试”——这句话你肯定听过。神奇的是,有时候真管用,有时候屁用没有。我当年第一次遇到网站打不开,换了五个 DNS 才搞明白原理。这篇用踩坑复盘的方式,讲清 DNS 污染。
插图来源:Storyset
先搞懂:DNS 是干什么的#
上网第一步:把域名(google.com)翻译成 IP 地址。负责翻译的就是 DNS。你的请求先到运营商的 DNS 服务器,拿到 IP 再去连接。DNS 污染就是在这个翻译环节做手脚:给你一个错误的 IP,你自然就打不开了。
踩坑复盘:我当年怎么被耍的#
第一次:某网站打不开,换 8.8.8.8 好了。我以为找到万能钥匙,结果第二天又不行——因为污染是动态的,这次没污染你的查询,不代表下次不污染。
第二次:换了 DNS 还是打不开,开始怀疑人生。后来才知道:DNS 只是第一关,即使 DNS 给了正确 IP,连接阶段还可能被 SNI 阻断。DNS 干净 ≠ 全程畅通。
第三次:终于搞懂,DNS 污染、SNI 阻断、IP 封锁是三道不同的关。换 DNS 只解决第一道。想系统理解,VLESS 详解和协议横评把各层的对抗讲得很透。
换 DNS 的正确姿势:步骤#
- 先判断是不是 DNS 问题:ping 域名,如果解析出的 IP 明显不对(比如解析到 127.0.0.1 或国外 IP 乱跳),才是 DNS 污染。
- 换公共 DNS:8.8.8.8(谷歌)、1.1.1.1(Cloudflare)、223.5.5.5(阿里),挨个试。
- 上 DoH:DNS over HTTPS,把查询加密,中间人看不到你查了什么,污染难度大增。浏览器设置里直接开。
- 终极方案:代理客户端里开"远程 DNS 解析",DNS 查询也走代理,一步到位。
什么时候换 DNS 没用#
- IP 被墙了:DNS 给你正确 IP 也连不上。
- SNI 被阻断:握手阶段被掐,和 DNS 无关。
- 网站本身挂了:先别怪网络,换个网络环境验证下。
踩坑复盘续:DoH 也不是银弹#
第四次:开了 DoH,以为万事大吉,结果某些网站还是打不开。后来明白:DoH 只加密了"查地址"这一步,连接时的 SNI 还是明文,该掐照样掐。DoH 是升级,不是终点。
第五次:把系统 DNS、浏览器 DoH、代理客户端远程解析全开了,互相打架,解析慢得离谱。教训:DNS 方案一次只用一套,叠加等于叠负效果。
步骤:在各端开启 DoH#
Chrome、Edge:设置-隐私和安全-安全-使用安全 DNS,选 Cloudflare 或 Google,也可以自定义填 DoH 地址。
Firefox:设置-常规-网络设置-启用基于 HTTPS 的 DNS,选默认或自定义。
Windows 11:设置-网络-以太网、WLAN-DNS 服务器分配-手动,填支持 DoH 的 DNS 模板。
Android 9 及以上:设置-网络-私人 DNS,填 dns.google 或 one.one.one,全系统生效,最省事。
iPhone:装 DoH 描述文件,或直接在代理客户端里开远程解析——后者更彻底。
FAQ#
Q:换 DNS 会让网速变慢吗? A:解析多几十毫秒,体感几乎为零。但选离你近的 DNS:国内用户用国内公共 DNS,通常比跨洋的快。
Q:公共 DNS 会记录我访问了什么吗? A:理论上会。介意的话用 DoH 加密查询。普通用户不用过度焦虑,运营商 DNS 本来也看得一清二楚。
Q:DoH 和代理冲突吗? A:不冲突,是互补。DoH 管解析加密,代理管流量转发。两个都开,各司其职。
一句话总结#
换 DNS 是"一招鲜",能解决 DNS 污染这一种问题。2024 年了,靠谱的姿势是:DoH/DoT 打底 + 代理客户端远程解析。至于 VMess 这些老协议在 DNS 对抗上有啥讲究,那是另一个话题——先把 DNS 这关搞明白,再谈别的。