Skip to content

iOS:Wi-Fi 仍关联但不可用时,主动回退到蜂窝网络 #59

Description

@cicae

需求

希望 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。这是能力请求,不对应某一个具体版本上的崩溃。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions