跳转至

远程桌面

由于远程桌面的配置繁琐以及体验一般,如果您不是强需求桌面程序,推荐您对代码做相应调整(比如opencv的imshow改为imsave保存图片后浏览)

VNC(Virtual Network Computing )是一种图形化的桌面共享协议,它使用远程帧缓冲协议 (RFB) 来远程控制另一台计算机,它将键盘和鼠标事件从一台计算机传输到另一台计算机,通过网络向另一个方向转发图形屏幕更新。 对于一般性的GUI程序运行需求,我们其实可以借助VNC在不安装完整桌面环境的情况下方便快捷的实现,下面我们介绍如何借助turbovnc工具,在实例中运行一个GUI程序并在本地电脑进行显示:

Step.1

安装VNC和必要的一些图形显式库:

apt update && apt install -y libglu1-mesa-dev mesa-utils xterm xauth x11-xkb-utils xfonts-base xkb-data libxtst6 libxv1

# 安装libjpeg-turbo和turbovnc
export TURBOVNC_VERSION=2.2.5
export LIBJPEG_VERSION=2.0.90
wget http://aivc.ks3-cn-beijing.ksyun.com/packages/libjpeg-turbo/libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb
wget http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/turbovnc_${TURBOVNC_VERSION}_amd64.deb
dpkg -i libjpeg-turbo-official_${LIBJPEG_VERSION}_amd64.deb
dpkg -i turbovnc_${TURBOVNC_VERSION}_amd64.deb
rm -rf *.deb

# VNC会使用:1作为显示屏幕,因此我们在shell中需要修改DISPLAY环境变量的值
export DISPLAY=:1
# 启动VNC服务端,这一步可能涉及vnc密码配置(注意不是实例的账户密码)。另外如果出现报错xauth未找到,那么使用apt install xauth再安装一次
/opt/TurboVNC/bin/vncserver -3dwm -noxstartup $DISPLAY

# 启动您想启动且已经安装成功的GUI程序,例如glxgears、firefox等
firefox
这样VNC服务已经在实例中运行,此时可以借助ssh端口转发把实例内VNC服务的5901端口转发到您的本地电脑:ssh -CNgv -L 5901:127.0.0.1:5901 root@region-1.autodl.com -p 36666,注意根据您的实例SSH指令修改此命令中的region-1.autodl.com地址和-p参数后的36666端口,并且在您的本地电脑上执行该命令。

Step.2

在您的local电脑使用turbovnc客户端进行连接,地址为127.0.0.1:5901,一切顺利的话,输入密码就能看到VNC连接成功后的图形化界面,以及正在运行在实例中的GUI程序;另外这里提供不同系统turbovnc客户端的下载链接(也可以到turbovnc官网下载)

Ubuntu: http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/turbovnc_2.2.5_amd64.deb
MacOS: http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/TurboVNC-2.2.5.dmg
Windows: http://aivc.ks3-cn-beijing.ksyun.com/packages/turbovnc/TurboVNC-2.2.5-x64.exe

img