Java/或Android IP隧道

Java/或Android IP隧道,java,android,ssh,tunnel,Java,Android,Ssh,Tunnel,我们需要通过隧道将云服务器上的端口连接到Android设备。现在,我们使用Android上的SSH客户端(Jsch)启动反向端口转发。这是可行的,但我们不需要/不想要加密/身份验证的开销 本质上,一个简单的IP隧道可以从客户端(Android)建立到云中的服务器 在谷歌上搜索这个话题并没有什么前途,所以我想在这里试试,看看能不能找到任何线索。显然,我们不希望自己从头开始构建它。这实际上很容易在Java中实现。设备上的tunneler应用程序打开两个连接,一个连接到服务器,另一个连接到设备上的服务

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

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


在谷歌上搜索这个话题并没有什么前途,所以我想在这里试试,看看能不能找到任何线索。显然,我们不希望自己从头开始构建它。

这实际上很容易在Java中实现。设备上的tunneler应用程序打开两个连接,一个连接到服务器,另一个连接到设备上的服务。现在,如果您使用输入/输出流(就像ooposed到nio通道一样),您需要两个线程,每个线程都在其中一个输入流上读取,只需将接收到的所有内容写入相反的输出流。在服务器上,您将需要一个类似的进程,从ServerSocket.accept获取它的两个连接,并且需要能够找出哪一个是隧道器,哪一个是服务的客户端(即,在传入连接上测试隧道协议的头)


如果您希望能够同时对多个连接进行隧道传输,那么这将变得有点复杂。如果要避免打开多个隧道连接,您需要为此实现某种协议,以便能够将隧道数据包发送到设备上的多个连接。

谢谢您的评论。是的,这就是我需要的。我一直在说“多路连接”。。。一个传入端口通过隧道连接到多个客户端。我会把这件事留一段时间,看看我是否能得到关于如何实施这件事的好线索。我对这个话题肯定是生疏了。我最终写了一个简化版。我认为让它变得健壮和稳定,处理断开/重新连接等是令人不安的方面。无论如何,谢谢。这似乎正是我所需要的:我正试图从Internet访问LAN上的设备,但由于某种原因,尽管端口转发,该设备仍拒绝接受通过Internet的连接。我希望能够通过Android设备进行隧道连接。我已经可以从互联网上访问安卓设备了,但是我找不到一个可以安装在安卓设备上的应用程序来透明地连接到实际设备。上面的答案是一个可以编写的应用程序的想法,还是这样的应用程序已经存在?