5

我正在探索 Android 中的 VPN 连接。我是这个部分的新手。

  1. 我想知道如何使用应用程序在 Android 中设置 VPN 连接?

  2. 我遇到了一个示例代码,即 ToyVpn。我运行了应用程序,但我不知道我需要以该应用程序显示的形式提供哪些数据,考虑我有一个带有 IP 地址的 VPN 服务器(比如 10.162.1.2),我该怎么办需要在该应用程序中做什么才能使该应用程序正常工作?

  3. 如果我尝试使用任何公共 VPN 服务器,我需要做什么?

  4. 我从这里下载了 Openvpn 源并在我的 ICS 设备中编译并运行,但我不知道如何配置需要输入的数据。请提供使用此应用程序的确切方式。

4

1 回答 1

5

我想知道如何使用应用程序在 Android 中设置 VPN 连接?

Android SDK 附带一个示例;请参阅 android-16 示例目录中的 ToyVpn。另请参阅VpnServiceVpnService.Builder的文档。

我遇到了一个示例代码,即 ToyVpn。我运行了该应用程序,但我不知道我需要以该应用程序显示的形式提供哪些数据,考虑我有一个带有 IP 地址的 VPN 服务器(比如 10.162.1.2),我是什么需要在该应用程序中执行以使该应用程序工作。

您的 VPN 需要创建一个新套接字,使用 保护套接字不被路由回 VPN VpnService.protect(Socket),并将套接字连接到 10.162.1.2。建立到 VPN 服务器的隧道连接后,您应该继续将 VpnService 接口的输入流写入隧道的输出流,然后将隧道响应写回接口输出流。

如果我尝试使用任何公共 VPN 服务器,我需要做什么?

没有建立与 VPN 服务器的连接的标准机制。ToyVpn 只是使用原始 TCP 数据包通过套接字进行通信。您可以像 OpenVPN 一样实现现有协议(参见RFC 4026),也可以自己编写一些东西。

于 2013-11-28T17:06:18.687 回答