Android OpenVPN 连接

Android OpenVPN connection

我正在开发 Android 应用程序并希望它连接到 OpenVPN 服务器。 由于 Android 4.0 有一个 VPNService class。然而,这个 class 需要拦截所有网络数据包(并且需要特殊权限),因为它显然是 运行 在 Internet 协议上。但是据我所知,OpenVPN 是 运行 在 TCP 或 UDP 之上(我的服务器配置为使用 UDP)。我只需要通过 VPN 隧道传输来自我自己的应用程序的流量。

我找到了 以下项目:ics-openvpn。但是它也使用 VPNService class 并拦截所有包。

当然,您可以理论上在您的userspace/inside应用中UDP/OpenVPN。但是您需要在您的应用程序中实现整个 TCP/IP,因为您需要模拟 整个 VPN 堆栈。

对于类似解决方案的单应用 VPN,您可能最好使用 SOCKS/HTTP 代理等库。

您需要使用 VpnService 创建一个 OpenVPN 应用程序,它将 ovpn 文件作为客户端配置的输入,如 OpenVPN Connect. So any person can change configuration according to their need. Also, you have to configure the server for OpenVPN. Take server of AWS EC2 or any other. While in configuring VPN on server side follow this link