如何在Android和API列表中使用VPN?(棒糖)

Nit*_*der 33 java ip vpn android tunneling

参考:

Android 4.0有一个用于构建VPN服务的API.

  1. VPNService(Android文档)
  2. VPNService.Builder(Android Docs)
  3. Arne Schawbe为Android实现OpenVPN(github)

其中一款带有VPN服务的应用是NetMotionMobility®(Google Play)

从"Lollipop"版本开始,Android提供了一种新的VPN类型,它提供有关VPN连接状态,请求是否通过VPN等的信息.

检测结果

(连接到VPN)

  1. Android <= 5.0(Android Lollipop)
    1. 使用WIFI(Wlan)和Cellular(rmnet)接口IP连接成功.
    2. VPN(tun)接口IP地址连接成功,但未获得VPN连接/断开事件.
  2. Android> 5.0(Android Lollipop 5.1和6.0)
    1. 连接是不是成功与WIFI(WLAN)和蜂窝(rmnet)接口IP的.
    2. VPN(tun)接口IP的地址连接成功,并且还可以获得VPN连接/断开事件.

tun接口IP: 站点本地私有IP().

  1. ConnectivityManager#TYPE_VPN
  2. NetworkCapabilites#TRANSPORT_VPN
  3. NetworkCapabilities#NET_CAPABILITY_NOT_VPN

表示该网络不是VPN.此功能默认设置,应明确清除VPN网络.常数值:15(0x0000000f)

问题:

  1. 当VPN服务在设备上处于活动状态时,请求如何从WhatsApp,Skype或浏览器等第三方应用程序中运行?
  2. 连接VPN时,设备IP堆栈究竟发生了什么?
  3. VPN隧道如何在Android中运行?
  4. 应用程序绑定到活动IP并发送请求的设计是什么?
  5. 棒棒糖(5.0)中的VPN API不稳定吗?
  6. 如果bindProcessToNetwork通过Celluar网络完成并且WiFi连接在设备中,VPN将使用哪个网络?

j2k*_*2ko 3

将尝试回答几个问题:

1 . VPN 不会影响其他应用程序流程 - 它只是“虚拟”地将您的设备置于另一个网络中。例如一些公司专用网络。这意味着通过 VPN 连接发送的所有请求都将发送到该网络,并且该网络内应用的所有规则/过滤器都适用于手机生成的流量 - 这可能会导致第三方应用程序出现问题。

2 . 流量通过 VPN 连接时的真实 IP 地址将替换为 VPN 服务器分配的 VPN IP 地址。您连接的网络服务器不会看到您的真实 IP 地址;他们会看到您通过其连接的 VPN 网络网关的 IP。

5 . 借助 Android 5.0 Lollipop,VPN 客户端最终可以对哪些应用程序通过安全网络进行通信以及哪些应用程序直接连接到互联网提供精细控制。也许这会引起问题。

对于 VPN API 的使用,你可以查看这个项目:OpenVPN for Android