系统代理像贴在门口的一张告示,只有肯看告示的程序才会照做,浏览器通常会读,终端命令和一些游戏则不会。排查顺序是:先看客户端内核是否运行,再看系统代理开关和端口是否一致,然后排除浏览器扩展与其他软件的覆盖,最后判断是不是程序本身不走系统代理,必要时改用 TUN。
系统代理无效,是用客户端的人最常撞上的墙:右下角明明显示“已连接”,浏览器却转圈,或者某个软件依旧报网络错误。这时候最容易的反应是换节点、换订阅,其实多半问题不在节点,而在“流量根本没交给客户端”。这篇按从简到繁的顺序排查,每一步都说明为什么这样做,帮你尽快锁定出问题的那一层。
先判断:问题出在哪一层
系统代理这条链路上,至少有四个环节,任何一个断了,都会表现为“开了没反应”:
| 环节 | 它负责什么 | 出问题时的表现 |
|---|---|---|
| 客户端内核 | 真正处理连接 | 客户端显示异常,或根本没启动 |
| 系统代理设置 | 告诉系统把流量交到哪个地址和端口 | 开关没开,或端口填错 |
| 应用程序 | 愿不愿意读取系统代理 | 浏览器能用,某个软件不能用 |
| 节点与订阅 | 出口是否可用 | 全部网站都打不开,或只有特定网站不通 |
先把问题定位到某一层,再动手,比一股脑重装高效得多。
排查顺序:从简到繁
按下面的表,一步一步来,每步确认之后再做下一步:
| 步骤 | 检查什么 | 为什么这样做 |
|---|---|---|
| 1 | 客户端有没有真正跑起来,日志有没有报错 | 内核没起来,后面全是白查 |
| 2 | 系统代理开关是否打开 | 最常见的原因,最容易漏掉 |
| 3 | 系统代理里的地址和端口,跟客户端里的设置是否对得上 | 端口被改过,流量就送错了地方 |
| 4 | 换一个浏览器,或关闭浏览器扩展 | 排除扩展覆盖了系统设置 |
| 5 | 换一个节点,并切换到全局模式试一下 | 排除节点和规则的问题 |
| 6 | 确认是不是程序本身不读系统代理 | 浏览器能上而某软件不行时,多半是这一类 |
系统代理无效的常见原因
开关没打开,或被其他软件改回去
有些客户端启动时不会自动打开系统代理,需要手动打开。还有一种情况:其他网络软件、安全软件或公司管理工具,会在后台把系统代理改回去,让界面上的开关和真实状态不一致。检查时,别光盯着客户端里的开关,直接去系统的代理设置页面看实际值。
端口不一致
客户端通常监听一个本地端口,系统代理要指向同一个端口。如果你改过端口,或者客户端因端口冲突自动换了端口,而系统设置里还是旧的,流量就会送到一个没人接收的地方。端口占用的排查,读 代理端口被占用怎么办。
浏览器扩展覆盖了系统设置
一些浏览器扩展会自己接管代理设置,优先级高于系统代理。表现是:别的浏览器能用,这个浏览器不行。临时禁用扩展,或者换一份全新的浏览器用户配置,就能验证。
程序不读取系统代理
这是最容易被误解的一类。系统代理只是一份“公开的约定”,程序愿不愿意读,完全由它自己决定:
- 多数主流浏览器会读;
- 命令行工具默认不读,通常要靠环境变量;
- 一些游戏和客户端软件使用自己的网络栈,直接绕过系统设置;
- 部分有些程序自带代理选项,需要单独配置。
遇到这类情况,读 有些 App 不走代理。
退出后代理残留
客户端异常退出时,可能来不及把系统代理清除,于是系统一直指向一个已经没有监听者的端口,表现为“所有网页都打不开”。到系统代理设置里手动关掉,或重新开一次客户端,再点退出即可。
怎么看系统里实际生效的代理值
别只相信客户端里的开关。在 Windows 上,可以打开系统设置里的“网络和 Internet”,进入“代理”页面,查看“使用代理服务器”是否开启,以及地址和端口是什么;在 macOS 上,可以到网络设置的“代理”标签页里查看。把看到的地址和端口,同客户端界面标出的本地端口逐字对照,对不上就是第 3 步的问题。
自己验证:几个快速测试
下面几个小测试,能帮你快速确认问题在哪:
- 随便打开一个国内网站,如果也打不开,说明是系统代理指向了错误的地方,先关闭系统代理再试;
- 换另一个浏览器去访问同一个网站,对比结果,判断是否为扩展或浏览器配置的问题;
- 在客户端里切换到全局模式,再访问,判断是否为规则分流的问题,规则相关见 Clash 规则模式怎么选;
- 换一个节点访问,判断是否为节点本身的问题;
- 对不能用的那个软件,查它的设置里有没有“代理”选项。
每次只改一个变量,改完记下结果,这样才能真正定位。
什么时候该改用 TUN
如果排查下来,确认是个别程序无视系统代理,又无法在程序内单独设置,可以考虑 TUN 模式:它在网络层接管流量,覆盖面更广。但要有心理准备:它通常需要更高权限,也更容易与其他 VPN、安全软件冲突。原理和取舍见 TUN 模式是什么意思。具体客户端上的开启步骤,以 Clash Verge Rev Windows 教程 为例,可以对照着做。
什么时候该联系客服,带什么信息
如果你确认客户端、系统代理、浏览器都没问题,换了多个节点仍然全部不通,才需要联系机场客服。联系时带上这些信息:
| 要带的信息 | 为什么有用 |
|---|---|
| 使用的客户端和系统 | 帮对方判断是否是客户端兼容问题 |
| 订阅更新时间和更新结果 | 判断订阅是否正常 |
| 出问题的时间段 | 对方可以对照后台状态 |
| 你已经做过的排查 | 避免重复让你做同样的事 |
| 日志里的报错信息 | 最直接的线索 |
不要把订阅链接直接贴在公开群里,保管办法见 订阅链接怎么保护。
预防:让问题少发生
- 养成正常退出客户端的习惯,避免系统代理残留;
- 不随意改客户端的默认端口;
- 同一时间只运行一个负责代理的软件,避免互相覆盖设置;
- 需要代理的软件,优先在软件内单独设置;
- 记下一次成功配置的状态,出问题时可以对照。
下一步:按你的情况继续
如果你排查后发现是节点问题,可以读 机场连不上怎么办;如果还没选好机场,用 选机场向导 按需求筛一遍,再看 机场推荐榜 核对资料。系统代理无效这类问题,大多数时候一步步排查就能解决,不必急着换服务商。
- 本文给出通用的排查顺序,各系统、各客户端的菜单叫法有差异,请以你所用版本为准。
- 本文无法判断你的订阅或节点本身是否可用,需要结合订阅排查文章一起看。
- 不提供任何绕过平台限制的方法,也不涉及具体机场的服务质量。
资料里明确写了支持 Clash 的几家
把 Clash 写进客户端栏的品牌很少。没写不等于不能用,多数机场都能给 Clash 格式的订阅,只是档案里找不到可以核对的说法。
看 Clash 上手手册 → 数据来自机场档案,价格以官网结账页为准。
这篇的几个常见问题
客户端显示已连接,为什么浏览器还是打不开?
已连接只说明客户端内核在运行,并不说明系统代理已经把浏览器的流量交了过来。常见原因有:系统代理开关没打开、端口号与客户端不一致、被浏览器扩展覆盖、当前节点本身不可用。先看系统代理设置里的地址和端口,再换一个节点验证。
浏览器能上,但某个软件不行,是为什么?
原因在于系统代理只算一个“请遵守”的约定,不是强制。很多软件使用自己的网络栈,不读取系统代理设置,所以仍然直连。解决办法是在软件内单独设置代理,或者开启 TUN 模式,把更多程序的流量也拦下来。
关闭客户端之后,所有网页都打不开了,怎么办?
这多半是客户端没有正常退出,系统代理设置还残留着,仍然指着一个空无一人的端口。到系统的代理设置里把代理关掉,或者重新开一次客户端,再点退出,系统代理就会被清除,网页即可恢复。
系统代理和 TUN 该怎么选?
平时刷网页,系统代理已经够了,设置简单,冲突少。只有当你需要接管不读系统设置的程序,比如命令行工具或部分游戏时,才考虑 TUN,但它需要更高权限,跟别的软件抢网卡的机会也更多。