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