首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:使用VPNService接口在android4.0中连接VPN的示例代码

Android:使用VPNService接口在android4.0中连接VPN的示例代码
EN

Stack Overflow用户
提问于 2012-11-01 20:54:07
回答 3查看 83.3K关注 0票数 24

我是安卓新手,我正在尝试通过编程方式建立和连接到我们自己的vpn (而不是安卓Setting -> Wireless and Networks中的默认vpn提供商,即PPTPL2TP等)。

我的场景是,我有一个按钮,当我单击这个按钮时,我需要配置我自己的vpn,并且一个链接(比如www.google.com)应该通过我已经配置的VPN

有没有样例代码?

EN

回答 3

Stack Overflow用户

发布于 2016-04-09 23:26:19

我不知道为什么我谷歌了一千次,但没有github的搜索。找了很久,我终于找到了一本写得很漂亮的书。代码确实很漂亮,这是很少见的:

https://github.com/hexene/LocalVPN

该项目不使用NDK或任何本机代码,纯粹的java,这使它成为一个简单项目的完美开始(并不是说它不适合复杂的项目)。并且工作流程非常简单:

  • 当应用程序发出出站请求(从安卓操作系统到互联网上的某个服务器的请求)时,请求会到达LocalVPNService TCP/UDP数据包,并提取源和目标IP (Packet.class用于此目的)。
  • LocalVPNService代表启动请求的应用程序建立连接,并在新创建的连接上调用VpnService.protect()以避免循环。
    • 然后将连接传递给处理程序,这些处理程序只是在一个循环中传递来自这两个连接的字节,或者传递到这两个连接的字节。UDP/TCP输入/输出的线程在不同的工作类和线程中进行管理。

如你所见,己烯已经完成了所有的艰苦工作和繁重的提升。

上面引用的所有类都可以在项目目录中找到。我快速浏览了一下github的源代码,这里讨论的工作流程可能并不准确。

票数 41
EN

Stack Overflow用户

发布于 2012-11-01 21:15:23

您可以参考随android SDK捆绑的示例应用程序ToyVpn。因此,只需转到samples并参考application.Also (请参阅this

除此之外,你还可以下载Openvpn的源代码。以下是指向该链接的链接

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

谢谢

票数 8
EN

Stack Overflow用户

发布于 2014-10-29 03:24:41

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

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

这两个系统都需要Android SDKNDK

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13177522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档