运营商透明 DNS 怎么判断:改了 8.8.8.8 仍被劫持,和加密 DNS 差在哪
把电脑或路由器的 DNS 改成 8.8.8.8 或 1.1.1.1 之后,有的网站仍然打开运营商的提示页,或者解析到一个明显不该出现的地址。在命令行指定这些服务器去查,结果却和默认 DNS 几乎一样。这就是透明 DNS:你的查询名义上发给公共解析,实际上在 53 端口被运营商答掉了。
它和「DNS 泄漏」不是同一件事。泄漏是连上隧道之后仍有查询走了隧道外;透明应答是查询根本没到你填写的那台服务器。下面用对照实验把两者分开。公共解析和系统开关的名称以各系统当前版本为准。
三种现象不要用一个词概括
透明应答时,你在网卡里填的地址只是个摆设,UDP 53 的包会被截走并直接给回答案。所以「我已经改成 8.8.8.8」不能证明查询到了 8.8.8.8。要证明,得看指定服务器和加密通道的结果是否还一样。
| 对比项 | 透明 DNS | DNS 泄漏 | 只是缓存 |
|---|---|---|---|
| 你做了什么 | 指定了公共 DNS | 已经连上隧道 | 刚改过 DNS |
| 查询走哪 | 53 端口被中途应答 | 部分查询没进隧道 | 本机还记着旧答案 |
| 典型结果 | 指定谁都得到同一错答 | 泄漏测试看到本地解析 | 过一会儿或清缓存后变了 |
| 加密 DNS | DoH 或 DoT 不走 53 | 仍要确认走隧道 | 与缓存无关 |
| 改路由器 | 下游仍可能被劫持 | 要看终端自己的设置 | 清的是终端缓存 |
| 和线路的关系 | 隧道内的解析不再走本地 53 | 泄漏说明隧道没接住 DNS | 先清缓存再判断 |
用对照把劫持看出来:分步操作
- 第一步:先不要连刺猬VPN。这一步是在看本地网络本身。自定义用户名和密码的注册可以之后再做,不需要邮箱和手机号。先把现象记下来,再决定要不要把解析放进线路;
- 第二步:打开命令行。Windows 用 nslookup 某域名 8.8.8.8,再对 1.1.1.1 做一次。macOS 或 Linux 用 dig @8.8.8.8 与 dig @1.1.1.1。若两次都得到同一个明显错误的地址,记下这个地址;
- 第三步:不要用浏览器先打开网站下结论。浏览器可能走自己的加密 DNS,和命令行的 53 端口不是一条路。命令行和浏览器结果不一致时,以你正在测的那一条为准;
- 第四步:清本机缓存后再测一次。Windows 执行 ipconfig /flushdns。若清完仍然错,且指定不同公共 DNS 结果相同,就不是缓存;
- 第五步:用加密 DNS 做对照。浏览器的安全 DNS 选一家服务商,或在安卓的私人 DNS 里填服务商主机名。若这时网页正常、命令行的 53 端口仍错,就可以认定 53 被应答、加密通道没有;
- 第六步:私人 DNS 提示无法连接,多半是 853 端口也不通。这时不要来回切换主机名,改用走 HTTPS 的浏览器加密 DNS,或把解析放进线路;
- 第七步:连接刺猬VPN 后再做同一次查询。客户端若由隧道处理 DNS,命令行结果应不再是刚才那个错误地址。免费节点永久免费、不限流量、不限速,注册即用,全程 HTTPS+AES 加密传输;
- 第八步:断开线路再查一次。若错误地址立刻回来,说明问题在本地 53,不是网站本身故障;
- 第九步:路由器里改 DNS 只能影响使用路由器解析的设备。终端自己指定了 DNS 或开了加密 DNS 时,不受路由器那一栏控制。每台设备单独对照。
按现象排查:53、853 和隧道
先看查询从哪一条出去,再决定改系统开关还是连接线路。
- 指定 8.8.8.8 和 1.1.1.1 结果完全相同且错误:53 端口被透明应答。继续改第三个普通 DNS 没有意义;
- 只有某一个域名错、其他正常:也可能是这个域名的记录或本地 hosts。换一个无关域名再对照,不要只测一个;
- 清缓存后恢复:刚才是旧缓存。把这一次从劫持里排除;
- 命令行错、浏览器对:浏览器走了加密 DNS。你修的是浏览器,命令行和其他软件仍走 53;
- 私人 DNS 连接失败:853 不通。改用 DoH 或隧道内解析;
- 连上线路后仍得到错误地址:客户端没有接住 DNS,查询仍从隧道外的 53 出去。这是泄漏,按泄漏那一篇查,而不是再改一个公共 DNS;
- 只有家里 Wi-Fi 这样、手机流量正常:劫持在这路宽带上。手机流量上的对照可以当参照;
- 路由器改了、电脑没变:电脑自己还有 DNS 设置或加密 DNS。在电脑上重复对照。
普通 DNS、加密 DNS 和线路里的解析
免费节点永久免费、不限流量、不限速,适合做连上和断开的对照。日常把解析放在线路里,用时长套餐按周期计费,期间不限流量、不限速。刺猬VPN 自身不对账号做速率上限。实际速度仍受本地网络影响。实际可用性取决于当前网络环境。
| 对比项 | 只改 8.8.8.8 | 系统或浏览器加密 DNS | 连上线路并由其处理解析 |
|---|---|---|---|
| 走的端口 | UDP 或 TCP 53 | 443 的 DoH 或 853 的 DoT | 进入隧道之后 |
| 透明应答 | 挡不住 | 53 被应答时仍可用 | 本地 53 不再被使用 |
| 853 被拦 | 无关 | 私人 DNS 会失败 | 不依赖 853 |
| 其他软件 | 跟着系统 DNS | 只有支持加密 DNS 的跟着走 | 看客户端是否接住全部查询 |
| 泄漏测试 | 看不出隧道问题 | 可能仍在隧道外 | 应不再出现本地解析 |
| 适合场景 | 网络没有劫持时 | 只想让浏览器躲开 53 | 希望各软件一致 |
电脑、手机和路由器各测一次
Windows 的 nslookup 默认可能先问系统当前的 DNS。一定要在命令里写上要测的服务器地址,否则你测到的仍是运营商给的那一台,得不出「指定公共 DNS 也错」的结论。
安卓的私人 DNS 填的是主机名,不是 8.8.8.8 这种地址。填错格式会一直停在无法连接。iOS 的加密 DNS 描述文件或系统设置同样只影响使用系统解析的应用,自带解析的 App 要单独看。
浏览器里打开加密 DNS 之后,用该浏览器访问网站已经不能代表命令行。排查时写清楚:这一次测的是浏览器还是 dig。两套结果都要留。
公司网络和家里的宽带可能一个劫持、一个不劫持。在公司测到的错地址,不要写成家里也一定如此。换网络后再做同一组指定服务器的查询。
hosts 文件里如果写死了某个域名,指定任何 DNS 都会得到文件里的那个地址。这不是透明应答。先看 hosts 里有没有这个域名,没有再做两次公共解析的对照。测试完把临时加的行删掉,避免以后误判。
只改 IPv4 的 DNS、系统仍用 IPv6 解析时,浏览器可能走到另一条地址。对照时让查询明确指定类型,或暂时只看你在命令里写出的那一次结果。不要把 IPv6 的地址和 IPv4 的错答混成同一次劫持。
安全软件自己带的安全 DNS 会抢在系统设置之前。你在网卡里填的公共 DNS 根本没被用上,结果却像透明应答。先看安全软件的网络设置里有没有强制 DNS,关掉后再做指定服务器的查询。
把结论写成一句话再改配置:53 端口两次指定都错,就是透明应答;只有缓存清掉后变了,就是缓存;连上线路后仍错,才是泄漏。三句不要并成「DNS 有问题」去同时打开所有开关。
测完之后把浏览器的加密解析和系统里的开关恢复到你打算长期使用的那一种,不要留着测试时临时点开的选项。临时选项会让第二天的结果和今天对不上,你又会以为劫持时有时无。长期方案只留一条:要么系统加密解析,要么由线路里的客户端统一处理。
同一台电脑用网线及无线分别测一次。两条链路若只有一条得到错答,劫持就在这一条接入上,不是电脑的网卡设置写错。把这个结果告诉检修时,直接说哪一条接入、指定了哪两台公共解析、结果是否相同。
手机开热点给电脑用时,电脑测到的是手机这一路的解析,不是电脑原来那条宽带。要用宽带做对照,就拔掉热点,只留网线或家里的无线。把热点结果写成宽带的结论,会把两路网络的差异糊在一起。
记录结果时把域名、指定的解析地址和返回的地址写在同一行。只写「还是错的」没有用。下次对照要能看出错的是不是同一个地址。地址变了,说明情况已经不同,不要沿用昨天的结论。
和泄漏、加密 DNS 两篇怎么分工
已经连上线路仍看到本地解析,按 DNS 泄漏 排查,那是隧道没接住查询。DoH 和 DoT 的开关与区别见 DoH 与 DoT。
本篇只回答:还没进隧道时,为什么改公共 DNS 仍然得到错答。先做 53 端口的对照,再决定用加密 DNS 还是把解析放进线路。
不要同时改三处还不记录。先只改一处,看结果变不变,再改下一处。否则你不知道是加密 DNS 生效了,还是缓存刚好过期。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 指定公共 DNS 仍得错答 | 53 被透明应答 | 改加密 DNS 或走线路内解析 |
| 清缓存后恢复 | 旧缓存 | 不要当成劫持 |
| 只有命令行错 | 浏览器走了 DoH | 需要一致时改系统或线路 |
| 私人 DNS 无法连接 | 853 不通或主机名错 | 改 DoH 或线路 |
| 连上后仍是错答 | 查询泄漏在隧道外 | 按泄漏一文检查 |
| 路由器改了电脑不变 | 终端自有 DNS | 在终端上重测 |
| 只有一路宽带如此 | 劫持在这一路 | 用手机流量做参照 |
高频问答
- 问:改成 8.8.8.8 为什么没用?答:透明应答不看你填写的地址,53 端口上的查询会被中途答掉;
- 问:这是泄漏吗?答:还没连线路时不是泄漏。连上之后仍走本地解析才是泄漏;
- 问:浏览器正常就不用管了吗?答:只说明浏览器可能走了加密 DNS。其他软件仍可能走 53;
- 问:私人 DNS 填 8.8.8.8 可以吗?答:那个开关要填主机名。填地址格式会连接失败;
- 问:免费节点能做对照吗?答:可以。免费节点永久免费、不限流量、不限速。长期使用用时长套餐,期间不限流量、不限速;
- 问:线路会不会自己承诺解析一定正确?答:不会。连上后要再查一次对照。实际可用性取决于当前网络环境。
先做两次指定查询再下结论
运营商透明 DNS、改 8.8.8.8 仍然错、私人 DNS 连不上,要先用两次指定不同公共解析的查询看结果是否相同,再清缓存排除旧答案,最后用加密 DNS 或线路内解析做对照。命令行和浏览器要分开记。连上线路之后如果仍是本地错答,改去查泄漏,而不是继续更换普通 DNS。
刺猬VPN 采用 HTTPS+AES 加密传输,支持断线保护。自定义用户名和密码即可匿名注册,不需要邮箱和手机号。免费节点永久免费、不限流量、不限速,适合做连上前后的对照;时长套餐按周期计费,期间不限流量、不限速。一个账号支持多设备同时在线。实际可用性取决于当前网络环境。
开始使用刺猬VPN:HTTPS+AES 加密、零日志,匿名注册无需邮箱
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。