通过中间服务器从 Windows 连接到 VNC 会话

通过中间服务器从 Windows 连接到 VNC 会话

这是一个经常被问到并得到解答的问题。但是,这些解决方案对我来说不起作用,所以我想得到一些帮助来弄清楚为什么不起作用。我知道我过去曾成功地做到了这一点。

我看过: 通过 SSH 连接的 VNC 隧道

通过 SSH 连接的 VNC 隧道

http://crl.ucsd.edu/handbook/vnc/

http://martybugs.net/smoothwall/puttyvnc.cgi

我已经将 PUTTY 配置如下:

在此处输入图片描述

我打开与服务器 A 的连接。然后

ssh -L 5901:localhost:5901 serverB

登录后,我开始 VNC 会话

-bash-4.1$ vncserver :1

New 'serverB:1 (balter)' desktop is serverB:1

Starting applications specified in /home/users/balter/.vnc/xstartup
Log file is /home/users/balter/.vnc/serverB:1.log

-bash-4.1$

我应该可以走了,所以我尝试 VNC 到localhostlocalhost:0localhost:5900。连接失败。

有什么建议吗?

编辑:我应该补充说,serverB 位于防火墙后面,因此我需要使用 serverA 作为中介。

编辑2——根据Nikita的评论:netstat -inptserverB 上 的输出

-bash-4.1$ netstat -inpt
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
bond0      1500   0 25034847553      0      0      0        0      0      0      0 BMmRU
eth0       1500   0  7645087      0      0      0   148398      0      0      0 BMRU
eth4       1500   0 10494292891      0      0      0        0      0      0      0 BMsRU
eth5       1500   0 10644409020      0      0      0        0      0      0      0 BMRU
eth6       1500   0 14540554669      0      0      0        0      0      0      0 BMsRU
ib0        1500   0     5055      0      0      0     4267      0      1      0 BMRU
lo        65536   0 8932391289      0      0      0 8932391289      0      0      0 LRU
-bash-4.1$

我该如何解释这一点?

答案1

您是否忘记单击屏幕截图对话框中的“添加”按钮,以将前向规范实际添加到列表中?

您确定您的最新远程服务器使用 5901 吗?似乎应该如此,但在运行 vncserver 后使用 netstat 检查一下。

最好只使用一个转发。不要转发到本地主机,而是在 Putty 对话框中转发到服务器 B。您只需通过 SSH 连接到服务器 B 即可在那里运行 vncserver,无需转发任何内容。当然,服务器 B 的 vncserver 不应只在本地主机上监听。(SSH 转发代码解析服务器上的名称,因此服务器 B 应该只能在服务器 A 上解析,即使您在 Putty 对话框中使用它的名称)。

相关内容