从睡眠模式 iphone returns 后 VPN 不工作

VPN is not working after iphone returns from sleep mode

我在 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 中的睡眠和唤醒方法。您应该在那里指定隧道在进入睡眠状态时的行为方式,以及唤醒方法中如何重新激活它。请参阅 Apple 论坛中的 this 回答。

您还应该将 disconnectOnSleep 设置为 false 以防止隧道在休眠时断开连接(不言自明)。

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