机场 DNS 解析失败怎么办?DNS 污染、fake-ip 与解析超时排查
本文要点
- 代理环境下的 DNS 分两段:国内域名本地解析,国外域名应经代理解析,混了就会污染或泄露。
- 关掉客户端后上不了网,多是 fake-ip 残留或系统 DNS 被改,重启客户端或清 DNS 缓存。
- 配置里的 DNS 服务器不可达、IPv6 和运营商劫持是解析超时的三个常见来源。
现象是什么
DNS 问题的表现比较杂:开着代理,浏览器提示找不到服务器、DNS_PROBE_FINISHED 之类的错误;部分网站能开部分不能开;关掉客户端后反而全网断开;或者节点延迟正常但网页一直在「正在解析主机」。它们的共同点是域名没有被正确变成 IP。
代理环境下 DNS 比平时复杂,因为要分两段处理:国内域名在本地解析走直连,国外域名应该经由代理解析,这样既不污染也不泄露。两段混到一起,就会出现解析错误、DNS 泄露或者速度变慢。
先做 1 分钟快速检查
- 彻底退出客户端(包括托盘图标)再重新打开,很多 DNS 问题来自上次异常退出的残留。
- 切换到全局模式,打开一个国外网站。能开,说明解析在代理侧是通的,问题在分流和本地解析。
- 看客户端连接记录里的 DNS 查询或者日志,有没有 dns timeout、no answer 之类的报错。
两种 DNS 模式
| fake-ip | redir-host(真实 IP) | |
|---|---|---|
| 原理 | 客户端返回假 IP,流量到了再按域名处理 | 客户端真的去解析,返回真实 IP |
| 优点 | 不受本地污染,首包更快 | 兼容性好,程序拿到真实 IP |
| 缺点 | 少数程序不兼容,退出后可能残留 | 依赖上游 DNS 质量,可能被污染 |
| 适合 | 日常使用,TUN 模式 | 需要真实 IP 的局域网、游戏、特定软件 |
遇到污染类问题优先试 fake-ip;遇到「关闭客户端后断网」「某程序拿到 198.18 开头的假地址」优先检查 fake-ip 的残留和过滤列表。
逐步排查
- 异常退出留下残留。客户端崩溃或被强制结束,系统 DNS 还指向客户端,或者系统缓存里全是 fake-ip 假地址。重新打开客户端再正常退出一次,或者清系统 DNS 缓存,并把网卡的 DNS 改回自动获取。
- 配置里的 DNS 服务器不可达。订阅自带的配置可能指定了某些 DNS 服务器,如果这些服务器在你的网络下不通,所有解析都会超时。在客户端 DNS 设置里换成常见的公共 DNS,国内域名一组、国外域名一组,保存后重启内核。
- 本地 DNS 污染。规则模式下国外域名先在本地解析,拿到被污染的错误 IP,后续按 IP 分流就会走错路或者连不上。开启 fake-ip,或者在 DNS 设置里把国外域名交给远程 DNS(经代理解析)。污染和分流的关系见 国外网站打不开。
- TUN 模式下 DNS 劫持没生效。TUN 接管了流量,但系统 DNS 请求发给了路由器而不是客户端,导致解析失败或者泄露。在 TUN 设置里开启 DNS 劫持,并确认没有程序(如浏览器自带的安全 DNS)绕过系统 DNS。相关内容见 TUN 模式无法使用。
- 浏览器的安全 DNS(DoH)。浏览器开启了自己的 DNS over HTTPS,解析完全绕过客户端,规则就按它拿到的 IP 走,可能直连也可能污染。在浏览器设置里关闭安全 DNS,或者把它指向客户端能处理的地址。
- IPv6 解析。本地有 IPv6,域名同时有 AAAA 记录,浏览器优先走 IPv6 直连失败。在客户端关闭 IPv6 解析,或在系统禁用 IPv6。
- 运营商 DNS 劫持。个别地区运营商会劫持 53 端口的请求,把国外域名解析到广告页或错误地址。用 fake-ip 或者让客户端使用加密 DNS(DoH/DoT)作为上游,绕过明文 53 端口。
- 路由器层面的 DNS 设置。在路由器上也装了代理(如 OpenClash),它和电脑上的客户端双重处理 DNS,容易互相干扰。两者只保留一个处理 DNS,路由器端的配置见 OpenClash 配置教程。
仍未解决时
把客户端的 DNS 设置恢复到订阅默认,只改模式为 fake-ip,重启客户端测试;如果订阅默认配置本身有问题,联系机场确认推荐的 DNS 配置。换一个客户端对比(例如从 Clash Verge Rev 换到 sing-box),DNS 处理方式不同,有时能直接绕开问题。节点本身正常但解析始终不稳定,也可能是节点侧的 DNS 服务异常,把日志发给客服。流媒体类的地区不符问题多数也和 DNS 泄露有关,见 Netflix 检测到代理。
常见问题
开了代理后提示 DNS 解析失败是什么原因?
常见有三种:客户端配置里指定的 DNS 服务器本身不可达;本地 DNS 被污染,国外域名返回了错误地址;TUN 模式下 DNS 劫持没生效,请求没有被客户端接住。重启客户端、切换 fake-ip 模式、换一组 DNS 服务器逐一测试即可。
fake-ip 是什么意思,要不要开?
fake-ip 是客户端给每个域名临时分配一个假 IP,流量到达客户端后再按域名处理,不用等真正解析,能避开本地 DNS 污染,速度也更快。多数场景建议开启;少数需要真实 IP 的程序会有兼容问题,可以把这些域名加入 fake-ip 过滤列表。
关掉机场客户端后反而上不了网怎么办?
通常是客户端非正常退出,系统 DNS 还指向客户端或留着 fake-ip 缓存。先重新打开客户端再正常退出一次,或者清除系统 DNS 缓存、把网卡 DNS 改回自动获取并重启网络即可恢复。