机场 DNS 解析失败怎么办?DNS 污染、fake-ip 与解析超时排查

更新于 约 5 分钟读完故障排查 · 网站访问问题

本文要点

  • 代理环境下的 DNS 分两段:国内域名本地解析,国外域名应经代理解析,混了就会污染或泄露。
  • 关掉客户端后上不了网,多是 fake-ip 残留或系统 DNS 被改,重启客户端或清 DNS 缓存。
  • 配置里的 DNS 服务器不可达、IPv6 和运营商劫持是解析超时的三个常见来源。

现象是什么

DNS 问题的表现比较杂:开着代理,浏览器提示找不到服务器、DNS_PROBE_FINISHED 之类的错误;部分网站能开部分不能开;关掉客户端后反而全网断开;或者节点延迟正常但网页一直在「正在解析主机」。它们的共同点是域名没有被正确变成 IP。

代理环境下 DNS 比平时复杂,因为要分两段处理:国内域名在本地解析走直连,国外域名应该经由代理解析,这样既不污染也不泄露。两段混到一起,就会出现解析错误、DNS 泄露或者速度变慢。

先做 1 分钟快速检查

  1. 彻底退出客户端(包括托盘图标)再重新打开,很多 DNS 问题来自上次异常退出的残留。
  2. 切换到全局模式,打开一个国外网站。能开,说明解析在代理侧是通的,问题在分流和本地解析。
  3. 看客户端连接记录里的 DNS 查询或者日志,有没有 dns timeout、no answer 之类的报错。

两种 DNS 模式

fake-ip redir-host(真实 IP)
原理 客户端返回假 IP,流量到了再按域名处理 客户端真的去解析,返回真实 IP
优点 不受本地污染,首包更快 兼容性好,程序拿到真实 IP
缺点 少数程序不兼容,退出后可能残留 依赖上游 DNS 质量,可能被污染
适合 日常使用,TUN 模式 需要真实 IP 的局域网、游戏、特定软件

遇到污染类问题优先试 fake-ip;遇到「关闭客户端后断网」「某程序拿到 198.18 开头的假地址」优先检查 fake-ip 的残留和过滤列表。

逐步排查

  1. 异常退出留下残留。客户端崩溃或被强制结束,系统 DNS 还指向客户端,或者系统缓存里全是 fake-ip 假地址。重新打开客户端再正常退出一次,或者清系统 DNS 缓存,并把网卡的 DNS 改回自动获取。
  2. 配置里的 DNS 服务器不可达。订阅自带的配置可能指定了某些 DNS 服务器,如果这些服务器在你的网络下不通,所有解析都会超时。在客户端 DNS 设置里换成常见的公共 DNS,国内域名一组、国外域名一组,保存后重启内核。
  3. 本地 DNS 污染。规则模式下国外域名先在本地解析,拿到被污染的错误 IP,后续按 IP 分流就会走错路或者连不上。开启 fake-ip,或者在 DNS 设置里把国外域名交给远程 DNS(经代理解析)。污染和分流的关系见 国外网站打不开。
  4. TUN 模式下 DNS 劫持没生效。TUN 接管了流量,但系统 DNS 请求发给了路由器而不是客户端,导致解析失败或者泄露。在 TUN 设置里开启 DNS 劫持,并确认没有程序(如浏览器自带的安全 DNS)绕过系统 DNS。相关内容见 TUN 模式无法使用。
  5. 浏览器的安全 DNS(DoH)。浏览器开启了自己的 DNS over HTTPS,解析完全绕过客户端,规则就按它拿到的 IP 走,可能直连也可能污染。在浏览器设置里关闭安全 DNS,或者把它指向客户端能处理的地址。
  6. IPv6 解析。本地有 IPv6,域名同时有 AAAA 记录,浏览器优先走 IPv6 直连失败。在客户端关闭 IPv6 解析,或在系统禁用 IPv6。
  7. 运营商 DNS 劫持。个别地区运营商会劫持 53 端口的请求,把国外域名解析到广告页或错误地址。用 fake-ip 或者让客户端使用加密 DNS(DoH/DoT)作为上游,绕过明文 53 端口。
  8. 路由器层面的 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 改回自动获取并重启网络即可恢复。

相关网站访问问题文章

全部