我正在尝试通过 SSH 访问远程 VNC 服务器(例如服务器)。我可以通过一个客户端(例如客户端 1)进行此操作:
客户端 1(工作正常):
ssh -L 5901:localhost:5900 server` and then `vncviewer localhost:5901
现在,我从另一个客户端(比如说客户端 2)连接到客户端 1,并尝试访问服务器的 VNC 会话。
客户端 2:
ssh -L 5901:localhost:5901 client1` and then `vncviewer localhost:5901`
然后我在 SSH 提示符上收到以下错误:
channel 4: open failed: connect failed: Connection refused
并且 VNC 客户端指出服务器已关闭连接。(编辑)
我确切地表示我不会尝试将 2 个客户端连接到非共享 VNC 会话。我认为问题与端口转发或 SSH 有关。
我可能会错过什么?
答案1
正如有人指出的那样,此主题包含解决方案:不需要 SSH 反弹,我只需要客户端 1 转发服务器的端口 5900。因此在客户端 2 上:
ssh -L 5901:server:5900 client1
就这样!非常感谢 Kamil Maciorowski!
顺便说一句,我尝试了 Winnie Tigger 的解决方案,但是我的 VNC 客户端无法通过这种方式连接服务器……
答案2
我不确定我理解得是否正确。客户端 1 和远程服务器之间已有连接。然后您从客户端 2 ssh 进入客户端 1 并尝试在客户端 1 上启动 vncviewer?
如果是这样,您不需要在客户端 1 和客户端 2 之间进行端口 5901 的端口转发。您更需要一种称为 X-Fowarding 的东西。在客户端 1 上配置您的 sshd.conf,允许 X-forwarding,然后在客户端 2 上使用“ssh -X client1”连接到客户端 1,然后启动您的 vncviewer。
但请注意,这种构造的性能不会很好。