VPN如何在Android中工作以及可用的API列表?(棒棒糖)
###Reference:
Android 4.0有一个API来构建VPN服务。
- VPNService (Android Docs)
- VPNService.Builder (Android Docs)
- Arne Schawbe's Implementation of OpenVPN for Android (github)
一个具有VPN服务的应用程序是NetMotion Mobility®(Google Play)
从“棒棒糖”版本开始,Android配备了一种新的VPN类型,该类型提供有关VPN连接状态,请求是否通过VPN等的信息。
###Test 结果
(连接到 VPN)
- 安卓<=5.0(安卓棒棒糖)
- 使用 WIFI(无线局域网)和蜂窝(rmnet)接口 IP 的连接成功。
- 使用 VPN(tun) 接口 IP 地址连接成功,但未获取 VPN 连接/断开连接事件。
- 安卓> 5.0(安卓棒棒糖 5.1 和 6.0)
- 使用 WIFI(无线局域网)和蜂窝(rmnet)接口 IP 的连接不成功。
- 使用 VPN(tun) 接口 IP 的地址连接成功,并且还获取 VPN 连接/断开连接事件。
指示此网络不是 VPN。默认情况下设置此功能,应为 VPN 网络显式清除此功能。常量值:15 (0x0000000f)
###Questions:
- 当VPN服务在设备上处于活动状态时,如何从WhatsApp,Skype或浏览器等第三方应用程序进行请求?
- 连接VPN后,设备IP堆栈究竟发生了什么?
- VPN隧道如何在Android中工作?
- 绑定到活动 IP 并发送请求的应用的设计是什么?
- 棒棒糖 (5.0) 中的 VPN API 是否不稳定?
- 如果 bindProcessToNetwork 是通过 Celluar 网络完成的,并且 WiFi 是在设备中连接的,那么 VPN 将使用哪个网络?