如何在运行 Amazon Linux 2 的 Amazon EC2 实例上安装 GUI?

3 分钟阅读
0

我想在运行 Amazon Linux 2 的 Amazon Elastic Compute Cloud(Amazon EC2)实例中安装图形用户界面(GUI)。应该如何操作?

简短描述

在继续操作之前,请先考虑使用以下其中一种替代方法手动安装 GUI:

  • 从预装 MATE 的 Amazon Linux 2 AMI 上启动。有关更多信息,请参阅配置 Amazon Linux 2 MATE 桌面连接
  • 开始使用 Amazon WorkSpaces,这是一项完全托管的永久桌面虚拟化服务。有关更多信息,请参阅 Amazon WorkSpaces
  • 开始使用 NICE DCV,这是一种远程显示协议,可将远程桌面和应用流从任何云或数据中心安全地传输到任何设备。有关更多信息,请参阅 NICE DCV

如果要继续手动安装 GUI,请执行以下操作:

  1. 安装 MATE 桌面环境,这是一款基于 GNOME 2 的轻量化 GUI,可作为 Amazon Linux 2 的额外补充。有关 MATE 的更多信息,请参阅 MATE 桌面环境网站
  2. 安装虚拟网络计算(VNC)服务,例如 TigerVNC。有关 TigerVNC 的更多信息,请参阅 tigervnc.org 网站
  3. 使用 VNC 连接到 GUI。
  4. (可选)关闭 VNC 的密码身份验证。
  5. (可选)安装网页浏览器,例如 Chromium 或 Firefox。有关 Chromium 的更多信息,请访问 chromium.org 网站。有关 Firefox 的更多信息,请访问 mozilla.org 网站。请注意,Chromium 和 Firefox 都只能在 X86 变体环境下运行。

**注意:**这些说明仅适用于 Amazon Linux 2。要确认当前运行的版本,请执行以下命令:

$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Amazon Linux 2"

有关使用 GUI 访问 EC2 macOS 实例的说明,请参阅如何通过 GUI 访问我的 Amazon EC2 Mac 实例?

解决方法

开始之前

  1. 使用 SSH 以 EC2-user 身份连接到您的实例

实例必须位于公有子网中,并可通过公有 IP 地址或弹性 IP 地址进行访问。您也可以使用 AWS VPNAWS Direct Connect 建立连接,通过私有 IP 访问您的实例。这些说明不适用于使用堡垒主机的环境。出于安全原因,指向 VNC 服务器的流量使用 SSH 通过隧道进行传输。最佳做法是避免在安全组中打开 VNC 端口。

  1. 通过运行 sudo yum update 更新您的实例,然后重启该实例。执行这些步骤时,更新和重启失败可能会导致不可预知的结果。

安装 MATE 桌面环境

  1. 安装 MATE 软件包。
sudo amazon-linux-extras install mate-desktop1.x
  1. 将 MATE 定义为所有用户的默认桌面。
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'

安装 TigerVNC

  1. 安装 TigerVNC 服务器:
sudo yum install tigervnc-server
  1. 为该用户配置一个由六到八个字符组成的 VNC 专用密码。当系统询问您是否要输入仅限查看的密码时,按“n”。
vncpasswd
  1. 限制 VNC 网络对本地主机的访问权限,这样,就只能使用安全的 SSH 隧道来访问 VNC。

创建 tigervnc 配置目录:

sudo mkdir /etc/tigervnc

创建一个包含 localhost 选项的强制配置文件:

sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
  1. 在 1 号显示屏上启动 VNC 服务器,并将其设置为始终在启动时启动。

创建一个新的 systemd 单元。

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service

使用 sed 命令将新单元中出现的所有 USER 替换为 ec2-user。

sudo sed -i 's/<USER>/ec2-user/' /etc/systemd/system/vncserver@.service

重新加载 systemd 管理器配置。

sudo systemctl daemon-reload

启用该服务。

sudo systemctl enable vncserver@:1

启动该服务。

sudo systemctl start vncserver@:1

使用 VNC 连接到 GUI

  1. 如果尚未安装 TigerVNC 软件,则在本地计算机上安装。TigerVNC 有 Windows、Linux 和 macOS 几种版本。请访问 TigerVNC 网站下载相应的版本。

**Linux:**许多发行版的存储库中均有 tigervnc 的软件包,使用相应的软件包管理器即可进行安装。

macOS:下载并安装 TigerVNC-x.y.z.dmg,其中 x.y.z 代表最新版本。
Windows:
下载并安装 tigervnc64-x.y.z.exe(64 位)或 tigervnc-x.y.z.exe(32 位),其中 x.y.z 代表最新版本。

  1. 在您的本地计算机上,使用 SSH 连接到您的实例,同时创建隧道,以将本地端口 5901/TCP(VNC)上的所有流量转发到实例的 VNC 服务器:

Linux 和 macOS

使用 SSH 连接您的实例时,添加**-L** 参数激活端口转发。根据需要将 PEM_FILE 替换为您的私有密钥,并酌情将 INSTANCE_IP 替换为您的实例的公有或私有 IP。

ssh -L 5901:localhost:5901 -i PEM_FILE ec2-user@INSTANCE_IP

Windows

使用 PuTTY 打开连接时,配置端口转发,然后打开连接:

  1. 连接菜单中选择 SSH,然后选择隧道

  2. 源端口字段中输入 5901。

  3. 目标字段中输入 localhost:5901

  4. 选择添加

  5. 在本地计算机上打开 TigerVNC Viewer。当系统要求输入 VNC 服务器主机名时,输入 localhost:1,然后连接到它。

  6. 输入您在“安装 TigerVNC”部分的步骤 2 中设置的 VNC 密码。如果出现提示连接不安全的警示,请忽略该警示消息。您正在使用加密的 SSH 隧道访问 VNC 服务器。

此时会出现您的 MATE 桌面环境。

(可选)关闭 VNC 的密码身份验证

关闭 VNC 密码身份验证不是最佳做法。任何能够使用 SSH 连接到您的实例的用户都可以创建隧道并访问您的 VNC 桌面。如果这是一个单用户实例(即没有其他人可以登录),并且您确实想关闭 VNC 的密码身份验证,请按照以下步骤进行操作:

  1. 将 VNC 服务器的“安全类型”设置更改为“无”:
echo SecurityTypes=None >> ~/.vnc/config
  1. 重新启动 VNC 服务器。
sudo systemctl restart vncserver@:1

(可选)安装网页浏览器(仅限 X86)

在 Amazon Linux 2 存储库中,AWS 不提供 Chromium 或 Firefox 等网页浏览器。要安装此类浏览器,请按照以下步骤进行操作。请注意,对于从第三方来源安装的软件,AWS 不提供支持服务。

以下说明适用于基于 64 位 Intel 和 AMD 处理器(x86_64)的 EC2 实例。这些第三方来源的网页浏览器不支持基于 Graviton 处理器(aarch64)的实例。要确认您的实例的架构,请执行以下命令:

$ uname -m
x86_64

要安装 Chromium(Google Chrome 浏览器背后的开源项目),请执行以下操作:

  1. 激活 EPEL 存储库。有关更多信息,请参阅 Fedoraproject.org 网站上的 EPEL 文档
sudo amazon-linux-extras install epel
  1. 安装 Chromium 软件包。
sudo yum install chromium

Chromium 安装在 MATE 的应用程序互联网Chromium Web 浏览器路径下。

要安装 Mozilla Firefox(仅限当前用户),请执行以下操作:

  1. 将适用于 Linux 64 位最新版本的 Firefox 下载到您的本地计算机。请访问 mozilla.org 网站下载相应的版本。

  2. 下载 Firefox 后,将文件复制到您的实例。有关说明,请参阅相应的 LinuxWindows 网站。

  3. 使用 SSH 连接到 EC2 实例。

  4. 提取文件内容。此示例命令表示该文件位于 ec2-user 的主目录中。根据需要更改路径和 Firefox 版本。

tar jxf ~/firefox-xx.y.tar.bz2 -C ~/
  1. 使用 vim 或您习惯的编辑器创建桌面图标。使用以下示例所示的内容创建 ~/Desktop/Firefox.desktop 文件。
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png
Icon[en_US]=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png
Name[en_US]=Firefox
Exec=/home/ec2-user/firefox/firefox
Comment[en_US]=Firefox web browser
Name=Firefox
Comment=Firefox web browser
GenericName[en_US.UTF-8]=Firefox web browser
Categories=Network;WebBrowser;
  1. 使用您在步骤 5 中创建的桌面图标启动 Firefox。

  2. 如果出现提示,提醒应用程序启动器未被标记为可信,请选择“标记为可信”,然后双击打开 Firefox。

AWS 官方
AWS 官方已更新 2 年前