使用远程桌面
VNC(Virtual Network Computing )是一种图形化的桌面共享协议,它使用远程帧缓冲协议 (RFB) 来远程控制另一台计算机。 对于一般性的GUI 程序运行需求,用户可以借助 VNC 在不安装完整桌面环境的情况下方便快捷的实现。本文旨在介绍如何借助 TigerVNC 和 TurboVNC 工具,在 Ubuntu 22 系统的容器实例中运行 GUI 程序,并通过本地电脑访问。
前提条件
容器实例支持 SSH 访问。
使用 TigerVNC 工具
-
执行如下命令,安装 tigervnc 远程桌面。
apt update && apt install -y tigervnc-standalone-server xterm
-
等待远程桌面安装完成后,执行如下命令,启动远程桌面。
tigervncserver -localhost no -display :3101 -xstartup /usr/bin/xterm
注意 -
由于 tigervncserver 的默认端口为 5900,故若用户想使用 9001 开放端口访问容器实例,则此命令行中需指定端口号为 3101。
-
在启动过程中,用户需根据实际情况设置远程桌面的密码。
-
view-only
密码可不设置,根据提示直接输入n
即可。
-
-
登录控制台,在左侧导航栏选择容器实例,在实例列表页面中,点击指定实例所在行的更多访问。
-
查看并记录更多访问信息窗口中,开放端口
9001
所对应的地址。 -
用户本地电脑下载并安装 TigerVNC viewer 客户端。
说明 -
用户根据本地电脑自行选择相应的安装包下载即可。
-
本实践中使用 macOS 系统的 TigerVNC viewer 客户端,其他系统的客户端界面可能存在差异,以用户下载的版本界面为准。
-
-
启动 TigerVNC viewer 客户端,在弹出的连接窗口中,输入容器实例 9001 端口所对应的 IP 地址后,点击连接并输入密码后登录 VNC。
-
登录 VNC 后,用户可根据实际情况执相应命令。执行如下命令,可生成相应时钟图形。
xclock
使用 TurboVNC 工具
-
执行如下命令,安装 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 服务。
USER=root /opt/TurboVNC/bin/vncserver :1 -desktop X -auth /root/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -fp /usr/share/fonts/X11/misc/,/usr/share/fonts -rfbport 6006
说明 此步骤运行过程中,需设置 VNC 服务的密码,用户自定义即可,该密码将用于后续 VNC 服务的连接。
-
执行如下命令,检查服务是否启动。若返回结果中有 vncserver 进程,则证明已启动。
ps -ef | grep vnc
-
根据本地电脑系统,从 TurboVNC 官网下载并安装客户端。
-
启动 VNCServer 服务(即步骤 4)时,手动设置了 rfbport=6006 端口,故需在本地电脑执行如下操作,使用 SSH 将容器实例中的端口代理至本地。
-
登录控制台,在左侧导航栏选择容器实例,在实例列表页面中,点击指定实例所在行的更多访问。
-
在弹出的窗口中,查看 SSH 访问信息,记录 SSH 命令以及初始密码。
-
打开本地电脑终端,执行如下代理命令,并输入密码。
ssh -CNg -L 6006:127.0.0.1:6006 root@139.198.179.206 -p 42151
-
6006:127.0.0.1:6006
是指代理实例内 6006 端口到本地 6006 端口。 -
root@139.198.179.206
和42151
端口号为平台内容器实例 SSH 访问信息,需根据实际情况进行修改。
-
-
-
本地电脑打开 TurboVNC 客户端,VNC Server 中输入
127.0.0.1:6006
,点击 Connect。 -
在新的弹窗中,输入启动 VNC 服务时设定的密码,即可看到 VNC 连接成功后的界面。