【问题标题】:iOS VPN on Demand rulesiOS VPN 点播规则
【发布时间】:2019-06-21 11:30:27
【问题描述】:

我想在 ios 中为 VPN 连接创建一个 onDemandRule

要求如下。

如果蜂窝和 wifi 都可用 和 wifi ssid = "ABC" 不是只有 VPN 会运行,否则它应该停止。

我已尝试遵循 OnDemandRule

             let onDemandRule = NEOnDemandRuleConnect()
            onDemandRule.interfaceTypeMatch = .wiFi
            onDemandRule.ssidMatch = ["ABC"]

            let onDemandRule1 = NEOnDemandRuleConnect()
            onDemandRule1.interfaceTypeMatch = .cellular                
            self.vpnManager.isOnDemandEnabled = true

            let onDemandRule2 = NEOnDemandRuleDisconnect()
            onDemandRule2.interfaceTypeMatch = .any

            self.vpnManager.onDemandRules = [onDemandRule, onDemandRule1, onDemandRule2]

只要我连接到名为 ABC 的 wifi,它就会工作

但如果我关闭蜂窝数据,它不会断开连接。 有人可以让我知道我在这里做错了什么。

【问题讨论】:

    标签: swift xcode vpn nevpnmanager


    【解决方案1】:

    您应该像阅读一组防火墙规则一样阅读规则,NEVPNManager 会遍历规则列表并遵循第一个适用的规则。在您的示例中,当您关闭蜂窝数据时,它将评估规则 1:wifi + SSID“ABC”。如果满足该规则,即您已连接到 WiFi SSID“ABC”,则将连接 vpn。如果没有,NEVPNManager 将通过下一条规则。

    如果您关闭蜂窝网络,第一条规则仍然适用。 (您仍然可以有 WiFi 连接)。 NEVPNManager 无法区分蜂窝网络的开/关。它只能区分使用哪个接口:蜂窝、WiFi 或任何接口。

    【讨论】:

    • 谢谢 Marcel.. 知道如何管理这种情况吗?意味着一旦蜂窝数据关闭VPN就应该停止?除了按需规则还有其他方式吗?
    • VPNManager 不关心无线电是否打开,只要它是主接口。在配置文件参考中,您可以找到您的可能性developer.apple.com/business/documentation/…
    猜你喜欢
    • 2012-06-26
    • 2023-03-28
    • 1970-01-01
    • 2017-10-08
    • 2019-03-09
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多