3

我一直在研究是否有可能实现以下目标。我有一个 IKEv2 VPN 服务器和一个 Swift iOS 客户端。在客户端,我启用了isOnDemandEnabledon theNEVPNManager并设置了规则以匹配任何内容。

var vpnManager : NEVPNManager
var protcol: NEVPNProtocol
let ikev2 = NEVPNProtocolIKEv2()
ikev2.useExtendedAuthentication = true
...
protcol = ikev2
protcol.disconnectOnSleep = false
let connectRule = NEOnDemandRuleConnect()
connectRule.interfaceTypeMatch = .any
vpnManager.onDemandRules = [connectRule]
vpnManager.isOnDemandEnabled = true

这应该意味着任何访问 Internet 的尝试都应符合此规则,并且只能通过 VPN。(这是我的理解,希望是对的)。

VPN 术语中的 Killswitch 是一项功能,可在 VPN 不可用时立即停止所有互联网流量进出设备。这是为了防止在 VPN 隧道无法访问的情况下发生任何泄漏。这可以像监视当前 IP 地址是否波动一样简单,作为执行此操作的触发器。

我找不到的是,只要OnDemand启用该功能,iOS 10.3+ 是否已经在后台执行此操作?

或者它只是一种在 VPN 掉线后立即重新连接到 VPN 的方法,但流量仍可能在没有 VPN 的情况下泄漏到现有的 4G?

我还没有找到任何关于这方面的信息。有什么建议吗?

4

1 回答 1

1

是的,一旦使用上述规则设置 VPN(例如,没有拆分隧道......),所有流量都将通过 VPN。如果 VPN 断开连接,任何流量都会尝试启动它,并且不会通过设备。如果 VPN 无法连接 - 流量将无法通过。

自己尝试 - 连接 VPN,然后以某种方式断开连接(例如阻止网络访问),然后允许它再次连接 - 检查在重新连接的短时间内,没有流量会通过设备。

于 2019-02-09T18:19:27.293 回答