安卓:示例代码以使用Android 4.0的自己的VPN连接使用VPNService API [关闭

2019-06-18 18:30发布

我是新来的Android和我试图建立连接到我们自己的vpn (不是默认的vpn提供商即, PPTPL2TP等,这是目前在Android Setting -> Wireless and Networks )编程。

我的情况是,我有按钮,当我点击按钮,我需要配置自己vpn和链接(比如www.google.com)应该通过VPN ,我已经配置了。

是否有任何示例代码?

Answer 1:

我不知道为什么我GOOGLE了一千次,但没有GitHub的搜索 。 现在寻找年龄,我终于找到了一个文字优美 。 该代码是字面上的美丽这是罕见的:

https://github.com/hexene/LocalVPN

该项目使用NDK或任何本地代码,纯粹的Java,这使得它一个完美的开局为一个简单的项目(不,它不会是很好的一个复杂的问题)。 和工作流程非常简单:

  • 当一个应用程序,使得出站请求(请求来自Android操作系统到互联网上的一些服务器)的请求到达LocalVPNService.class
  • LocalVPNService的TCP / UDP包进行了研究和源和目的地IP的提取( Packet.class用于那些)。
  • LocalVPNService使开始请求代表应用程序的连接,并调用VpnService.protect()新创建的连接,以避免环路上。
  • 然后,将连接传递到处理谁只是从/传递字节在一个循环中两个连接。 对于UDP / TCP线程/输出在不同的工类和线程管理。

正如你所看到的己烯做了所有的辛勤工作和繁重的工作了。

上面提到的所有课程,在项目目录中找到。 我有一个快速查看从GitHub的源代码,这里讨论的流程可能不准确。



Answer 2:

你可以参考它捆绑了你的Android SDK示例应用程序ToyVpn。 所以只要到样品和参考的是application.Also看到这

在附加到这一点,你可以下载的OpenVPN的源代码。 这里是链接到该

https://github.com/kghost/ics-openvpn

谢谢



Answer 3:

openswan的解决方案: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient

OpenVPN的解决方案: https://code.google.com/p/ics-openvpn/

这两个要求的Android SDK和NDK 。



文章来源: Android: Sample Code to use own VPN connection in Android 4.0 using VPNService API [closed]