我正在尝试通过 vnc 访问我的工作计算机(服务器 C)。我拥有这台机器的 root 权限。我无法直接访问它,因此我必须通过服务器 B 进行访问。我已完成以下步骤。
首先在本地机器上运行
ssh -L 5900:服务器C:5900 用户@服务器B
然后在 serverC 上我运行
x11vnc-更安全-本地主机-nopw-一次-显示:0
然而当我这样做
vinagre 本地主机::5900
在我的本地机器上它说无法连接。
我的本地机器和服务器 C 都在运行 ubuntu。服务器 B 正在运行 CentOS,而我没有 root 权限。
我究竟做错了什么?
如果没有,有什么好的方法来诊断问题?有没有办法判断服务器 B 是否禁用了端口转发?有没有办法在用户空间进行端口转发?
答案1
查看此相关超级用户问题中已接受答案中的选项#2:通过多跳的 SSH 隧道
除非您可以在 ssh 连接之外将流量从服务器 B 直接发送到服务器 C,否则选项#1 可能不适合您。
选项#3 不适合您,因为它假定您能够直接与服务器 C 建立 ssh 连接。
答案2
尽管这有点复杂,但它确实有效。
ssh -v -L 1200:serverC:22 user@serverB
ssh -v -L 5900:127.0.0.1:5900 -p 1200 [email protected]
x11vnc -safer -localhost -nopw -once -display :0
vinagre localhost::5900