我有以下情况:
A -----|------ B -----|------ 工作
工作地点可以通过 SSH 进入 B,A 也可以通过 SSH 进入 B,但除此之外,一切都有防火墙保护。我想做的是在工作地点和 A 之间创建一个 SSH 隧道,这样我就可以从 A 通过 VNC 进入工作地点。
我在工作中创建了一个远程 SSH 隧道:
ssh -R 5900:localhost:5900 B
这意味着我可以通过 VNC 从 B 进入工作。但我需要做什么才能将其扩展到 A。我曾尝试创建从 A 到 B 的本地 SSH 隧道,如下所示:
ssh -L 5901:localhost:5900 B
但它给出的是bind: Cannot assign requested address
,因为 5900 已经被分配。
有人知道如何做到这一点吗?
答案1
只是为了回答我自己的问题,出于某种原因,你必须强制使用 ipv4 即从 A
ssh -4 -L 5901:localhost:5900 B
这样可行。
答案2
我不确定我的答案是否完美,但我会尝试一下。
您尝试的设置显然不会起作用,因为您正在从 B 上的端口 5900 转发以工作,同时还将端口 5900 从 A 转发到 B。
但是您不能将同一个端口用于两个不同的连接,这就是为什么您会收到错误“绑定:无法分配请求的地址,因为 5900 已经被分配”。
你可以做的是在 B 上设置一个转发器。
然后尝试从 A 使用此命令:# ssh -L 5901:localhost:5901 B
然后在 B 上将流量从端口 5901 转发到 5900,反之亦然。
我没有设置和时间来测试它,但我很好奇它是否会起作用。
因此,请在测试完成后返回结果。