iPhone从睡眠模式返回后,VPN无法正常工作



我在ios上使用VPN有问题。我使用此代码。

let result = NEOnDemandRuleConnect()
result.interfaceTypeMatch = .any
manager.onDemandRules = [result]
manager.isOnDemandEnabled = true

有时,如果我在睡眠 1-2 小时后解锁 iphone,VPN 将无法正常工作。状态栏中显示VPN图标,显示wifi连接图标,但网络不工作(我无法在safari中加载任何页面(。如果我在应用程序或系统设置中手动重新连接VPN - 它开始正常工作。我正在使用ipsec协议。

如何解决此问题?

我没有使用过IPSec协议,但在网络扩展中使用VPN有一些经验。覆盖PacketTunnelProvider中的睡眠和唤醒方法。您应该在此处指定隧道进入睡眠状态时的行为方式,以及在唤醒方法中如何重新激活它。在苹果论坛上看到这个答案。

您还应该将disconnectOnSleep设置为false,以防止隧道在进入睡眠状态时断开连接(不言自明(。

我们以其他方式解决了问题 - 我们将ipsec替换为ikev2,现在 VPN 可以正常工作。

最新更新