EC2 Ubuntu操作系统(X86_64架构)装Mate桌面并使用VNC登录

一、背景

某些Linux应用可能需要安装GUI图形界面方可运行,这时候一般会要求Ubuntu 20.04 LTS版本(基于Intel处理器的X86_64架构),或者是22.04 LTS版本。此时,可以参考本文的方法安装。

二、创建EC2并指定Ubuntu系统

1、EC2创建

在创建EC2时候,从EC2控制台上Quickstart列表中的AMI里找到Ubuntu 20.04 LTS22.04 LTS。注意不需要找Marketplaces的镜像,用Quickstart列表中的Ubuntu菜单即可。

机型方面,因为一些特殊软件要求Ubuntu特定版本,且大多是Intel架构(x86_64),因此这里就不选ARM架构了。建议内存不低于4GB,例如测试机型选择t3.medium(2vCPU/4GB),生产机型选m6i.large(2vCPU/8GB),或者更高规格。

此外,默认的系统盘只有8GB,在安装大量图形软件包时候会遇到容量不足,因此创建EC2时候改成系统盘不低于20GB。

在EC2的安全组配置步骤,放行TCP协议5901端口。最后创建EC2。

2、安装最新补丁

创建后登录EC2。可通过EC2界面上的Connect按钮进行登录。登录方式包括SSH、EC2 Instance ConnectSession Manager等,请查考对应文档。

登录成功将操作系统更新到最新版本,并重启,让新安装的内核生效。这个过程一般会下载500MB以上的补丁包,需要一段时间,请等待。

sudo -i apt update && sudo apt upgrade -y
reboot

3、确认系统启动正常

升级完毕后,通过EC2控制台确认系统已经正常运行。进入EC2控制台,选中要操作的EC2,点击右上角更多操作按钮,从下拉菜单中选择Monitor and troubleshoot监控和调试,从菜单中选择Get instance screenshot获取系统截图。如下截图。

随后可看到系统启动命令行界面成功。如下截图。

三、安装Mate桌面

1、Ubuntu 20.04 LTS系统安装步骤

登录到EC2,安装Mate桌面。这个过程一般会下载3GB以上的软件包,需要一段时间,请等待。

sudo apt install ubuntu-mate-desktop -y

安装开会时后,中间步骤会出现紫色的背景界面,提示A display manager is a program that provides graphical login capabilities for the X Window System.。这个时候请选择lightgdm。如下截图。

选择完毕后,自动安装软件包完成。安装完毕后,执行reboot重启。

为了验证安装成功,在重启完成后可以通过EC2控制台查看EC2 screenshot。可以发现图形界面已经启动。如下截图。

至此安装Mate完成。

2、Ubuntu 22.04系统安装步骤

安装前确认系统为最新,通过EC2 Screenshot确认启动成功。

执行安装命令:

sudo apt install ubuntu-mate-desktop -y

Ubuntu 22.04的安装过程不会出现和20.04版本安装时候提示选择display manager的步骤,而是直接完成。安装完毕提示如下:

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

现在执行reboot重启。

重启后再次查看EC2 Screenshot,可以看到Ubuntu 22.04启动图形桌面成功。

四、在EC2上安装VNC Server并进行配置

1、安装VNC服务器端

sudo apt install tightvncserver net-tools -y

2、设置VNC密码

以root身份来设置VNC的管理员密码,输入管理员密码。在提示Verify之后,要再输入一遍确认密码。

vncpasswd

当提示是否设置VNC Viewonly只能观看用户的密码时候,输入n表示不设置只读用户。

3、启动VNC服务

以root身份,执行如下命令:

vncserver

此命令将启动一个VNC进程监听在5901端口。因此还需要在EC2的安全组放行TCP协议5901端口。返回信息如下表示第一次启动成功。

xauth:  file /root/.Xauthority does not exist

New 'X' desktop is ip-172-31-16-176:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ip-172-31-16-176:1.log

4、停止VNC服务(可选)

以root身份,执行如下命令:

vncserver -kill :1

五、从客户端登录

1、直接登录

注意:如果您是通过互联网访问的话,VNC使用的5900/5901等端口可能被运营商屏蔽。例如北京地区北京联通家庭宽带普遍屏蔽了这个端口。因此为了验证VNC的登录正常,可以在云端启动一台Windows的EC2,通过RDP远程桌面登录后,在使用VNC客户端登录。

本文使用tightvnc的客户端登录,官网链接在这里

2、通过互联网的SSH进行端口转发

如果互联网上无法直接连通5901端口的话,可以通过SSH隧道转发,方法是:

ssh -L 5901:localhost:5901 -i EC2登录PEM证书文件 ubuntu@公网IP

然后在使用VNC客户端连接本机的5901端口即可登录到VNC桌面。

注意:本方法在中国区可用,如果要连接的EC2位于国外,然后尝试使用基于互联网的SSH转发,那么因为国际互联网的不稳定,大概率会连接失败

3、通过Session Manager转发

请参考本篇博客。本篇博客讲解的是转发3389 RDP协议,请替换其中的端口为5901即可。

全文完。