简单来说:Charles 为了抓包,让系统把流量都导给它;但它关闭时,这个"导流"指令没有撤销,系统还在傻傻地把数据往一个不存在的端口送,所以全部失败了。
核心解决方法:手动清除系统代理设置
请按照以下步骤操作,通常第一步就能解决:
方法一:通过系统设置清除代理(最常用)
-
打开 系统设置。
-
进入 网络。
-
选择你正在使用的网络连接(如 Wi-Fi 或 以太网 ),点击旁边的 详细信息...。
-
在左侧找到并点击 代理。
-
你会看到几个代理选项(如 网页代理(HTTP) 、安全网页代理(HTTPS) 等)。确保所有这些选项的勾选都已取消。
-
点击 好 保存设置,然后可能需要点击 应用。
方法二:重启网络服务(如果方法一无效)
-
在 系统设置 > 网络 中。
-
同样选择你的网络连接。
-
点击底部三个点
...或齿轮图标,选择 断开服务 ,等待几秒后,再选择 连接服务。
方法三:通过终端命令彻底重置(终极方案)
如果上面都不行,可以尝试重置网络配置。注意:这会清空所有网络偏好设置(包括Wi-Fi密码),请谨慎操作。
-
打开 终端。
-
依次输入以下命令(每输入一行按一次回车,需要输入开机密码):
bash
sudo ifconfig en0 down sudo route flush sudo ifconfig en0 up(
en0通常是无线网卡,如果你用的是有线,可能是en1或其他,可以在网络设置中查看你的活跃接口名称)。 -
如果还不行,可以尝试重置更底层的配置:
bash
sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder
方法四:检查 Charles 是否完全退出
-
打开 活动监视器 (在
应用程序 > 实用工具里)。 -
在搜索栏输入
charles。 -
如果发现有 Charles Proxy 或
charles相关进程仍在运行,强制退出它们。 -
然后再次尝试 方法一。
方法五:重启 Mac
这是最简单粗暴但往往最有效的方法,可以清除所有临时状态和残留的代理设置。
如何避免未来再次出现?
-
正确关闭 Charles :在退出 Charles 前,先确保 Proxy > macOS Proxy 菜单项是未勾选状态(即关闭了系统代理),然后再退出 Charles 软件。
-
使用 Charles 的自动恢复功能 :在 Charles 的
Proxy > Proxy Settings... > Mac OS X标签页中,可以设置 Charles 退出时自动还原代理设置。请检查这个选项是否已启用。 -
考虑使用浏览器插件 :如果只是需要抓取浏览器流量,可以使用 Charles 提供的浏览器插件(如
SwitchyOmega等)进行手动代理切换,而不必设置全局系统代理。
重要提示
如果你在 Charles 中曾经启用过 SSL Proxying (SSL代理),并且安装了 Charles 的根证书,那么在解决网络连接问题后,你的 HTTPS 访问应该是正常的。如果出现证书警告,可能需要重新信任一下 Charles 的证书(在 钥匙串访问 中,找到 Charles Proxy... 证书,双击打开,在"信任"部分选择"始终信任")。
按照 方法一 > 方法四 > 方法五 的顺序尝试,99% 的问题都能解决。希望你的网络尽快恢复!