如何在 Linux 中将多个 SSH 隧道链接在一起

yod*_*230 5 linux tunneling ssh-tunnel

我有以下情况:

A -----|------ B -----|------ 工作

工作可以通过 SSH 连接到 B,而 A 可以通过 SSH 连接到 B,但除此之外,一切都受到了防火墙的保护。我想要做的实际上是在 Work 和 A 之间创建一个 SSH 隧道,以便我可以从 A 使用 VNC 进入 Work。

在工作中,我创建了一个远程 SSH 隧道:

ssh -R 5900:localhost:5900 B
Run Code Online (Sandbox Code Playgroud)

这意味着我可以从 B 进入 VNC 工作。但是我需要做什么才能将它扩展到 A。我尝试创建一个从 A 到 B 的本地 SSH 隧道,如下所示:

ssh -L 5901:localhost:5900 B
Run Code Online (Sandbox Code Playgroud)

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

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

Nap*_*r_X 0

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

您尝试的设置显然不起作用,因为您从 B 上的端口 5900 转发到工作,并将端口 5900 从 A 转发到 B。

但是您不能对 2 个不同的连接使用相同的端口,这就是为什么您会收到错误“绑定:无法分配请求的地址,因为 5900 已被分配”。

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

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

然后将流量从端口 5901 转发到 B 上的 5900,反之亦然。

我没有设置和时间来测试它,但我很好奇它是否有效。

因此,请您在测试后返回此处并提供结果。