代理 DNS 问题,最常见的原因是系统直接用本地 DNS 解析被污染的域名,或者客户端 DNS 功能没有开启、配置不当。最快的办法是:在客户端中开启内置 DNS(多数情况下用 fake-ip 模式),然后清除系统 DNS 缓存并重启浏览器。
问题表现
| 现象 | 可能的 DNS 问题 |
|---|---|
网站提示 DNS_PROBE_FINISHED_NXDOMAIN 或「找不到服务器」 |
解析失败 |
| 网站解析到错误 IP,连接被重置 | DNS 污染 |
| DNS 泄露检测网站显示本地运营商的 DNS | DNS 泄露 |
关闭代理后部分网站打不开,ping 显示 198.18.x.x |
fake-ip 缓存残留 |
| 局域网设备、游戏联机、时间同步异常 | 这些域名拿到了假 IP |
| 国内网站变慢或打开了海外版本 | 国内域名被境外 DNS 解析,CDN 调度错误 |
可能原因
- DNS 污染:在国内网络中直接查询部分境外域名,可能得到错误结果;
- 客户端 DNS 未开启:系统 DNS 请求没有经过客户端,规则无法按域名正确匹配;
- DNS 泄露:只设置系统代理(非 TUN)时,部分程序仍用本地 DNS 查询。这不一定影响上网,但会暴露访问的域名,详见《DNS 泄露检测与防护》;
- fake-ip 残留:fake-ip 模式会给域名分配
198.18.0.0/16段的假地址,客户端退出后系统或浏览器缓存仍保留这些地址; - nameserver 配置不当:国内外 DNS 的分流设置有误,或填写的 DNS 服务器在当前网络无法访问;
- 浏览器安全 DNS(DoH):浏览器自行使用 DoH,绕过了客户端的 DNS 设置。
排查方法
-
对比不同 DNS 的解析结果(Windows cmd、PowerShell、macOS、Linux 都可用
nslookup):nslookup www.google.com nslookup www.google.com 223.5.5.5在未开启代理时,如果解析失败或结果明显异常,说明本地网络存在污染或 DNS 服务器问题。
-
检查是否有 fake-ip 残留:关闭代理后执行
ping 域名,如果返回198.18.开头的地址,就是缓存残留。 -
查看客户端 DNS 设置:确认已开启 DNS、
enhanced-mode是 fake-ip 还是 redir-host,nameserver 是否可用。两种模式的差别见《Fake-IP 与 Redir-Host 的区别》。 -
检查浏览器安全 DNS:Chrome 在「设置 → 隐私和安全 → 安全」中查看「使用安全 DNS」;Firefox 在设置中搜索「DNS over HTTPS」。
-
查看客户端日志:把日志级别调到 info 或 debug,搜索
dns相关报错,例如超时或连接被拒绝。
解决步骤
1. 清除 DNS 缓存
Windows(cmd,以管理员身份运行):
ipconfig /flushdns
Windows(PowerShell):
Clear-DnsClientCache
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux(使用 systemd-resolved 的发行版):
sudo resolvectl flush-caches
浏览器:Chrome 可打开 chrome://net-internals/#dns 点击「Clear host cache」,或直接重启浏览器。
2. 开启客户端 DNS 并使用 fake-ip
以 mihomo(Clash Meta 内核)配置为例,具体 DNS 服务器按需选择:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://223.5.5.5/dns-query
- https://doh.pub/dns-query
图形客户端一般在「DNS 覆写」或相关设置中提供同样选项,可参考《Clash Verge Rev 教程》。更完整的配置说明见《DNS 设置教程》。
3. 处理 fake-ip 兼容问题
局域网设备发现、部分游戏、NTP 时间同步等不适合使用假 IP,可在 fake-ip-filter 中加入相关域名,让它们返回真实 IP。具体列表和写法见《fake-ip 兼容问题排查》。
4. 减少 DNS 泄露
- 使用 TUN 模式并开启 DNS 劫持,让所有 DNS 请求进入客户端;
- 关闭浏览器的安全 DNS,或将其设置为与客户端一致;
- 使用规则模式,确保境外域名的解析与连接都通过代理完成。
验证结果
nslookup与浏览器访问都正常,不再出现解析失败;- 关闭代理后
ping域名返回真实 IP,而不是198.18.x.x; - DNS 泄露检测网站显示的 DNS 服务器与预期一致;
- 国内网站打开速度恢复正常。
其他方案与求助
DNS 问题基本属于客户端配置问题,一般不需要联系机场客服。但如果机场下发的配置文件中 DNS 段写法有误,导致所有用户都解析失败,可以向机场反馈,并附上客户端版本与日志中的 DNS 报错。若解析正常但网页仍打不开,请看《节点延迟正常但打不开网页》。如果同一机场长期频繁出问题,可以参考《稳定机场》里的长期记录。
常见问题
开代理后国内网站反而变慢了,是 DNS 的问题吗?
很可能是。国内域名如果被境外 DNS 解析,会拿到海外 CDN 地址,访问就会变慢。检查 nameserver 是否为国内可用的 DNS,或用 nameserver-policy 让国内域名走国内 DNS。
ping 出来是 198.18 开头的地址正常吗?
开启 fake-ip 时这是正常现象,说明客户端在接管 DNS。只有在关闭客户端后仍然出现,才说明有缓存残留,清除缓存即可。
需要把电脑网卡 DNS 改成 8.8.8.8 吗?
通常不需要。开启客户端 DNS 和 TUN 后,系统 DNS 请求会被客户端接管;手动改成境外 DNS 反而可能让国内网站变慢。
手机上也会遇到这些 DNS 问题吗?
会。安卓端客户端一般默认使用 VPN 模式接管 DNS,问题较少;iOS 上可以在 Shadowrocket、Quantumult X 等客户端的 DNS 设置中调整,思路相同。