需求
希望 iOS 客户端在「Wi-Fi 仍然关联、但实际已经不可用」时,自己把出站切到蜂窝数据,让代理和直连都保持可用,而不是等 iOS 把默认路由从 Wi-Fi 切走。
系统自带的无线局域网助理在这种场景里经常很慢,有时一直不切换。Network Extension 接管流量之后更明显:状态栏还显示着 Wi-Fi,网络已经断了很久。
典型场景
蜂窝数据开着,同时连着一个实际上网的 Wi-Fi,例如:
- 路由器还在发 Wi-Fi,上行已经断了
- 门户认证失败或过期
- 信号还在,网关或上游不通
希望客户端探测到当前 Wi-Fi 不可用后,出站改走蜂窝。Wi-Fi 恢复可用后再回到 Wi-Fi,避免一直消耗蜂窝流量。
这个行为会使用蜂窝流量,做成可关闭的开关即可,默认关闭也可以。
可参考的现有语义
不必照搬实现,语义上接近这两处:
- Surge iOS 的 Wi-Fi 助理(
wifi-assist):Wi-Fi 不佳时用蜂窝建立连接。混合网络(all-hybrid):同时向 Wi-Fi 和蜂窝发起连接。子网设置里还可以按网络覆盖 cellular-fallback。
- sing-box 1.11 起官方图形客户端的
network_strategy: fallback(需要 auto_detect_interface):连接默认或首选网络,不可用或超时时尝试回退网络;进入一段时间的快速回退,首选网络恢复后退出。文档:https://sing-box.sagernet.org/zh/configuration/shared/dial/
和已有讨论的差别
现有 issue 里没有同一条需求。最接近的是 #42:系统已经完成 Wi-Fi 与蜂窝切换之后,Tunnel 偶尔异常,希望自动重连。那是切换发生之后的恢复。
这里要的是更前面一步:Wi-Fi 关联还在,系统还没有切走默认路由,由客户端自己选择蜂窝接口把流量发出去。
#40 讨论的是锁屏唤醒后 Hysteria2 的恢复,也不是这一条。
环境
平台:iOS。这是能力请求,不对应某一个具体版本上的崩溃。
需求
希望 iOS 客户端在「Wi-Fi 仍然关联、但实际已经不可用」时,自己把出站切到蜂窝数据,让代理和直连都保持可用,而不是等 iOS 把默认路由从 Wi-Fi 切走。
系统自带的无线局域网助理在这种场景里经常很慢,有时一直不切换。Network Extension 接管流量之后更明显:状态栏还显示着 Wi-Fi,网络已经断了很久。
典型场景
蜂窝数据开着,同时连着一个实际上网的 Wi-Fi,例如:
希望客户端探测到当前 Wi-Fi 不可用后,出站改走蜂窝。Wi-Fi 恢复可用后再回到 Wi-Fi,避免一直消耗蜂窝流量。
这个行为会使用蜂窝流量,做成可关闭的开关即可,默认关闭也可以。
可参考的现有语义
不必照搬实现,语义上接近这两处:
wifi-assist):Wi-Fi 不佳时用蜂窝建立连接。混合网络(all-hybrid):同时向 Wi-Fi 和蜂窝发起连接。子网设置里还可以按网络覆盖cellular-fallback。network_strategy: fallback(需要auto_detect_interface):连接默认或首选网络,不可用或超时时尝试回退网络;进入一段时间的快速回退,首选网络恢复后退出。文档:https://sing-box.sagernet.org/zh/configuration/shared/dial/和已有讨论的差别
现有 issue 里没有同一条需求。最接近的是 #42:系统已经完成 Wi-Fi 与蜂窝切换之后,Tunnel 偶尔异常,希望自动重连。那是切换发生之后的恢复。
这里要的是更前面一步:Wi-Fi 关联还在,系统还没有切走默认路由,由客户端自己选择蜂窝接口把流量发出去。
#40 讨论的是锁屏唤醒后 Hysteria2 的恢复,也不是这一条。
环境
平台:iOS。这是能力请求,不对应某一个具体版本上的崩溃。