我在特定机器上经常使用 VNC。但它位于一个我无法直接访问的单独网络上。
+----------------+ +----------------+
| Linux | | Windows | +---------------+
| VNC client | | OpenSSH Server | | Linux |
| 192.168.1.100-------192.168.1.22 | | VNC server |
| | | 10.10.1.33----------10.10.1.44 |
+----------------+ | | | |
+----------------+ +---------------+
目前,我通过 RDP 连接到桥接网络的 Windows 计算机。从 RDP 桌面,我启动 VNC 客户端连接到 VNC 服务器。中间的 Windows 计算机运行 OpenSSH。我有没有办法使用它,以便直接连接到 VNC 服务器?
我目前针对ssh
和的解决方案scp
是:
ssh -J 192.168.1.22 10.10.1.44
scp -o=ProxyJump=192.163.1.22 10.10.1.44:file .
如果可能的话,我更愿意让 Windows 机器保持原样,并从客户端执行此操作。这是因为我实际上有很多这样的 Windows 桥,每个桥都有一个独立的 10.10.1.x 网络,每个网络上都有许多 VNC 服务器。我将其用作vinagre
vnc 客户端和x11vnc
vnc 服务器。
答案1
如果您已经有 SSH 连接,则只需添加端口转发:
ssh -J 192.168.1.22 -L 5990:127.0.0.1:5900 10.10.1.44
在-L 5990:127.0.0.1:5900
中5990
是本地机器的任意端口号。您将 VNC 客户端连接到此端口。 是127.0.0.1:5900
目标地址和端口。这假设您的 VNC 服务器在端口 5900 上运行。目标地址127.0.0.1
是从服务器的角度来看的,您也可以将其替换为10.10.1.44
。