结论: DNS 泄露指你的域名解析请求没有走代理,而是被发给了本地运营商或系统配置的 DNS。要检查它,先弄清请求走哪条路,再用检测站验证,最后针对四个常见原因逐个修复。
一、DNS 请求路径
访问一个网站,浏览器要先把域名解析成 IP。在 Clash 环境里可能有几条路径:
- 程序不走 Clash(没读系统代理)→ 直接问系统 DNS → 泄露。
- 程序走 Clash,Clash 用自己的 DNS 设置解析,或把域名交给远端节点解析。
- 浏览器启用了"安全 DNS(DoH)",绕过系统与 Clash 自己发加密请求。
二、检测方法
- 开启代理(规则模式 + 系统代理,或 TUN)。
- 打开 dnsleaktest.com 或类似的 DNS 泄露检测站,运行标准 / 扩展测试。
- 看结果列出的 DNS 服务器归属:
- 若全是你本地运营商的 DNS,而你期望走代理,则存在泄露;
- 若是节点所在地或你配置的 DoH 服务商,则 DNS 已走代理。
注意:规则模式下,国内域名本来就可能按规则直连并使用国内 DNS,这是设计行为,不一定是问题。是否算泄露取决于你想保护哪些域名。
三、四个常见原因与处理
- 程序没进 Clash: 改用 TUN,或给程序单独设置代理。
- Windows 智能多宿主名称解析: Windows 会向多个网卡同时发 DNS 请求,可能把请求从本地网卡发出。可在组策略或注册表中关闭该行为后再测(修改系统设置前请先了解风险并备份)。
- 浏览器安全 DNS: 在浏览器设置中关闭"使用安全 DNS",让浏览器遵循系统或代理设置。
- IPv6: 暂时关闭 IPv6 对比结果。
四、Mihomo DNS 配置片段
下面是常见结构,仅作理解用途,不要不加区分地照抄:
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
fallback:
- https://1.1.1.1/dns-query
proxy-server-nameserver:
- https://dns.alidns.com/dns-query
字段含义:nameserver 是常规解析使用的 DNS;fallback 在特定条件下使用;proxy-server-nameserver 专门用于解析代理节点自己的域名。具体字段以Mihomo 文档为准,随版本会有变化。
五、验证
修复后重新运行检测站,对比前后结果;同时在客户端「连接」页确认目标请求确实出现在连接列表里。