通过中间机转发 VNC 流量

通过中间机转发 VNC 流量

我有 3 台机器..

  • A. 我家里的本地机器(MacOSX)。
  • B. 我可以通过 SSH 进入的办公机器(中间人)。这是一台运行 Ubuntu 服务器的小型虚拟机,我可以打开新端口
  • C. 工作中的另一台机器运行 Ubuntu Desktop,并使用 vine 进行远程桌面访问,我可以通过 B 使用 SSH 访问这台机器。

因此我可以从 A 到 B 通过 SSH 连接,并且从 BI 可以看到 C 中的开放端口。我想使用 VNC 客户端访问 C。

有没有办法建立从 A 到 C 的隧道?

答案1

根据答案https://superuser.com/a/371082/281372,具体需要做的事情如下:

user@machineA $ ssh -fN -L59595:machineC:59595 user@machineB \
                -c 'ssh -fN -L59595:machineB:5900 user@machineC' &

user@machineA $ vncviewer localhost:59595

这将打开一个从 A 到 B 的 ssh 会话,并建立从 A:59595 到 B:59595 的隧道;并且在 B 上的 ssh 会话中,它将打开一个从 B 到 C 的新 ssh 会话,并建立从 B:59595 到 C:5900 的隧道。

然后回到 A,您通过 VNC 连接到 localhost:59595。它通过隧道传输到 B:59595,然后 B:59595 捕获它并将其重新通过隧道传输到 C:5900。

我还没有测试过。

(在之前的回答中,我推荐了 socat 和 netcat,但现在很明显您希望整个隧道受到 ssh 保护。)

相关内容