gpt4 book ai didi

iOS Per-App VPN 未连接到互联网

转载 作者:行者123 更新时间:2023-11-29 11:29:14 35 4
gpt4 key购买 nike

我们正在开发一款在 iOS 上运行 Per-App VPN 的应用。这个容器应用程序是为我们的一些特定应用程序设计的,可以在特定时间通过 VPN 连接网络,而所有其他应用程序则不能。

我们希望这些特定的应用程序在安装容器应用程序和配置文件之后,在打开 VPN 之前正常连接网络。一旦在容器应用程序中手动打开 VPN,这些特定应用程序就会通过 VPN 连接网络。

我有一些问题找不到答案。

  1. 我已将 NETestAppMapping key 添加到我的开发容器应用程序的 Info.plist 中。并将这些特定应用程序的捆绑标识符添加到 NETTestAppMapping。在构建容器应用程序并通过 Apple Configurator 2 安装配置文件后,我发现那些特定的应用程序无法连接到互联网,直到我在容器应用程序中打开 VPN。这正常吗?

  2. NETTestAppMapping 是一种在开发中配置这些特定应用程序的方法。我想知道指定应用程序映射的生产机制。

而且,曾经发生过一件非常奇怪的事情。我从 iPhone 中删除了配置文件,并从容器应用程序中删除了 NETTestAppMapping。然后我以正常方式在容器应用程序中打开 VPN。完成后,我发现我们想要的功能已经实现了。

非常感谢。

最佳答案

与 Per-App VPN 相关联的应用程序只会通过 Per-App VPN 路由其流量。如果禁用 On-Demand 并关闭 VPN,则不会有流量从该应用流出。

因此,我看到有两种方法可以让应用仅在某些时候通过 Per-App VPN 进行路由:

  1. 使用 NEPacketTunnelProvider 实现 VPN,VPN 始终按需启动并继续处于“事件”状态,但 VPN 应用程序可用于切换 >NEPacketTunnelProvider 实际上通过 VPN 路由流量,或者它只是充当 TCP/UDP 转发器。

  2. 当 VPN 应用程序中的开关切换时,使用 MDM 及其 SDK(假设支持)将您的应用程序与 Per-App VPN 关联和取消关联。请注意,这可能会很笨拙,有时间延迟,并且可能会导致您的应用程序在运行时被终止。我不推荐这种方法。

值得注意的是,NETestAppMapping 仅适用于开发版本,不适用于分发版本(例如企业(内部)或 App Store)。您需要使用 MDM 才能使用 Per-App VPN。

有关使用 NEPacketTunnelProvider 进行数据包转发的示例,我会看一下这篇论文:Does your phone spy on you? by Severin Amrein .

关于iOS Per-App VPN 未连接到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55274595/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com