Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSH隧道在运行Java应用程序的两个节点之间进行通信_Java_Ssh_Tunnel - Fatal编程技术网

使用SSH隧道在运行Java应用程序的两个节点之间进行通信

使用SSH隧道在运行Java应用程序的两个节点之间进行通信,java,ssh,tunnel,Java,Ssh,Tunnel,我在a级网络中的一组节点上运行应用程序,但只有登录到该网络中唯一一个具有B级地址的节点时,才能从我自己的系统访问它们 然而,客户机部分(带有GUI和所有东西)只能在我的系统上运行,因此我需要某种与A类网络通信的方式。客户端(我的系统)尝试设置到服务器的简单TCP套接字(位于内部网络的边缘,带有ServerSocket),但收到连接超时异常。由于只有SSH端口22是打开的,有人建议我使用SSH隧道将数据包从系统发送到内部网络 在谷歌搜索了一下之后,我发现下面的内容允许您设置SSH隧道,但是我如何在

我在a级网络中的一组节点上运行应用程序,但只有登录到该网络中唯一一个具有B级地址的节点时,才能从我自己的系统访问它们

然而,客户机部分(带有GUI和所有东西)只能在我的系统上运行,因此我需要某种与A类网络通信的方式。客户端(我的系统)尝试设置到服务器的简单TCP套接字(位于内部网络的边缘,带有ServerSocket),但收到连接超时异常。由于只有SSH端口22是打开的,有人建议我使用SSH隧道将数据包从系统发送到内部网络

在谷歌搜索了一下之后,我发现下面的内容允许您设置SSH隧道,但是我如何在Java中使用它来设置套接字呢?谢谢

ssh -L 2222:10.10.10.10:22 174.174.174.174
编辑:
我已经使用JSch设置了从我的系统到内部节点的端口转发,但是是否有任何方法可以使其双向,而不必在每个内部节点上设置单独的隧道?(这些节点没有使用相同的TCP连接进行响应,但已经建立了到我的笔记本电脑端口2222的新连接。)

SSL隧道与任何其他套接字一样工作,您只需要连接到本地套接字。在你的情况下

Socket socket = new Socket("localhost", 2222);
OutputStream out = socket.getOutputStream();

隧道将实际连接到10.10.10.10:22。

如果您询问如何以编程方式设置转发端口,请使用。

我相信您的意思是“SSH”,而不是“SSL”;-)@MattSolnit,ZZCoder表示SSL。这是一个SSL隧道。是的,这正是我需要做的。我已经发布了一段我尝试建立连接的代码摘录,但到目前为止,我仍然收到连接超时异常。