先确认现在生效的是哪一份 DNS
客户端里有一个 DNS 覆写开关(在「Clash 设置」那一块,不同版本叫法略有差异)。关着的时候,域名解析走的是配置文件里自带的 dns 段;一旦打开,用的就是客户端这一份,订阅给的那段完全不参与。
DNS 的困惑大多从这里开始。有人在配置文件里改了一个小时的 nameserver,没发现覆写开着,最后想不通为什么什么都没变。
改完要重载才算数
dns 段不是即时生效的,保存后让配置重新加载一次,再去测。
fake-ip、白名单和几个 nameserver
- 1
两种解析模式,默认那个更合用
fake-ip 不在本机做解析,直接丢一个 198.18.0.1/16 范围内的假地址给程序,真正的查询在代理那端完成。快,而且你的电脑根本没往外发查询,几乎没有泄漏的空间。redir-host 会老老实实解析出真实地址再连,兼容性好一些但慢一点。没有特别理由就留在 fake-ip。
- 2
fake-ip-filter 是一份白名单
被 fake-ip-filter 匹配到的域名不发假地址,改走正常解析。局域网设备名、部分联机游戏、任何需要真实内网地址的服务都得放进去,不然它们拿到 198.18 开头的地址就是连不上。默认清单已经覆盖常见情况,某个服务坏了再把它的域名补进去。
- 3
三个 nameserver 字段各管一段
nameserver 处理常规查询。proxy-server-nameserver 专门解析节点自己的域名,填错或留空就会出现那个经典现象:所有节点一起连不上,因为连节点的域名都解析不出来。nameserver-policy 给指定域名派专用服务器,公司内网的域名后缀交给内部 DNS 就靠它。
泄漏检测页面该怎么看
打开任意一个 DNS 泄漏检测页面,看它列出来的解析服务器落在哪个地区。和你正在用的节点对得上就没问题;跑出一整排本地运营商的服务器,就说明有路径绕过了 Clash Verge。
- 测之前先把浏览器的加密 DNS(DoH 或 DoT)关掉,它会绕过你设好的一切
- 网卡上也看一眼,有没有手工填过公共 DNS
- 要改 fake-ip 网段之前,确认新网段不会和你的内网撞上
常见问题
代理开着,泄漏检测出来还是本地的 DNS 服务器?
按顺序查三个地方。第一是浏览器的安全 DNS,Chrome 和 Firefox 有可能默认就开着,它自己走 DoH,谁也拦不到。第二是网卡属性里手工填的 DNS 服务器。第三是运行模式,系统代理模式只接管遵守代理设置的程序,系统自己的解析请求不一定经过它,需要的话切到 TUN。
fake-ip 下有些 App 一直报错怎么办?
这类 App 要的是真实地址,拿到 198.18 开头的就直接判定连不上。把它的域名加进 fake-ip-filter,让这一个名字走真实解析,其余保持原样。整份改成 redir-host 也能解决,代价是每次查询都变慢,为了一个 App 这么做不划算。