代码之家  ›  专栏  ›  技术社区  ›  Houman

能否在iOS中配置/编程VPN Killswitch?

  •  3
  • Houman  · 技术社区  · 7 年前

    isOnDemandEnabled NEVPNManager 并制定了与任何事物相匹配的规则。

    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变得不可用,它就会停止所有进出设备的internet流量。这是为了在VPN隧道无法访问时防止任何泄漏。这可以像监视当前IP地址是否波动一样简单,以此作为触发条件。

    我不知道的是,iOS 10.3+是否已经在后台完成了这项工作,只要 OnDemand

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Witterquick    7 年前

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