繁体   English   中英

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

[英]How OpenVPN etc create VPN connection if there is no Android API for that?

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

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

您误解了VpnService.Builder establish()方法返回的句柄/文件描述符的性质和目的。 您可能需要再次阅读 API 说明。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM