Clash Verge为什么有时不可用
Clash Verge为什么有时不可用,这个问题我详细很多人都遇到过,到底是什么问题呢?

一、先理解:什么是 DNS 泄露?
当你通过 Clash 走代理时,DNS 查询仍然走本机或 ISP 的 DNS(而不是通过代理或加密的上游 DNS),就会泄露你访问的网站给 ISP 或第三方。表现为即便代理生效,DNS 查询的提供者显示为你的真实 ISP 或本地 DNS。
二、关键解决思路(概括)
-
让 DNS 查询走 Clash 而不是系统/ISP(把 DNS 监听到 Clash 提供的本地端口)
-
使用加密的上游 DNS(DoH/DoT/DoQ)或远程 DNS(避免明文 UDP 到 ISP)
-
确保流量路由方式正确:使用 TUN/VPN 模式或启用全局转发(redir/tproxy)以拦截并转走本地发出的 DNS 请求(53 端口/UDP)
-
在系统层面指向 Clash 的本地 DNS(127.0.0.1:端口)并禁用 IPv6 的系统 DNS(若必要)
三、逐步修复(适用于多数平台)
1)配置 Clash 的 dns
节(config.yaml)
把 DNS 交给 Clash,用加密上游(DoH/DoT)。示例(放在你的 config.yaml 的 dns:
下):
重点:
enhanced-mode: fake-ip
能避免部分软件直接解析原始 IP 导致泄露;listen
决定 Clash 在本机监听哪个地址/端口来提供 DNS 服务。
2)让系统/浏览器使用 Clash 的本地 DNS
-
Windows:将本地网络适配器的 DNS 改为
127.0.0.1
(若 Clash 监听 127.0.0.1:53);或把 DNS 改为127.0.0.1:53
(图形界面某些系统不直接支持端口,推荐使用 Clash 的系统代理/代理模式 + TUN)。 -
macOS / Linux:修改
/etc/resolv.conf
(或 Network settings)指向127.0.0.1
,或在 NetworkManager 中设置。 -
Android:若使用 Clash for Android(Tun 模式),打开「代理 DNS」/「通过代理解析 DNS」选项,或者在系统 DNS 里指向 127.0.0.1(需要 root 或使用内置 VPN)。
-
浏览器:不要单独启用浏览器的 DoH(除非它指向同样的上游且通过代理)。若浏览器的 DoH 配置绕过系统代理,会造成泄露。
3)启用 TUN / redir / TProxy(拦截本机 53 端口)
-
Clash Verge:启用 System Proxy + TUN 模式(如果可用)。TUN 能把本地发出的 UDP/53 请求也导入 Clash。
-
Clash for Android:启用 Tun 模式(VPN 模式) 并开启「阻止本机 DNS 泄露 / DNS via Proxy」。
-
Linux 服务器(clash service):使用 iptables 或 nftables 将 53 端口的流量重定向到 Clash(redir 模式),例如(示例,仅供参考,应按环境调整):
(注意:Windows 下用 TUN,Linux 可用 iptables。操作前备份规则。)
4)禁用系统级的 IPv6 DNS(如果存在问题)
部分系统会优先用 IPv6 的 DNS,导致绕过。临时禁用 IPv6 或确保 Clash 的 DNS 同时监听 IPv6。
5)重启 Clash / 清空本地 DNS 缓存
-
Windows:
ipconfig /flushdns
-
macOS:
sudo killall -HUP mDNSResponder
或对应命令 -
重启 Clash 客户端以加载新 config。
四、如何验证 DNS 泄露是否修复
-
打开(在启用代理并且确保浏览器走代理的情况下):
-
测试步骤:
-
先在未启用 Clash 时测一次(记录 ISP DNS)
-
启用 Clash(并完成上面配置)后再测一次。
-
若显示的 DNS 提供商变成 Cloudflare/Google/Quad9(或你配置的上游),且不是原 ISP,则无泄露。
-
也可打开开发者工具看网络请求,或使用
dig @127.0.0.1 example.com
手动测试。
-
五、常见坑与解决方法
-
浏览器自带 DoH 绕过代理:Chrome/Firefox 的 DoH 若设置为直接到 DoH 服务器,可能绕过系统代理。关闭或设置为“由操作系统决定”/指向与 Clash 相同的上游。
-
某些应用硬编码 DNS(例如某些插件、系统服务):需用 TUN 或 iptables 强制拦截。
-
Clash 未监听 0.0.0.0 导致无法从其它应用访问:确保
listen
配置正确并与系统 DNS 设置一致。 -
Windows 有 DNS over HTTPS 客户端(Windows 10/11):检查系统 DoH 设置,避免绕过 Clash。
-
端口被占用(53):如果占用,Clash 监听失败,可改用例如
1053
并用重定向规则把 53 转到 1053。
六、示例:完整 minimal DNS 配置(Clash config.yaml 片段)
记得把 listen
与系统 DNS 指向一致。
分享
你的反应是什么?






