macOS 系统代理修复:退出代理客户端后无法上网的解决方法
本文要点
- 退出客户端后无法上网,多半是系统代理仍指向已关闭的本地端口。
- 到系统设置的网络详细信息里,把代理页的各项开关全部关闭即可恢复。
- 用过 TUN 模式或改过 DNS 的,还要检查 DNS 服务器和终端里的代理环境变量。
先判断是不是代理残留
症状通常很典型:退出、崩溃或卸载代理客户端之后,所有网页都打不开,但微信等部分应用还能用,重新打开客户端又恢复正常。
原因是客户端开启系统代理时,把 macOS 的代理设置指向了本机的一个端口(如 127.0.0.1:7890)。客户端没来得及还原就退出了,浏览器仍然把请求发往这个已经无人监听的端口,自然全部失败。
最快的临时办法是重新打开客户端,先关闭系统代理开关,再正常退出。如果客户端已经卸载或打不开,就按下面的方法手动修复。
在系统设置里关闭残留代理
适用于较新的 macOS(系统设置界面):
- 打开「系统设置」→「网络」。
- 点击当前正在使用的网络,例如「Wi-Fi」,再点击已连接网络旁边的「详细信息」。用网线的话选择「以太网」。
- 在左侧选择「代理」。
- 把下面几项开关全部关闭:
| 代理项 | 说明 |
|---|---|
| 自动发现代理 | 一般本来就是关闭的 |
| 自动代理配置 | PAC 方式的代理,部分客户端会用到 |
| 网页代理(HTTP) | 客户端最常设置的一项 |
| 安全网页代理(HTTPS) | 客户端最常设置的一项 |
| SOCKS 代理 | 客户端常同时设置 |
- 点击「好」保存,回到浏览器刷新页面。
较旧的 macOS 路径是「系统偏好设置」→「网络」→ 选中当前网络 →「高级」→「代理」,取消勾选同样的几项后点「好」,再点「应用」。
注意:Wi-Fi 和以太网的代理设置是分开保存的,两种网络都在用的话都要检查一遍。
用终端命令快速关闭
熟悉终端的话,几条命令就能完成同样的操作。下面以名为 Wi-Fi 的网络服务为例:
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
networksetup -setautoproxystate Wi-Fi off
网络服务名称不确定时,先执行 networksetup -listallnetworkservices 查看;名称里带空格的要用引号括起来。执行 scutil --proxy 可以查看当前生效的代理设置,用来确认是否已经清除干净。
关掉代理后仍然无法上网
按可能性从高到低继续检查:
- DNS 被改过:用过 TUN 或增强模式后,个别情况下 DNS 服务器没有还原。在同一个「详细信息」窗口里进入「DNS」,删掉陌生的 DNS 地址(尤其是
127.0.0.1或198.18开头的),让系统使用路由器自动下发的 DNS。相关原理见 DNS解析失败。 - VPN 配置残留:以系统 VPN 方式工作的客户端,会在「系统设置」→「VPN」里留下配置,确认它处于断开状态。
- 终端单独设置过代理:只有终端里的命令连不上时,检查
~/.zshrc里是否写了http_proxy、https_proxy、all_proxy这类环境变量,注释掉后重新打开终端。 - 浏览器插件:浏览器里的代理切换插件会覆盖系统设置,把它切回「系统代理」或「直接连接」。
- 重启网络:关闭再打开 Wi-Fi,或者重启电脑。
反过来:系统代理开不起来
如果问题是客户端里的系统代理开关打不开、勾选后无效,原因一般是客户端的帮助程序没有装好,或者同时运行了两个代理客户端互相覆盖。只保留一个客户端并重新授权,详细步骤见 系统代理无法开启。
平时养成「先关系统代理,再退出客户端」的习惯,可以避免大部分残留问题。客户端本身的用法见 Clash Verge Rev Mac 教程 和 ClashX Meta 教程;首次安装时遇到打不开的提示,看 Apple Silicon安装问题。
常见问题
Mac 关闭代理软件后上不了网怎么办?
打开系统设置,进入网络,点击当前连接的 Wi-Fi 或以太网的详细信息,切到代理页面,把网页代理、安全网页代理、SOCKS 代理和自动代理配置全部关闭,然后点击好保存即可。
为什么退出客户端后系统代理不会自动关闭?
正常退出时客户端会还原系统代理。但如果客户端崩溃、被强制退出,或者电脑直接断电重启,它来不及执行还原,系统代理就会继续指向那个已经没有程序监听的本地端口。
卸载代理客户端前需要做什么?
先在客户端里关闭系统代理和 TUN 模式,再正常退出,最后才删除应用。这样可以让客户端把系统的代理和 DNS 设置还原,避免卸载后出现无法上网的情况。
相关macOS客户端文章
全部Clash Verge Rev Mac 教程:macOS 安装、订阅导入与系统代理设置
Mac 上使用 Clash Verge Rev 的完整流程:按芯片选择 aarch64 或 x64 安装包、处理首次打开的安全提示、导入机场订阅并选择节点、开启系统代理或 TUN 模式、让终端走代理,以及验证代理是否生效和常见问题处理。
ClashX Meta 教程:Mac 菜单栏客户端的安装、托管配置与系统代理
ClashX Meta 是 macOS 上常驻菜单栏的轻量代理客户端,使用 Mihomo 内核。本文说明 ClashX Meta 的下载安装、通过托管配置导入机场订阅、选择节点与出站模式、设置为系统代理,以及验证生效和常见问题的处理。
sing-box Mac 教程:macOS 图形客户端与命令行两种用法详解
Mac 上使用 sing-box 有图形客户端和命令行两种方式。本文说明两者的区别与获取途径、如何添加机场提供的 sing-box 远程配置、启用时的系统授权,以及用 Homebrew 安装命令行版本并运行配置文件的步骤和常见报错。
Apple Silicon 安装代理客户端:arm64 与 x64 选择及已损坏提示的解决
M 系列芯片的 Mac 安装代理客户端时,常遇到安装包选错架构、提示已损坏无法打开、无法验证开发者等问题。本文说明 arm64 与 x64 安装包怎么选,以及通过系统设置放行或用 xattr 清除隔离属性的具体步骤。