Java /或Android IP隧道

时间:2011-05-27 22:13:54

标签: java android ssh tunnel

我们需要将云服务器上的端口隧道传输到Android设备。现在,我们在Android(Jsch)上使用SSH客户端来启动反向端口转发。这有效,但我们不需要/想要加密/身份验证的开销。

本质上,一个简单的IP隧道,可以从客户端(Android)建立到云中的服务器。

关于这个主题的Google搜索并不乐观,所以我想我会在这里尝试一下,看看我是否能获得任何线索。显然,我们宁愿不从头开始构建这个。

1 个答案:

答案 0 :(得分:1)

这在Java中实现起来相当简单。设备上的隧道应用程序打开两个连接,一个连接到服务器,另一个连接到设备上的服务。现在,如果您使用Input- / OutputStreams(与nio Channels一样),您需要2个线程,每个线程在其中一个InputStream上读取,并将它们收到的所有内容写入相反的输出流。在服务器上,您将需要一个类似的进程,从ServerSocket.accept获取它的两个连接,并且需要能够找出哪个是隧道器,哪个是服务的客户端(即测试隧道协议的头部)传入连接)。

如果您希望能够同时隧道连接多个连接,则会变得有点复杂。如果要避免打开多个隧道连接,则需要为此实现某种协议,以便能够将隧道数据包分派到设备上的多个连接。