Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:使用VPN服务API连接到Android 4.0中VPN的示例代码_Android_Android Vpn Service - Fatal编程技术网

Android:使用VPN服务API连接到Android 4.0中VPN的示例代码

Android:使用VPN服务API连接到Android 4.0中VPN的示例代码,android,android-vpn-service,Android,Android Vpn Service,我是android新手,我正在尝试通过编程方式建立并连接到我们自己的vpn(不是默认的vpn提供商,即PPTP,L2TP等,它存在于android设置->无线和网络中 我的情况是,我有一个按钮,当我点击按钮时,我需要配置我自己的vpn,一个链接(比如www.google.com)应该通过我配置的vpn 有任何示例代码吗?您可以将示例应用程序引用到与android SDK捆绑在一起的YVPN。因此,只需转到示例并参考该应用程序。另请参见 除此之外,您还可以下载Openvpn的源代码。这是该网站的链

我是android新手,我正在尝试通过编程方式建立并连接到我们自己的
vpn
(不是默认的
vpn
提供商,即
PPTP
L2TP
等,它存在于android
设置->无线和网络中

我的情况是,我有一个按钮,当我点击按钮时,我需要配置我自己的
vpn
,一个链接(比如www.google.com)应该通过我配置的
vpn


有任何示例代码吗?

您可以将示例应用程序引用到与android SDK捆绑在一起的YVPN。因此,只需转到示例并参考该应用程序。另请参见

除此之外,您还可以下载Openvpn的源代码。这是该网站的链接

感谢OpenSwan解决方案:

OpenVPN解决方案:


这两个都需要安卓和。

我不知道为什么我搜索了上千次,但没有搜索github。找了很久,我终于找到了一本写得很漂亮的书。代码简直是美丽的,这是罕见的:

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

  • 当应用程序发出出站请求(从android操作系统向internet上的某个服务器发出请求)时,请求到达
    LocalVPNService.class
  • LocalVPNService
    调查TCP/UDP数据包并提取源和目标IP(
    packet.class
  • LocalVPNService
    代表启动请求的应用程序建立连接,并在新创建的连接上调用
    VpnService.protect()
    ,以避免循环
  • 然后将连接传递给处理程序,处理程序只需在循环中向两个连接传递字节。UDP/TCP输入/输出的线程在不同的工作类和线程中进行管理
正如你所看到的,己烯已经完成了所有的艰苦工作和繁重的工作

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

谢谢朱纳德的回复。我不知道openvpn是否是一个android项目。我下载了openvpn源代码,但t只有c文件,我不知道如何使用t。。你能消除我的疑虑吗。。如果你能分享一个使用vpn服务和OpenVpn的android项目,那会很有帮助。这将有助于我理解和处理它。我认为我已经编译了代码并在我的android设备上运行了它。。该应用程序启动良好,但我不知道如何测试该应用程序。。是否有任何公共测试服务器和凭据来测试此应用程序。你能分享这个链接吗。。我搜索过了,但是我找不到任何有用的东西。请不要因为你把openvpn的链接改成了另一个版本的openvpn for android,这个版本已经被维护了。这个软件的作者和我差不多在同一时间发布了我们的软件。我只是说,它们是不同的项目。后者是我的项目。这是否意味着你需要一个真正的vpn服务器在互联网上?如果我理解正确,因为android提供了隧道,那么localvpn可以看到所有的流量流出?如果我只想解析传入的tcp连接怎么办?@narb如果我没记错的话,不,你不需要vpn服务器,我也用它来解析数据包。当包裹到达目的地时,它们就被简单地发送到目的地。这几乎是一年前的事了:)谢谢你的回答。我将尝试使用loadvpn代码,但必须使用vpn api来解析pakets是很奇怪的。最好有一个像pcap一样的api。它也支持openvpn吗?@AhmadShahwaiz它什么都不支持。它只是为android VPN的接口提供了一个更好、更简单的java ish接口。最终得到的是一些原始字节包。您可以做任何您喜欢的事情,例如将它们发送到OpenVPN(在实现OpenVPN的接口之后)