Clash 系统代理打开了,为什么有些软件还是不走代理?
很多新手使用 Clash 类客户端时,都会遇到一个很常见的问题:明明已经打开了Clash系统代理,浏览器访问也正常,但某些软件还是不走代理,甚至完全没有变化。遇到这种情况,不一定是 Clash 坏了,也不一定是节点问题。更常见的原因是:系统代理本身有工作范围,并不是所有软件都会自动读取它。
想搞清楚这个问题,先要理解“系统代理到底管什么”。
一、系统代理不是全局接管所有流量
在很多 Clash 客户端里,都会有一个“系统代理”开关。打开后,客户端会把系统的代理地址设置成本机端口,例如 127.0.0.1:7890。这样一来,支持系统代理的软件,就会把网络请求先交给 Clash,再由 Clash 按规则决定直连、代理或拒绝。
但这里的关键是“支持系统代理的软件”。系统代理更像是系统提供的一份网络设置建议,而不是强制所有软件都必须遵守的网络规则。愿意读取系统代理的软件会跟着走,不读取的软件依然可能直接连接。
所以,打开 Clash系统代理后,浏览器能正常使用,但某些客户端、游戏启动器、命令行工具或开发软件没有变化,是比较常见的情况。
二、哪些软件可能不读取系统代理?
最常见的是一些独立网络栈的软件。它们不会使用系统默认代理,而是在程序内部自己处理网络连接。这类软件即使系统代理已经开启,也可能继续直连。
例如,部分桌面客户端、游戏启动器、下载工具、开发工具、同步软件,可能有自己的代理设置入口。如果软件内部没有设置代理,它就不会自动跟随 Clash。
还有一些软件只读取特定类型的代理。例如,它可能只支持 HTTP 代理,不支持 SOCKS5;也可能只支持手动填写代理地址,不读取系统代理。此时即使 Clash 正常运行,软件也可能无法按预期连接。
另外,部分应用会出于安全、性能或兼容性考虑,绕过系统代理。比如某些银行类、办公类、本地网络类软件,可能会优先使用自己的连接方式。这不代表 Clash 配置一定有问题,而是软件本身没有把请求交给系统代理。
三、浏览器为什么通常能走代理?
浏览器是最容易跟随系统代理的软件之一。Chrome、Edge、Safari 等主流浏览器通常会读取系统代理设置,所以当 Clash 开启系统代理后,浏览器访问大多会立刻生效。
这也是很多新手误判的原因:浏览器能用,就以为所有软件都应该能用。但实际上,浏览器只是比较“听系统设置”的软件,不代表其他应用也一样。
如果浏览器正常,而某个软件不走代理,说明 Clash 的基础功能大概率是正常的。此时重点应该放在那个软件是否支持系统代理、是否需要单独设置代理、是否被规则或 DNS 影响,而不是马上重装 Clash。
四、命令行软件和浏览器有什么不同?
命令行工具是新手最容易踩坑的地方。很多开发者会发现,浏览器已经能走 Clash,但终端里的某些工具仍然无法按预期连接。
原因是很多命令行工具不会自动读取图形界面的系统代理设置。它们更常依赖环境变量、工具自身配置或手动指定代理。例如,有些包管理器、代码工具、下载命令,需要单独配置代理地址,才会把请求发到 Clash 的本地端口。
还有些命令行工具只读取当前终端会话中的代理设置。也就是说,你在系统里打开了代理,但终端工具未必知道;你在一个终端窗口里设置了代理,另一个新窗口也未必继承。
所以,浏览器和命令行软件的差异可以这样理解:浏览器更习惯听系统代理,命令行工具更习惯听自己的配置。
五、先确认 Clash 本身是否正常
排查时不要一上来就修改复杂设置。可以先按顺序确认几个基础点。
第一,确认 Clash 客户端正在运行,并且当前配置已经启用。导入订阅不等于已经启用配置,很多客户端需要手动选择当前配置文件。
第二,确认系统代理开关已经打开。部分客户端启动后不会自动开启系统代理,需要用户手动点击。
第三,确认端口是否一致。如果 Clash 的 HTTP 或 mixed-port 是 7890,但系统代理或软件里填成了其他端口,请求就不会进入 Clash。
第四,确认浏览器是否能正常按规则访问。如果浏览器正常,说明客户端、节点和基础系统代理大概率没有问题。
六、再检查目标软件的代理设置
如果只有某个软件不走代理,下一步就应该检查这个软件本身。
先看它是否有“网络设置”“代理设置”“Proxy”“HTTP Proxy”“SOCKS Proxy”等选项。如果有,可以尝试手动填写本机代理地址,例如 127.0.0.1 加上 Clash 对应端口。需要注意,软件要求 HTTP 就填 HTTP 端口,要求 SOCKS5 就填 SOCKS5 端口,不要混用。
如果软件没有代理设置,就要看它是否支持读取系统代理。有些软件文档会说明是否跟随系统代理。如果既不读取系统代理,也没有手动代理设置,那么普通系统代理就很难直接影响它。
此时不要误以为“Clash 没开成功”。更准确地说,是这个软件没有把流量交给 Clash。
七、检查规则模式是否影响连接
有些软件其实已经走了 Clash,但因为规则分流不同,看起来像是“没有走代理”。例如,规则把某些域名设置为 DIRECT,客户端就会让它直连;规则把某些请求 REJECT,软件可能表现为连接失败。
排查时可以临时切换模式测试。比如规则模式下软件不正常,可以短时间切到全局模式,看情况是否变化。如果全局模式下生效,说明问题可能和规则分流有关;如果全局模式也没有变化,说明软件可能根本没有走系统代理。
测试完成后,建议再切回日常使用的规则模式。全局模式适合排查,不一定适合长期使用。
八、DNS 也可能造成“像没走代理”的错觉
有些软件不正常,并不是代理没有生效,而是 DNS 解析出了问题。表现可能是软件一直加载、提示无法连接、部分功能可用但登录失败。
Clash 的 DNS 设置会影响域名解析和规则匹配。如果 DNS 配置不合理,某些应用可能解析到不合适的地址,或者请求还没进入正确的连接阶段就失败了。
新手不建议一开始就大改 DNS。可以先更新订阅、重启客户端,查看日志里是否有 DNS failed、lookup failed、no such host 等提示。如果确实怀疑 DNS 问题,再在备份配置后逐步调整。
九、什么时候需要高级网络接管方式?
如果你确认 Clash 正常、系统代理正常、浏览器正常,但某些软件始终不读取系统代理,也没有手动代理设置,这时才需要考虑更高级的网络接管方式,例如 TUN 模式。
TUN 模式可以让 Clash 接管更广泛的系统流量,对一些不遵循系统代理的软件更有效。但它也更复杂,涉及虚拟网卡、系统权限、DNS、路由和防火墙。开启不当可能导致断网、局域网访问异常或部分应用连接失败。
所以,新手不建议一开始就打开 TUN。更稳妥的顺序是:先用系统代理确认基础功能正常,再检查软件自身代理设置,最后才考虑 TUN 这类高级方式。
十、建议的新手排查顺序
遇到“系统代理开了,但某些软件不走代理”,可以按这个顺序排查:
先看浏览器是否正常。如果浏览器正常,说明 Clash 基础运行大概率没问题。
再看目标软件是否支持系统代理。如果不支持,就找它自己的代理设置。
然后确认端口是否填对。HTTP、SOCKS5、mixed-port 的用途不同,不要随便混填。
接着切换规则模式和全局模式做短时间对比,判断是不是规则分流造成的。
最后再考虑 DNS、日志和 TUN 模式。不要一上来就改配置文件,更不要同时修改多个设置。
系统代理打开后,并不意味着所有软件都会自动走 Clash。它能影响哪些软件,取决于软件是否读取系统代理、是否支持手动代理、使用什么网络连接方式。对新手来说,理解这一点很重要:浏览器能走代理,只能说明基础配置正常;某个软件不走代理,往往要回到软件自身设置、规则分流、DNS 和高级接管方式中逐步排查。