4

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

当我通过应用程序连接到 vpn 并尝试在浏览器中打开站点时,它显示:You are offline... Send而且我received总是0 bytes / 0 pockets 需要断开应用程序中的连接

我怎样才能修复它们?

4

1 回答 1

2

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

如果您可以显示源代码,则更容易显示错误所在。

UPD1:

那么我如何使用 PPTP 连接、连接和断开连接呢?

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

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

UPD2:

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

第一个是StrongSwan。VpnService 扩展在这里,native 部分(真正的 vpn 服务实现)从这里开始。

第二个是 OpenVpn 端口 ics-openvpn。它在此处启动独立的 openvpn 进程,并此处通过标准的 openvpn 管理接口(unix 套接字)对其进行管理。

于 2016-06-04T20:16:19.627 回答