Clash 退出后电脑仍无法上网?Windows 与 macOS 恢复系统代理逐步操作
很多人习惯让 Clash 在开启时写入系统代理或下发 PAC,一旦客户端退出、崩溃或被强制结束,操作系统里的开关有时仍停留在「使用代理服务器」或「自动配置脚本」状态。浏览器会继续把流量送到 127.0.0.1:7890 一类本地端口,而监听进程已经不在,于是表现为整台电脑像断网。这与订阅质量或节点延迟无关,本质是代理残留。本文按 Windows 与 macOS 给出可照抄的恢复步骤,并补充环境变量与验证方法,帮助你从「关不掉的老代理」回到恢复默认的直连。
先确认是不是「代理残留」
若现象符合下面任意几条,优先按本文处理系统层代理,再考虑 DNS 或规则问题(后者可参考 《Clash 显示已连接却无法上网?DNS 与 fake-ip 逐项排查》)。
- 关闭 Clash 后,Chrome / Edge / Safari 全部打不开常见网站,但同一台手机走蜂窝数据正常。
- 系统托盘网络图标仍显示已连接,ping 公网 IP 可能通,但 HTTPS 页面超时(流量被错误地导向本地代理端口)。
- 你曾开启「设置为系统代理」「System Proxy」「Set as system proxy」或等价选项,且异常退出前没有先点「关闭系统代理」。
快速自检
在仍打不开的浏览器里打开任意纯 IP 测试页若也失败,多半是系统代理或 PAC;若只有域名失败而 IP 可访问,再并行查 DNS。
Windows:现代「设置」里关闭代理
Windows 10 / 11 上,大多数 Clash 图形客户端改的是 WinHTTP 之上的「用户级」代理开关,入口在系统设置中。
- 打开 设置 → 网络和 Internet → 代理(或搜索「代理设置」)。
- 在「手动设置代理」下,将 使用代理服务器 设为关。
- 若曾使用脚本地址,检查「使用设置脚本」或「使用设置脚本(PAC)」类选项,将其关闭并清空脚本 URL。
- 对「自动检测设置」可保持开启或按你公司网络要求调整;关键是不要让系统再把 HTTP(S) 指向 127.0.0.1 的 Clash 端口。
保存后完全退出浏览器再打开,或新开隐私窗口,避免旧进程缓存代理会话。
Windows:旧版「Internet 选项」与局域网设置
部分企业环境或旧工具仍可能写入「Internet 属性」里的 LAN 设置。若现代设置已关代理但仍异常,可补充检查:
- 运行
inetcpl.cpl打开「Internet 属性」。 - 切到「连接」→「局域网设置」。
- 取消勾选「为 LAN 使用代理服务器」以及「使用自动配置脚本」中与 Clash 相关的条目。
- 确定并重启浏览器验证。
Windows:WinHTTP 代理(与系统设置不同步时)
少数场景下,系统「设置」显示关闭,但 WinHTTP 仍保留代理,影响部分系统组件或依赖 WinINET 栈之外的服务。可在以管理员身份运行的命令提示符中执行:
netsh winhttp show proxy
netsh winhttp reset proxy
第一条用于查看当前 WinHTTP 代理;第二条将其恢复为直连。执行后再次尝试访问网页。
注意
若你所在环境由组策略统一下发代理,reset 后可能会被策略重新写回;此时需要联系管理员,而不是反复本地重置。
Windows:终端与「环境变量」里的 HTTP_PROXY
Clash 本身通常不写用户环境变量,但教程或脚本可能让你手动 export 过 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY。这些变量在用户环境变量或 .bashrc / PowerShell profile 里持久化后,会导致 git、npm、curl 在 Clash 关闭后仍访问 127.0.0.1。完整对齐方式见 《为 Clash 配置 HTTP 代理与 Git 代理》;此处只列恢复默认要点:
- 在「系统属性」→「环境变量」中删除或清空用户/系统中的
HTTP_PROXY、HTTPS_PROXY、ALL_PROXY(保留NO_PROXY与否按你需要)。 - 关闭并重新打开终端、IDE 与 Git GUI,使新环境生效。
macOS:系统设置中关闭网页代理与 PAC
在 macOS Ventura 及更新版本,路径一般为 系统设置 → 网络 → 选择当前活跃服务(Wi‑Fi 或以太网)→ 详细信息 → 代理。
- 关闭「网页代理(HTTP)」「安全网页代理(HTTPS)」「SOCKS 代理」等开关。
- 若使用「自动代理配置」,关闭并删除指向 Clash 本地 PAC 的 URL(常见为
http://127.0.0.1:...)。 - 点「好」并应用,然后退出并重启浏览器。
若你使用 Clash Verge 等客户端,也可在客户端内寻找「关闭系统代理」或「恢复系统环境」类按钮,与系统设置互为备份。首次安装与权限说明见 《Clash Verge Rev macOS 首次配置》。
macOS:Shell 配置文件中的代理导出
与 Windows 类似,检查 ~/.zshrc、~/.bash_profile 等是否含有 export http_proxy=... 行。注释或删除后执行 source ~/.zshrc(或重开终端)。使用 IDE 内置终端时也要重启 IDE,否则会继承旧环境。
理解 PAC 与「自动配置」为何容易残留
PAC(Proxy Auto-Config)是一段 JavaScript,由系统下载或指向本地文件,用来动态决定走代理还是直连。Clash 开启「系统代理 + PAC」时,系统可能只记下 PAC 的 URL;客户端退出后,PAC URL 仍有效,但提供 PAC 的本地服务已停,结果往往是浏览器长时间卡在「正在解析代理」。因此关闭自动代理配置与关闭手动代理同样重要,不要只关其中一项。
验证:如何确认已经回到直连
按平台完成上述步骤后,建议用最小步骤验证,避免「以为关了其实还有一层」:
- 用系统自带浏览器访问一个纯 HTTPS 的常用站点(避免仅依赖扩展)。
- 在终端执行
curl -I https://example.com(或你信任的测试域名),确认不再出现连接 127.0.0.1 相关错误。 - 若使用 TUN 模式,退出 Clash 后还应确认虚拟网卡或未路由流量未单独阻断——TUN 与系统代理是不同层次;若曾仅依赖 TUN,关闭客户端后一般应自动卸载路由,异常时可重启一次网络服务或整机。
Windows 上 TUN 与基础安装流程可参考 《Clash for Windows 安装与配置》。
常见问题
只有某一个浏览器上不了网
检查该浏览器是否安装了独立「代理扩展」或「SwitchyOmega」类插件并仍指向本地端口;扩展优先级有时高于系统代理关闭状态。
WSL 里仍然走不通
Windows 宿主代理关闭后,WSL2 内可能仍配置了旧 http_proxy;在 Linux 子系统 shell 与 /etc/environment 中同步清理,并参考 《WSL2 与 Clash 镜像网络》。
公司电脑按本文仍被改回代理
可能是 MDM 或组策略在登录后重写代理。需要 IT 放行个人调试或提供合规的例外策略。
实操检查清单(可收藏)
- Windows:设置 → 网络 → 代理 → 关闭手动代理与 PAC。
- Windows:必要时
inetcpl.cpl→ LAN 设置 → 取消代理与自动脚本。 - Windows:管理员
netsh winhttp reset proxy。 - macOS:网络 → 代理 → 关闭 HTTP/HTTPS/SOCKS 与自动代理配置。
- 清理用户环境变量与 shell 配置中的
*_PROXY。 - 重启浏览器与终端,用 HTTPS 与
curl验证。
下次如何减少「残留」概率
养成退出 Clash 前在客户端内关闭「系统代理」的习惯;异常崩溃后第一时间按本文检查系统设置。需要稳定分流时再打开客户端并重新启用系统代理即可。