目录
引言
一直希望有个云端的桌面版Ubuntu,这样走到哪里,都可以远程使用Linux系统。但是看来下华为云的云桌面,发现默认只支持Windows,要是使用Linux系统,就需要自己去准备操作系统镜像,有点麻烦。今天尝试使用华为云ECS服务器来实现Linux云桌面的功能。平时使用华为ECS都是使用服务器版本,要变成桌面版就需要额外做一些配置。虽然优快云上已经有一些类似的解决方案,但是和最新的Ubuntu 24.02 相比还是有一些小的不同,就特别记录一下。
安装桌面环境
桌面环境我选择的是 Xfce 桌面,轻量且适合远程访问,使用下面的命令安装:
sudo apt update && sudo apt upgrade -y
sudo apt install xfce4 xfce4-goodies -y
安装并配置VNC服务器
VNC 是虚拟网络控制台的缩写,由著名的 AT&T 的欧洲研究实验室开发的远程控制协议。只要在Windows上安装了VNC客户端,就可以远程控制安装了VNC服务器的LInux系统,能力强大,高效实用。
安装 TigerVNC 服务器
我在华为ECS服务器上安装的是TigerVNC 服务器,采用下面的命令:
sudo apt install tigervnc-standalone-server tigervnc-common -y
初始化 VNC 配置
运行以下命令设置 VNC 密码并生成配置文件:
vncserver
系统会提示你设置一个密码(至少 6 个字符),以及是否设置一个仅用于查看的密码(可选)。
初始化后会自动启动一个 VNC 会话,我们需要先停止它来修改配置:
vncserver -kill :1
注意这里的 :1 表示显示端口,对应 VNC 端口 5901。
配置 VNC 启动脚本
按照一般的做法,需要配置VNC的启动脚本。但是我按照下面的步骤配置后,并不能正确工作。下面仅记录一下步骤,后面会讲解决办法。
创建或编辑 ~/.vnc/xstartup 文件:
nano ~/.vnc/xstartup
添加以下内容:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 &
保存并退出编辑器(按 Ctrl+O 保存,Ctrl+X 退出)。
设置脚本权限:
chmod +x ~/.vnc/xstartup
启动 VNC 服务器
使用下面的命令启动服务器:
vncserver -geometry 1920x1080 -depth 24
但是我遇到了如下错误:
root@ecs-c88c:~# vncserver -geometry 1920x1080 -depth 24
New Xtigervnc server 'ecs-c88c:1 (root)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth -passwd /tmp/tigervnc.UeuoW0/passwd :1 to connect to the VNC server.
=================== tail /root/.vnc/ecs-c88c:1.log ===================
======================================================================
Session startup via '/root/.vnc/xstartup' cleanly exited too early (< 3 seconds)!
Maybe try something simple first, e.g.,
tigervncserver -xstartup /usr/bin/xterm
The X session cleanly exited!
Killing Xtigervnc process ID 13110... success!
看上去我设置的启动脚本并没有工作。多次尝试无关后,我直接采用了下面的命令行居然成功了。
vncserver -xstartup startxfce4 -geometry 1920x1080 -depth 24 -localhost no # 禁用仅本地访问
这里加上-localhost no 是为了保证远程也可以访问VNC到服务器,否则可能只能本地才能访问到VNC服务器。
服务器启动后输入如下信息:
root@ecs-c88c:~# vncserver -xstartup startxfce4 -geometry 1920x1080 -depth 24 -localhost no # 禁用仅本地访问
New Xtigervnc server 'ecs-c88c:1 (root)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.iUWri4/passwd ecs-c88c:1 to connect to the VNC server.
开放5900和5901端口访问
VNC 默认使用 5901 端口(对应显示编号 :1),远程连接需要确保该端口在服务器端和网络中是开放的。华为ECS默认的安全策略是禁止这个端口的,所以需要在ECS的控制台中进行修改安全组规则。

客户端访问
客户端使用的是MobaXterm,在其中创建一个VNC连接,注意端口号设置为5901。

连接成功后就可以显示桌面了。

结束语
感谢您花时间阅读本篇文章,希望上面的内容对您有所帮助。
4万+

被折叠的 条评论
为什么被折叠?



