system proxy residue detected:关闭客户端后系统代理仍然残留
system proxy residue detected严重程度 High系统代理仍然指向一个已经没有程序监听的本地端口,所有走系统代理的流量因此被扔进黑洞。最可能是代理客户端异常退出时来不及恢复设置;第一步是在系统网络设置里手动关闭代理,恢复直连。
结论
这是一类症状很吓人、修起来却很快的问题:整台电脑突然"断网",但网络图标一切正常。原因是系统代理设置仍指向 127.0.0.1:某端口,而那个端口上的代理程序已经退出——每个走系统代理的请求都在敲一扇没人应门的门。诊断证据非常明确(代理指向的端口无监听),修复也只需要把系统代理关掉。
适用环境
- Windows / macOS / Linux 桌面系统
- 使用"系统代理"模式的所有代理客户端(TUN/虚拟网卡模式不涉及此问题)
一分钟快速判断
三个特征同时出现,基本可以确诊:
- 浏览器打不开任何网站,报错通常是"代理服务器拒绝连接"或
ERR_PROXY_CONNECTION_FAILED; - 代理客户端已经退出(或刚崩溃过、刚强制结束过);
- 不吃系统代理的应用(很多命令行工具、部分游戏)反而正常联网。
第三条是最有辨识度的信号——"浏览器断网而 ping 正常"的组合几乎只有代理残留能造成。
这条错误代表什么
代理客户端启用"系统代理"时,会修改操作系统的全局代理设置,把它指向自己监听的本地端口;正常退出时再把设置改回去。但异常退出没有"改回去"这一步:进程崩溃、被任务管理器强杀、系统断电,都会留下指向空端口的设置。另一种变体是多个代理软件互相覆盖设置,最后退出的那个恢复的是"另一个软件的端口"而不是"无代理"。
ConnProof 如何判断
connproof doctordoctor 输出中与本错误直接相关的两条证据:
- 系统代理:已启用,指向
127.0.0.1:<端口>; - 常见本地代理端口:该端口不在监听列表中。
两条同时成立即判定为残留(doctor 会直接标注"疑似残留,对应 PROXY-002")。如果端口在监听,说明代理程序还活着,问题另有原因——转 proxy connection refused 或 client connected but no internet。
最常见原因
- 客户端异常退出:崩溃、强制结束、系统蓝屏/断电;
- 多个代理软件叠加:A 接管后 B 又接管,退出顺序错乱后设置指向错误端口;
- 卸载残留:卸载程序没有清理系统代理设置;
- PAC 残留:自动配置脚本地址指向已停止的本地服务,症状相同。
Windows 排查步骤
设置 → 网络和 Internet → 代理:把"使用代理服务器"关闭;同一页面检查"自动检测设置"与"使用安装脚本"(PAC),残留的脚本地址一并关闭;- 关闭后浏览器立即恢复即确诊;
- 如需继续使用代理:重新启动原客户端,让它重新接管并在退出时正常恢复;
- 反复出现残留时,检查客户端设置里是否有"退出时恢复系统代理"之类的选项并开启;崩溃频繁则优先升级客户端版本。
macOS 排查步骤
系统设置 → 网络 → 当前网络 → 详细信息 → 代理:关闭"网页代理 (HTTP)"“安全网页代理 (HTTPS)”“SOCKS 代理"三项,以及"自动代理配置";- 注意 macOS 的代理设置按网络服务分开保存——Wi-Fi 和以太网要分别检查;
connproof doctor复测确认"系统代理:未启用"。
Linux 排查步骤
- 桌面环境:GNOME 在
设置 → 网络 → 网络代理中改回"禁用"; - 环境变量:检查 shell 配置文件(
~/.bashrc、~/.zshrc)里是否残留http_proxy/https_proxy导出,注释后重开终端; connproof doctor的"环境代理变量"一项可直接列出当前生效的变量名。
如何区分本地问题和节点问题
这条错误 100% 是本地问题,不涉及任何节点。但要区分它和两个近亲:
| 证据 | 结论 |
|---|---|
| 系统代理开启 + 端口无监听 | PROXY-002(本页,关闭系统代理即修复) |
| 系统代理开启 + 端口有监听 + 拒绝连接 | PROXY-001(客户端活着但不健康) |
| 系统代理关闭仍断网 | 不是代理问题,查基础网络 |
如何减少复发
残留本身修起来只要一分钟,值得多花几分钟降低它的复发频率:
- 规范退出方式:尽量用客户端菜单里的"退出"而不是强制结束进程——恢复系统代理的逻辑只在正常退出路径上执行;
- 只保留一个管理系统代理的软件:两个客户端轮流接管系统代理是残留和错位的最大来源,测试新客户端前先彻底退出旧的;
- 优先考虑 TUN/虚拟网卡模式:这类模式不修改系统代理设置,客户端崩溃后系统自动回到直连,从机制上消灭了残留问题(代价是需要更高权限);
- 崩溃频繁时升级或降级客户端版本:残留是崩溃的后遗症,治本要治崩溃本身,客户端的发布记录里通常能找到对应的修复版本。
仍未解决时收集什么信息
按上述步骤关闭系统代理后仍无法上网,说明问题不在残留。收集:
connproof doctor脱敏输出(含系统代理与端口监听证据);- 操作系统版本;
- 最近安装/卸载过哪些代理类软件;
- 基础网络检测结果(关闭代理后
connproof diagnose 任意常用域名)。
禁止提交:完整订阅链接、密码、验证码、私钥、Token。
重新运行检测
connproof doctor修复后"系统代理"一项应显示"未启用",或指向一个确实在监听的端口。
相关文档
更新记录
- 2026-07-28:规则 v1 发布,收录 Windows/macOS/Linux 三平台恢复步骤。