一直有个疑问,代理规则差不多的情况下,Mac 上 QuantumultX 开启时就可以正常使用各种海外 AI 服务。
而 Shadowrocket 打开后,Claude Code 在终端或者客户端总爱提示我为不支持的区域,由于近期一家常用的机场服务发来邮件说不再支持 QuantumultX 了,迫使我必需面对这个问题。
原来,是因为 Mac 版本的 Shadowrocket 打开之后,默认的情况下只是在 127.0.0.1:1082 提供了一个 HTTP 代理端口,不会接管任何系统流量,这意味着浏览器里访问一般没有问题,但非浏览器的系统环境就不行了。
这个时候,只需要打开设置 - 隧道,开启「强制路由」即可,其他的不要动,比如:包括所有网络,包括本地网络、包括 APNs、包括蜂窝网络。
我错怪 Shadowrocket 了。
附一张隧道设置里各选项的含义,方便理解为什么只开强制路由就够了,不过,这些都是我和 AI 鼓捣出来的,有可能会出错哦:
| 选项 | 含义 |
|---|---|
| 强制路由 | 让隧道的路由规则优先于任何本地自定义路由。开启后,终端等 CLI 工具的流量也会进隧道,由 Shadowrocket 规则决定走代理还是直连 |
| 包括所有网络 | 将所有网络流量都通过隧道路由(某些必要的系统服务除外)。比强制路由更激进 |
| 包括本地网络 | 将局域网流量也纳入隧道,会影响 AirPlay、AirDrop、CarPlay 等本地服务 |
| 包括 APNs | 将苹果推送通知服务(APNs)的流量也纳入隧道,一般不需要开 |
| 包括蜂窝服务 | 将蜂窝网络相关流量(VoLTE、Wi-Fi 通话、MMS 等)纳入隧道,手机网络才有意义 |