SSH 端口转发登录 VNC 远程桌面
正常情况下,在创建 VNC 桌面后,我们可根据对应会话 ID 登录远程桌面。然而,并非所有服务器都开放了 VNC 桌面相应的端口,有时只会开放一个 SSH 端口,甚至需要通过端口转发访问 SSH 端口。此时,我们可通过 SSH 隧道技术通过 SSH 登录远程服务器并建立本地某端口到远程服务器 VNC 端口的 SSH 隧道,通过访问本地该端口实现访问 VNC 远程桌面的需要。
VNC 端口规则
VNC 的默认端口号是 5900
。如果使用 VNC 工具访问: 192.168.6.31:1
时,那么应用实际访问服务器的端口为 5900 + 1 = 5901
。在建立 SSH 隧道时,便需要将该端口映射到本地某端口即可。
SSH 隧道访问远程 VNC 桌面
1、远程服务器开启 VNC 服务
SSH 登录远程服务器,在命令行执行 vncserver -geometry 1920x1080
来创建会话,输出的最下面的 :n
(n为一个整数) 就是你创建的会话 ID,初次执行 vncserver 需要创建一个 VNC 登录密码。
示例如下,此时会话 ID 为 1
,则 VNC 实际端口为 5901
。
1 | (base) xieqk@Ti-Twe:~$ vncserver -geometry 1920x1080 |
2、建立 SSH 隧道
远程开启 VNC 桌面后,若为外网访问,且内网服务器只开放了 SSH 端口,可通过 SSH 隧道进行端口转发登录。若 VNC 桌面会话 ID 为 1
,则其实际端口为 5901
,于是将远程的 5901
端口映射到本地的 8888
端口如下,
1 | # ssh -N -L <local port>:localhost:<remote port> <SSH hostname> |
3、VNC 通过本地端口访问远程桌面
在 VNC Viewer 里面,填入本地服务器地址:本地端口
,如 localhost:8888
,输入第一步创建的密码即可登陆图像界面,实现通过访问本地 8888
端口登录 VNC 远程桌面的目的。
完整流程如下:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 谢乔康 | Qiaokang Xie!
评论