我正在开发一个Android应用程序,并希望它连接到OpenVPN服务器。 从Android 4.0开始,有一个VPNService类。但是,该类需要拦截所有网络数据包(并需要特殊权限),因为它在Internet协议上运行。但据我所知,OpenVPN运行在TCP或UDP之上(我的服务器配置为使用UDP)。我只需要通过VPN隧道从我自己的应用程序隧道传输流量。
我找到了follwing project: ics-openvpn。但是它也使用VPNService类并拦截所有包。
答案 0 :(得分:4)
当然,您可以理论上在用户空间/应用内部执行UDP / OpenVPN。但是,您需要在应用程序中实现整个TCP / IP,因为您需要模拟整个 VPN堆栈。
对于一个类似VPN的解决方案,您可能更擅长使用SOCKS / HTTP代理等库。
答案 1 :(得分:1)
您需要使用VpnService
来创建OpenVPN应用程序,该应用程序将ovpn文件作为客户端配置的输入,如OpenVPN Connect。所以任何人都可以根据自己的需要改变配置。此外,您必须为OpenVPN配置服务器。使用AWS EC2或任何其他服务器。在服务器端follow this link上配置VPN时。