Clash Verge 开启 fake-ip 模式后,DNS 解析由 Clash 内核接管,使用配置文件中 nameserver 指定的 DNS 服务器,而不是系统设置的 DNS。
这会导致一个常见问题:公司内网域名(如 *.sankuai.com)在关闭 Clash 时可以正常解析,开启后却报 dns resolve failed: couldn't find ip。
原因是机场(代理服务商)通常会在订阅配置中替换 nameserver 为自己的加密 DNS(DoH),这些 DNS 服务器不知道公司内网域名的存在。
解决方案
在 Clash 配置的 dns: 部分添加 nameserver-policy,为指定域名单独配置 DNS 服务器:
dns:
nameserver-policy:
+.example-internal.com: 114.114.114.114
注意:必须使用 +. 前缀(匹配域名本身及所有子域名),而不是 *.(只匹配子域名)。
排查方法
查看 Clash 日志页面,搜索目标域名,若出现以下错误即可确认是 DNS 问题:
[TCP] dial DIRECT ... error: dns resolve failed: couldn't find ip