iOS Per-App VPN未连接到Internet

问题描述 投票:1回答:1

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

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

我有一些问题无法找到答案。

  1. 我已将NETestAppMapping键添加到我的容器应用程序的Info.plist中。这些特定应用程序的捆绑标识符将添加到NETestAppMapping中。在构建容器应用程序并通过Apple Configurator 2安装配置文件后,我发现这些特定应用程序无法连接到Internet,直到我在容器应用程序中打开VPN。这是正常的吗?
  2. NETestAppMapping是一种在开发中配置这些特定应用程序的方法。我想知道用于指定应用程序映射的生产机制。

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

非常感谢你。

ios vpn mdm
1个回答
1
投票

与Per-App VPN关联的应用程序仅通过Per-App VPN路由其流量。如果禁用按需,并且VPN已关闭,则不会从应用程序流出任何流量。

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

  1. 使用NEPacketTunnelProvider实现VPN,VPN始终按需启动并继续“活动”,但VPN应用程序可用于切换NEPacketTunnelProvider是否实际通过VPN路由流量,或者它是否只是作为一个TCP / UDP转发器。
  2. 在VPN应用程序中切换切换时,利用MDM及其SDK(假设支持)将应用程序与Per-App VPN关联和取消关联。请注意,这可能很笨拙,有时间延迟,并且可能会导致您的应用程序在运行时被杀死。我不会推荐这种方法。

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

有关使用NEPacketTunnelProvider和数据包转发的示例,我将看看本文:Does your phone spy on you? by Severin Amrein

© www.soinside.com 2019 - 2024. All rights reserved.