我是Android新手,我正在尝试建立并连接到我们自己的vpn
(不是默认的vpn
提供商,即PPTP
,L2TP
等,这是以编程方式出现在Android Setting -> Wireless and Networks
中。
我的情况是,我有按钮,当我点击按钮时,我需要配置我自己的vpn
和一个链接(比如说www.google.com)应该通过我VPN
构造
是否有示例代码?
答案 0 :(得分:27)
我不知道为什么我用Google搜索了一千次,但没有 github的搜索。现在寻找年龄,我终于找到了一个写得很漂亮的 。这段代码非常漂亮,很少见:
https://github.com/hexene/LocalVPN
该项目不使用NDK或任何本机代码,纯粹的java,这使它成为一个简单项目的完美开始(不是它对复杂的项目不好)。工作流程非常简单:
LocalVPNService.class
LocalVPNService
处调查TCP / UDP数据包并提取源IP和目标IP(Packet.class
用于此目的)。LocalVPNService
代表启动请求的应用程序建立连接,并在新创建的连接上调用VpnService.protect()
以避免循环。 正如你所看到的,己烯已经完成了所有艰苦的工作和繁重的工作。
上面引用的所有类都可以在projects目录中找到。 我快速浏览了github的源代码,这里讨论的工作流程可能不准确。
答案 1 :(得分:7)
您可以参考与您的Android SDK捆绑在一起的示例应用程序ToyVpn。所以,只需转到示例并参考该应用程序。另请参阅this
除此之外,您还可以下载Openvpn的源代码。这是
的链接https://github.com/kghost/ics-openvpn
由于
答案 2 :(得分:3)
OpenSwan解决方案: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
OpenVPN解决方案: https://code.google.com/p/ics-openvpn/