DNS 问题解决指南:DNS 污染、解析失败与 DNS 泄漏排查
DNS 问题是代理能连上却打不开网站的常见原因。本文从 DNS 污染、解析失败、DNS 泄漏三类现象入手,用 nslookup 与 dig 快速定位,并讲清 Fake-IP 与 redir-host 的区别、DoH 加密 DNS 与 Clash DNS 配置的正确写法,帮你一步步排查并修复解析异常。
简要回答 大多数 DNS 问题来自三处:本地运营商 DNS 被污染、客户端 DNS 模式配置不当、以及系统绕过代理直接向本地 DNS 查询造成泄漏。先用 nslookup 对比国内外 DNS 的解析结果,再检查客户端是否启用 Fake-IP 与加密 DNS,绝大多数情况都能在十分钟内解决。
DNS 问题的典型表现是“节点能测出延迟,但网页打不开或打开错误页面”。解决思路很简单:先确认解析结果是否被污染,再检查客户端的 DNS 模式(Fake-IP 或 redir-host)和上游 DNS 设置,最后排查系统或浏览器是否绕过代理造成 DNS 泄漏。下面按统一的诊断流程逐步说明。
问题现象
DNS 相关故障通常表现为以下几种情况:
- 节点延迟测试正常,但浏览器提示“找不到服务器”或
DNS_PROBE_FINISHED_NXDOMAIN - 同一个网站时好时坏,刷新几次才能打开
- 访问海外网站被跳转到无关页面,或证书报错
- 能打开网页,但 DNS 泄漏检测页面显示了本地运营商的 DNS 服务器
- AI 服务提示地区不受支持,而你的出口 IP 明明在支持地区
可能原因
| 原因 | 典型表现 | 影响程度 |
|---|---|---|
| DNS 污染 | 解析出错误 IP,连接超时或证书错误 | 高 |
| 上游 DNS 不可用 | 解析超时,所有网站都慢 | 高 |
| DNS 模式配置不当 | 部分应用、游戏或局域网设备异常 | 中 |
| DNS 泄漏 | 能访问,但隐私暴露,可能影响地区判断 | 中 |
| 系统 DNS 缓存 | 修改配置后仍然返回旧结果 | 低 |
其中 DNS 污染 最常见:本地 DNS 对部分海外域名返回错误地址,即使代理节点本身正常,客户端拿到错误 IP 后也无法建立连接。
快速检查
先用三步快速判断问题是否出在 DNS:
- 对比解析结果:分别用国内和海外 DNS 解析同一个域名,结果差异过大通常意味着被污染。
- 清理缓存:清空系统 DNS 缓存后重试。
- 切换代理模式:在客户端里临时切到全局模式,如果恢复正常,说明是规则或 DNS 分流的问题。
# Windows / macOS / Linux 通用
nslookup www.google.com 223.5.5.5
nslookup www.google.com 1.1.1.1
# macOS / Linux 可用 dig,只显示结果
dig @223.5.5.5 www.youtube.com +short
dig @8.8.8.8 www.youtube.com +short
清理 DNS 缓存的命令:
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
详细排查
1. 确认客户端的 DNS 模式
Clash 系客户端(包括 Clash Verge Rev)主要有两种增强模式:
| 对比项 | Fake-IP | redir-host |
|---|---|---|
| 解析方式 | 先返回虚拟 IP,真实解析交给节点 | 本地先解析出真实 IP |
| 连接速度 | 更快,少一次本地解析等待 | 略慢 |
| 泄漏风险 | 低 | 较高,本地会发出真实查询 |
| 兼容性 | 少数应用需要加入过滤列表 | 兼容性更好 |
绝大多数用户推荐 Fake-IP。遇到局域网设备、游戏平台或 NAS 访问异常时,把相关域名加入 fake-ip-filter 即可,不必整体切换模式。
2. 检查上游 DNS 是否可用
如果所有网站都慢,可能是配置里的上游 DNS 超时。用 dig 查看查询耗时:
dig @119.29.29.29 www.baidu.com | grep "Query time"
查询时间长期超过数百毫秒,建议更换为 DoH(DNS over HTTPS)上游。
3. 检查 DNS 泄漏
使用 DNS 泄漏检测类网页,查看检测结果中的 DNS 服务器归属。如果出现本地运营商的服务器,说明有查询绕过了代理。常见原因包括:只开启了系统代理而非 TUN 模式、浏览器开启了自带的“安全 DNS”并指向国内服务、或系统启用了 IPv6 而代理未接管。
4. 区分 DNS 问题与节点问题
很多人把节点故障误判为 DNS 问题,可以用下面的方法快速区分:
- 同一节点下,直接用 IP 访问正常、用域名访问失败,基本可以确定是解析问题。
- 客户端日志中出现大量
dns resolve failed或解析超时,说明上游 DNS 不可用。 - 所有域名都无法访问、且延迟测试也失败,多半是节点或订阅本身的问题,而不是 DNS。
- 只有个别网站异常,其他海外网站正常,通常是规则分流或该域名被污染导致。
5. 检查路由器与系统层面的设置
如果家中路由器或系统网卡手动指定了 DNS,也可能与客户端配置冲突。排查时建议先把网卡 DNS 恢复为自动获取,关闭路由器上的广告过滤或 DNS 劫持类插件,再重新测试。
解决方法
- 启用 Fake-IP 并配置加密上游:参考下方 Clash DNS 配置片段,国内域名走国内 DoH,海外域名交给 fallback 或代理解析。
- 开启 TUN 模式:TUN 能接管系统所有 DNS 查询,是解决泄漏最有效的方法,具体操作见 Clash Verge 使用教程。
- 关闭浏览器自定义安全 DNS,或将其改为跟随系统。
- 没有 IPv6 需求时关闭 IPv6 解析,避免 AAAA 记录绕过代理。
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '+.local'
default-nameserver:
- 223.5.5.5
- 119.29.29.29
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true
geoip-code: CN
仍然无法解决怎么办
如果按上述步骤处理后依然异常,可以继续:
- 换一个节点或地区测试,排除节点本身故障,参考 节点超时解决方法
- 使用客户端日志查看具体是哪个域名解析失败
- 如果只有 ChatGPT、Claude 等 AI 服务报地区错误,请查看 Region Not Supported 解决方法
- 联系机场客服,提供测试时间、运营商和报错截图
常见问题
开启代理后 nslookup 返回 198.18 开头的地址正常吗?
正常。这是 Fake-IP 模式分配的虚拟地址,客户端会在内部把它映射回真实域名,再交给代理节点解析,并不代表解析出错。
DNS 泄漏一定会导致无法访问吗?
不一定。泄漏通常不影响打开网页,但会让本地运营商看到你查询过的域名,也可能让 AI 服务根据 DNS 出口判断你的真实地区。
Fake-IP 和 redir-host 应该选哪个?
日常使用优先 Fake-IP,速度更快、泄漏更少;只有在个别应用必须拿到真实 IP 才能工作时,才考虑改用 redir-host 或把该域名加入 fake-ip-filter。
使用 DoH 之后还需要代理吗?
需要。DoH 只负责加密 DNS 查询,防止解析结果被篡改,并不能替代代理完成数据传输。