以编程方式进行PPTP VPN连接并捕获数据包

时间:2016-05-22 14:50:07

标签: android vpn pptp

我使用this Tutorial以编程方式进行PPTP VPN连接并捕获数据包 但是有些事情是错的,我认为问题是当我想要在循环中使用cature口袋时

当我通过应用程序连接到vpn并尝试在浏览器中打开网站时显示:You are offline ... Sendreceived始终为0 bytes / 0 pockets 我还需要在应用程序中断开连接

我怎么能解决它们?

1 个答案:

答案 0 :(得分:2)

您使用的教程不是关于PPTP或其他特定的VPN类型,而是关于数据包捕获。您应该自己实现PPTP客户端,然后将数据包捕获代码(while循环)和PPTP客户端代码互连。

如果您可以显示源代码,则可以更轻松地显示错误。

<强> UPD1:

  

那么我如何使用PPTP连接,连接和断开它?

这是一项庞大而复杂的任务。有没有快速解决方案。当我做同样的事情时,我花了大约一年的时间。您可以执行以下操作:

  1. 将现有的第三方PPTP客户端导入您的项目(例如,http://pptpclient.sourceforge.net/
  2. 改进导入的代码,使其能够与您的主代码进行交互(您可以通过JNI作为本机库使用的C / C ++代码或作为外部可执行文件,并通过IPC与之交互)
  3. 将您的代码与导入的代码相关联(从VPN服务套接字读取IP数据报,将其写入PPTP客户端套接字,反之亦然)
  4. <强> UPD2:

    我看到了两个实现VpnService的应用程序。

    第一个是StrongSwan。 VpnService扩展here,本机部分(真正的vpn服务实现)启动here

    第二个是OpenVpn port ics-openvpn。它启动独立的openvpn进程here,并通过标准的openvpn管理接口(unix socket)here进行管理。