把本机模式与下游设备策略分开理解
设备页的“规则 / 全局 / 直连”只影响经 TUN 或本机 mixed-port 进入 OpenSurge 的 Mac 新连接。它不会改变 mihomo 顶层 rule mode、DHCP/DNS、下游设备 Selector 或已经建立的连接。
回环、LAN / 私网、链路本地、CGNAT 和组播目标会在模式 overlay 之前保持 DIRECT,避免选择远端出口后失去本地管理路径。
- 规则:继续进入 imported 或 managed 网关规则。
- 全局:Mac 本机 TCP 使用专用的隐藏 Selector。
- 直连:符合本机身份的流量使用 DIRECT。
- 全局模式无法确认 UDP 能力时,本机 UDP 会以 REJECT fail closed,不会静默落到其他规则。
只为对应兼容场景启用系统代理协同
本机模式开关不会修改“系统设置 → 网络 → 代理”。如果 SafeDNS、DNS Proxy、内容过滤或其他 Network Extension 让 Mac 在只开 TUN 时出现本机 DNS / 连接异常,可以另行启用“Mac 本机系统代理协同”,临时把 HTTP 和 HTTPS 指向 127.0.0.1:<mixed-port>。
这个选项依赖 TUN,且默认关闭。它只影响遵循 HTTP/HTTPS 系统代理的 Mac 应用;不接管 SOCKS、PAC、自动发现、绕过域名、下游设备,也不覆盖从未进入 OpenSurge 的流量。
理解 fail closed 的设置归属契约
修改宿主机之前,OpenSurge 会解析当前上游 network service,拒绝已有 HTTP/HTTPS 代理、PAC、自动发现或认证代理冲突,并保存原有 HTTP/HTTPS 状态。只有 mihomo/TUN 与网关服务都 ready 后,才会写入临时代理。
Stop 会先恢复快照再停止 mihomo;启动回滚、mihomo 替换失败与 interrupted runtime 恢复也遵循同一顺序。接管期间手工修改的 HTTP/HTTPS 设置会在恢复时被原快照替换,因此不要把这个开关当作通用系统代理编辑器。
# Replace Wi-Fi if the upstream network service uses another name.
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getautoproxyurl "Wi-Fi"
networksetup -getproxyautodiscovery "Wi-Fi"用新连接和停止恢复来验收
切换规则、全局或直连后,应重新发起请求,再通过“连通性”或“连接”查看命中规则与真实 outbound。Control Service 发起的连通性探测属于 Mac 本机 mixed-port 证据,不能证明下游设备路径。
验证系统代理协同时,先记录启动前 HTTP/HTTPS 状态,复现 TUN-only 应用异常,再启用开关并验证目标应用;停止 OpenSurge 后还要确认原代理状态已经恢复。开关关闭时的普通 TUN 测试不能证明这个兼容场景。
FAQ
改变网络前常见的问题
全局模式会让每台下游设备都走同一节点吗?
不会。这里的全局只针对符合条件的 Mac 本机流量;下游设备继续使用自己的设备策略或网关规则。
启用 TUN 时应该始终开启系统代理协同吗?
不应该。只有遵循 HTTP/HTTPS 系统代理的 Mac 应用遇到明确的 TUN-only 或 Network Extension 冲突时才需要开启。
为什么还没启动就可能被拒绝?
因为 OpenSurge 不会覆盖已经启用的 HTTP/HTTPS 代理、PAC、自动发现或认证代理;无法安全取得设置归属时会 fail closed。
