2

我在 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 的新连接。)

4

2 回答 2

2

SSL Tunnel 就像任何其他套接字一样工作,您只需要连接到本地套接字。在你的情况下,它是,

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

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

于 2009-09-09T15:07:14.920 回答
0

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

于 2009-09-09T18:45:03.710 回答