我需要实现一个 Android 应用程序,该应用程序允许用户配置 VPN 连接,而无需访问 Android 设备的本机菜单。有了这个我有两个问题:
在 Android 4.0 +(api 级别 14 及更高版本)中,我发现有一个名为 VpnService 的新组件,它提供了一个用于创建虚拟网络接口、配置它以及从它拦截/转发包到 VPN 服务器的钩子,但没有内置 VPN 协议,如 PPTP 或 IPSec,只是有可能实现它们。我的问题是是否有任何现成的解决方案可以让 PPTP 和 IPSec 与 VpnService 一起使用?
在早期版本的 Android 中,从我目前发现的情况来看,似乎使用 VPN 的唯一方法是通过在 android 中包装(使用反射)一些隐藏的 api 来访问和配置设备的内置 vpn 解决方案,但这是一个繁琐的解决方案,因为设备需要植根,隐藏的 api 实现也可能因设备和操作系统版本而异。有没有更好的方法来以编程方式配置底层 linux 操作系统的内置 VPN?