【问题标题】:iOS VPN configuration keeps disconnecting when on batteryiOS VPN 配置在使用电池时不断断开连接
【发布时间】:2020-02-16 16:38:06
【问题描述】:

我已经使用 NEVPNManager 在我的应用中设置了 IKEv2 VPN 配置。目的是让连接保持活动状态,直到用户将其关闭或被 VPN 服务器终止。为此,我设置了以下配置:

let protocol = NEVPNProtocolIKEv2()
...
protocol.disconnectOnSleep = false

但是,如果 iPhone 使用电池运行,则在设备闲置一段时间后,VPN 仍会断开连接。如果我把它插在充电器上,这似乎不会发生。

我已经研究过设置 OnDemandRules,它会在设备唤醒时重新建立连接,但这会导致另一个问题,即即使 VPN 服务器关闭它,设备也会继续尝试重新连接。有没有更好的方法来实现我正在寻找的规则(保持连接直到用户或服务器关闭它)?

【问题讨论】:

    标签: ios vpn nevpnmanager


    【解决方案1】:

    这个问题不是由 iOS 进入睡眠模式引起的,纯属巧合。断开连接的原因是 IKEv2 配置意外地将 localIdentifier 设置为固定值。这意味着如果设备尝试连接到 VPN 服务器,任何现有连接都将被丢弃,因为就服务器而言,它们都来自同一个源,因为它们具有相同的本地标识符。

    因此,如果您遇到此问题,请确保每个设备都获得唯一的本地标识符。使用 Apple 设备 ID 是一个不错的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-24
      • 2022-01-03
      • 2020-04-14
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      相关资源
      最近更新 更多