如果没有Android API,OpenVPN等如何创建VPN连接?

时间:2019-02-25 09:50:58

标签: android vpn openvpn

关于SO的许多答案已经声称您无法以编程方式在Android设备上配置VPN配置文件。 Android的VpnService API仅允许在您自己的应用中使用VPN,并且没有其他可用的API。

Android版OpenVPN等应用如何实现该目标?我可以通过OpenVPN应用程序配置配置文件,其他应用程序将能够使用此连接。

1 个答案:

答案 0 :(得分:1)

您误解了VpnService.Builder的{​​{3}}方法返回的句柄/文件描述符的性质和目的。您可能需要再次阅读API描述。

要点是,它是TUN设备的文件描述符,Android通过策略路由将其他应用程序的网络流量定向到该TUN设备(受影响的应用程序/流量可以通过构建器的方法进行控制)。然后,该应用可以使用文件描述符读取其他应用发送的数据包,例如通过VPN连接(使用常规UDP / TCP套接字)转发它们。通过写入TUN设备的文件描述符,同样可以将来自VPN连接的返回流量重新注入系统。