环境
- 阿里云ECS云服务器 Ubuntu 22.04
- Alibaba Cloud Client 1.5.2
- Firefox 133.0.3 (64 位)
- RealVNC Viewer 7.12.1
步骤
准备
在阿里云上申请云服务器ECS,申请过程略。我申请的实例是Ubuntu 22.04,位置是在中国香港。
下载Alibaba Cloud Client,通过SSH连接远程服务器:
登录服务器,确保工作正常:
在Ubuntu系统上安装图形化界面
更新软件源:
sudo apt-get update
安装图形化桌面:
sudo apt-get install ubuntu-desktop
设置默认启动为图形化桌面(运行 systemctl set-default multi-user.target
,即可取消图形化界面登录):
sudo systemctl set-default graphical.target
重启ECS实例:
sudo reboot
连接图形界面
有两种方法可以连接图形界面:
- 通过ECS管理控制台(推荐):该方法相对简单,不需要在服务器上配置vncserver,也不需要在客户机上安装VNC viewer
- 通过VNC Viewer:即通用的VNC方法,稍微麻烦一些,另外还需要打开服务器的5901端口
通过ECS管理控制台
在ECS管理控制台,点击对应实例上的“远程连接”按钮,然后在弹出对话框中选择“展开其他登录方式”:
然后点击“通过VNC远程连接”下面的“立即登录”按钮:
初始化一下Ubuntu配置,就可以使用了:
通过VNCViewer连接
在ECS服务器上安装VNC:
apt-get install tightvncserver
启动VNC:
vncserver
确认VNC已经启动:
$ ps -ef | grep vnc
ding 2646 1941 0 22:06 pts/1 00:00:00 /bin/sh /home/ding/.vnc/xstartup
ding 2799 1941 0 22:08 pts/1 00:00:00 /bin/sh /home/ding/.vnc/xstartup
ding 2917 1941 0 22:08 pts/1 00:00:00 Xtightvnc :1 -desktop X -auth /run/user/1000/.mutter-Xwaylandauth.PCDZZ2 -geometry 1024x768 -depth 24 -rfbwait 120000 -rfbauth /home/ding/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
ding 2923 1941 0 22:08 pts/1 00:00:00 /bin/sh /home/ding/.vnc/xstartup
root 2926 1684 0 22:08 pts/0 00:00:00 grep --color=auto vnc
VNC使用的是5901端口:
~$ nc -zv localhost 5901
Connection to localhost (127.0.0.1) 5901 port [tcp/*] succeeded!
但是,由于服务器有防火墙,从客户机无法连接到ECS服务器的5901端口:
C:\Users\duke_>nc -zv 47.238.136.198 5901
Ncat: Version 7.95 ( https://nmap.org/ncat )
Ncat: TIMEOUT.
接下来需要打开服务器的5901端口。在Alibaba Cloud Client里,对ECS实例,选择“查看安全组”:
然后在安全组里,选择“添加入方向规则”:
添加入方向规则如下:
现在,从客户机就可以连通ECS服务器的5901端口了:
C:\Users\duke_>nc -zv 47.238.136.198 5901
Ncat: Version 7.95 ( https://nmap.org/ncat )
Ncat: Connected to 47.238.136.198:5901.
Ncat: 0 bytes sent, 0 bytes received in 0.17 seconds.
下载安装VNC Viewer,我使用的是RealVNC Viewer,安装过程略。
新建连接,配置VNC server(别忘了加上 :5901
),如下图所示:
但是连接上去后,只有一片空白,什么也没有:
按照官网的指示( https://help.aliyun.com/zh/simple-application-server/use-cases/use-vnc-to-build-guis-on-ubuntu-18-04-and-20-04
):
apt install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
然后修改 ~/.vnc/xstartup
文件:
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
重启vncserver:
vncserver -kill :1
vncserver
注:启动vncserver时,可以指定分辨率和序号,如:
vncserver -geometry 1920x1080 :1
但是再次连接时,还是一片空白。
于是采用重启大法,把服务器重启了一下,这次终于OK了。
同样,初始化一下Ubuntu配置,就可以使用了:
(注:由于服务器重启才OK,我也不是百分之百确定之前做的两步是否都是必要的。)
另外,不难发现,两种方式,打开的图形界面不太一样……
参考
https://home.console.aliyun.com
https://help.aliyun.com/zh/ecs/use-cases/installing-a-graphical-desktop-environment-for-a-linux-instance
https://help.aliyun.com/zh/ecs/user-guide/log-on-to-an-instance-by-using-vnc
https://blog.csdn.net/heatdeath/article/details/70479161