如何在Linux中连接多个SSH隧道

我有以下情况:

A —– | —— B —– | ——工作

工作可以通过SSH连接到B,而A可以通过SSH连接到B,但除此之外,一切都是防火墙。 我想要做的是实际上创build一个工作和A之间的SSH隧道,使我可以从VNC工作。

从工作中我创build了一个远程SSH隧道:

ssh -R 5900:localhost:5900 B 

这意味着我可以从B的VNC工作。 但是我需要做些什么来扩展到A.我试图创build一个从A到B的本地SSH隧道,如下所示:

 ssh -L 5901:localhost:5900 B 

但它给, bind: Cannot assign requested address ,因为已经分配5900。

有没有人有任何想法如何做到这一点?

只是为了回答我自己的问题,出于某种原因,你必须强制ipv4即从A

 ssh -4 -L 5901:localhost:5900 B 

这样可行。

我不确定我的答案是否完美,但我会试一试。

您正在尝试的设置显然将无法正常工作,因为您从B端口5900转发到工作,并且还将端口5900从A转发到B.

但是,您不能使用同一个端口进行2个不同的连接,这就是为什么您会收到错误“bind:无法分配请求的地址,因为已经分配了5900”。

你可以做的是在B上设置一个转发器

然后尝试从A使用此命令:#ssh -L 5901:localhost:5901 B

然后将端口5901的stream量转发到5900,反之亦然。

我没有设置和时间来testing它,但是我很好奇它是否会起作用。

所以,一旦你testing了这个,请求你请回到这里。