TUN 模式与 DNS:常见问题与设置建议
核心概念:为什么 DNS 在 TUN 模式中很重要?
在传统的“系统代理”模式下,DNS 解析往往是由浏览器或应用程序自己完成的,或者是通过简单的远程解析。但在 TUN 模式下,所有的网络包都会经过虚拟网卡。
如果 DNS 解析不正确,即便你的代理节点再快,也会出现以下问题:
- 无法连接:App 拿到了错误的解析地址。
- DNS 污染:本地运营商返回了错误的解析结果。
- 解析慢:解析一个域名需要好几秒钟。
ClashX Pro 的两种 DNS 增强模式
在配置文件中,你通常会看到 enhanced-mode 这一项。
1. Fake-IP(强烈推荐)
这是目前 Clash 最主流的方案。
- 原理:当 App 请求
google.com的 IP 时,Clash 立即返回一个虚假的、唯一的 IP 地址(如198.18.0.x)。App 会直接向这个 IP 发送请求,Clash 接手后,再去服务器端查询真实的 IP。 - 优势:解析速度极快(几乎是瞬发),完美解决 DNS 泄漏问题,且对 App 兼容性极佳。
2. Redir-Host(不推荐)
这是较老的方案,目前已逐渐退出舞台。
- 原理:Clash 会等待真实的 DNS 解析完成后,再进行转发。
- 劣势:容易受到 DNS 污染,且解析速度受限于上游 DNS 的响应时间。
DNS 最佳实践配置
为了让 TUN 模式运行更平稳,建议在 .yaml 配置文件中进行如下设置:
dns:
enable: true
enhanced-mode: fake-ip
listen: :1053 # 监听本地 DNS 端口
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
关键点说明:
- nameserver:放置国内常用的 DNS,用于快速解析国内域名。
- fallback:放置国外的公共 DNS,用于解析被污染或特殊的域名。
- fake-ip-filter:如果你有一些特殊的内网设备或特定的游戏对 IP 校验极其严格,请将这些域名加入
fake-ip-filter白名单。
常见问题排查
开启 TUN 后,控制面板显示 DNS 错误?
请检查是否有其他软件(如 AdGuard、dnscrypt 等)占用了 53 端口。如果有,建议将这些软件关闭,让 ClashX Pro 完全接管。
网页打不开,但显示“连接已重置”?
这可能是因为 DNS 解析到了错误的 IP 导致的。尝试在控制面板的“规则”中检查分流是否正确,或重启 ClashX Pro 以清除 DNS 缓存。
更多 DNS 设置细节,欢迎查看 ClashX 官方文档。
常见问题
Fake-IP 是 Clash 的核心机制。它会直接给 App 返回一个虚假的 IP 地址,让 App 立即开始发送数据包,随后 Clash 再在后台完成真实 DNS 解析,从而大幅提升速度。
这通常是因为配置中开启了 IPv6 DNS 解析或系统中还残留其他 DNS 设置。建议在配置文件中将 dns.ipv6 设置为 false。
可以,在配置文件的 dns -> nameserver 列表中添加你信任的 DNS(如 223.5.5.5 或 8.8.8.8)。
理论上不需要改,TUN 模式会自动接管。但如果遇到兼容性问题,可以将系统 DNS 设置为 127.0.0.1。
请在配置文件的 dns -> skip-proxy 列表或 rules 列表中将内网域名后缀(如 .local 或 .lan)加入直连规则。
网页显示的归属地取决于 Clash 的分流规则。如果访问测试网站走的是代理节点,则显示节点所在地 IP。