故障排查 2026-04-19 · 约 15 分钟阅读

Clash 退出后电脑仍无法上网?Windows 与 macOS 恢复系统代理逐步操作

很多人习惯让 Clash 在开启时写入系统代理或下发 PAC,一旦客户端退出、崩溃或被强制结束,操作系统里的开关有时仍停留在「使用代理服务器」或「自动配置脚本」状态。浏览器会继续把流量送到 127.0.0.1:7890 一类本地端口,而监听进程已经不在,于是表现为整台电脑像断网。这与订阅质量或节点延迟无关,本质是代理残留。本文按 WindowsmacOS 给出可照抄的恢复步骤,并补充环境变量与验证方法,帮助你从「关不掉的老代理」回到恢复默认的直连。

先确认是不是「代理残留」

若现象符合下面任意几条,优先按本文处理系统层代理,再考虑 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 之上的「用户级」代理开关,入口在系统设置中。

  1. 打开 设置网络和 Internet代理(或搜索「代理设置」)。
  2. 在「手动设置代理」下,将 使用代理服务器 设为
  3. 若曾使用脚本地址,检查「使用设置脚本」或「使用设置脚本(PAC)」类选项,将其关闭并清空脚本 URL。
  4. 对「自动检测设置」可保持开启或按你公司网络要求调整;关键是不要让系统再把 HTTP(S) 指向 127.0.0.1 的 Clash 端口

保存后完全退出浏览器再打开,或新开隐私窗口,避免旧进程缓存代理会话。

Windows:旧版「Internet 选项」与局域网设置

部分企业环境或旧工具仍可能写入「Internet 属性」里的 LAN 设置。若现代设置已关代理但仍异常,可补充检查:

  1. 运行 inetcpl.cpl 打开「Internet 属性」。
  2. 切到「连接」→「局域网设置」。
  3. 取消勾选「为 LAN 使用代理服务器」以及「使用自动配置脚本」中与 Clash 相关的条目。
  4. 确定并重启浏览器验证。

Windows:WinHTTP 代理(与系统设置不同步时)

少数场景下,系统「设置」显示关闭,但 WinHTTP 仍保留代理,影响部分系统组件或依赖 WinINET 栈之外的服务。可在以管理员身份运行的命令提示符中执行:

netsh winhttp show proxy
netsh winhttp reset proxy

第一条用于查看当前 WinHTTP 代理;第二条将其恢复为直连。执行后再次尝试访问网页。

注意

若你所在环境由组策略统一下发代理,reset 后可能会被策略重新写回;此时需要联系管理员,而不是反复本地重置。

Windows:终端与「环境变量」里的 HTTP_PROXY

Clash 本身通常不写用户环境变量,但教程或脚本可能让你手动 export 过 HTTP_PROXYHTTPS_PROXYALL_PROXY。这些变量在用户环境变量.bashrc / PowerShell profile 里持久化后,会导致 git、npm、curl 在 Clash 关闭后仍访问 127.0.0.1。完整对齐方式见 《为 Clash 配置 HTTP 代理与 Git 代理》;此处只列恢复默认要点:

  • 在「系统属性」→「环境变量」中删除或清空用户/系统中的 HTTP_PROXYHTTPS_PROXYALL_PROXY(保留 NO_PROXY 与否按你需要)。
  • 关闭并重新打开终端、IDE 与 Git GUI,使新环境生效。

macOS:系统设置中关闭网页代理与 PAC

在 macOS Ventura 及更新版本,路径一般为 系统设置网络 → 选择当前活跃服务(Wi‑Fi 或以太网)→ 详细信息代理

  1. 关闭「网页代理(HTTP)」「安全网页代理(HTTPS)」「SOCKS 代理」等开关。
  2. 若使用「自动代理配置」,关闭并删除指向 Clash 本地 PAC 的 URL(常见为 http://127.0.0.1:...)。
  3. 点「好」并应用,然后退出并重启浏览器。

若你使用 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 放行个人调试或提供合规的例外策略。

实操检查清单(可收藏)

  1. Windows:设置 → 网络 → 代理 → 关闭手动代理与 PAC。
  2. Windows:必要时 inetcpl.cpl → LAN 设置 → 取消代理与自动脚本。
  3. Windows:管理员 netsh winhttp reset proxy
  4. macOS:网络 → 代理 → 关闭 HTTP/HTTPS/SOCKS 与自动代理配置。
  5. 清理用户环境变量与 shell 配置中的 *_PROXY
  6. 重启浏览器与终端,用 HTTPS 与 curl 验证。

下次如何减少「残留」概率

养成退出 Clash 前在客户端内关闭「系统代理」的习惯;异常崩溃后第一时间按本文检查系统设置。需要稳定分流时再打开客户端并重新启用系统代理即可。

立即免费下载 Clash,开启流畅上网新体验

从代理残留回到直连

按平台关闭系统代理与 PAC,清理环境变量,再验证网络。

下载 Clash