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

上次更新时间:2021 年 4 月 20 日

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

简短描述

在继续之前,请考虑以下替代方法之一来手动安装 GUI:

  • 从预装了 MATE 的 Amazon Linux 2 AMI 启动。有关详细信息,请参阅配置 Amazon Linux 2 MATE 桌面连接
  • 开始使用 Amazon WorkSpaces,它是一种完全托管的持久桌面虚拟化服务,可让您的用户随时随地通过任何受支持的设备访问他们需要的数据、应用程序和资源。有关详细信息,请参阅产品主页
  • 开始使用 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. (可选)安装 Web 浏览器,例如 Firefox 或 Chromium。有关 Chromium 的更多信息,请参阅 chromium.org 网站。有关 Firefox 的更多信息,请参阅 mozilla.org 网站。请注意,Chromium 仅在 EPEL 存储库的 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-用户身份连接到您的实例

此实例必须位于公有子网中,并可通过公有 IP 地址或弹性 IP 地址访问。或者,您可以使用 AWS VPNAWS Direct Connect 建立一个连接,可让您通过私有 IP 访问您的实例。这些说明不适用于使用堡垒主机的环境。出于安全原因,将使用 SSH 为到 VNC 服务器的流量建立隧道。此为避免在您的安全组中开放 VNC 端口的最佳实践。

2.    运行 sudo yum update 更新您的实例,然后重启实例。如果不更新并重启实例,可能会导致执行以下步骤时出现无法预测的结果。

安装 MATE 桌面环境

1.    安装 MATE 软件包。

sudo amazon-linux-extras install mate-desktop1.x

2.    将 MATE 定义为所有用户的默认桌面。

sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'

安装 TigerVNC

1.    安装 TigerVNC 服务器:

sudo yum install tigervnc-server

2.    为此用户配置特定于 VNC 的密码,该密码应包含 6 到 8 个字符。如果系统询问您是否想要输入一个仅限查看的密码,请按“n”。

vncpasswd

3.    限制对本地主机的 VNC 网络访问,以便只能通过安全的 SSH 隧道访问 VNC。

创建 tigervnc 配置目录:

sudo mkdir /etc/tigervnc

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

sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'

4.    在显示编号为 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 可用于 Linux、Windows 和 macOS。如要下载,请访问 TigerVNC 网站

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

Linux:tigervnc 软件包在许多发行版的存储库中都可用,并且可以使用各自的软件包管理器进行安装。

macOS:下载并安装 tigerVNC-x.y.z.dmg,其中 x.y.z 代表最新版本。

2.    在本地计算机上,使用 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 打开连接时,配置端口转发,然后打开连接:
    从连接菜单中,选择 SSH,然后选择隧道
    在源端口字段中输入 5901。
    在 Destination 字段中输入 localhost: 5901
    选择添加

3.    在本地计算机上打开 TigerVNC 查看器。当系统要求输入 VNC 服务器主机名时,输入 localhost:1,然后与其连接。

4.    输入您在安装 TigerVNC 内容第 2 步中设置的 VNC 密码。如果出现警告提示该连接不安全,请忽略它。您正在使用加密的 SSH 隧道访问 VNC 服务器。

您的 MATE 桌面环境将出现。

(可选)禁用 VNC 的密码身份验证

AWS 不建议您禁用 VNC 密码身份验证。任何能够通过 SSH 连接到您的实例的用户都可以创建隧道并访问您的 VNC 桌面。如果这是单用户实例(也就是说,没有其他人可以登录),并且您仍想禁用 VNC 的密码身份验证,请按照下列步骤操作:

1.    将 VNC 服务器的安全类型设置更改为无:

echo SecurityTypes=None >> ~/.vnc/config

2.    重新启动 VNC 服务器。

sudo systemctl restart vncserver@:1

(可选)安装 Web 浏览器

AWS 目前不在 Amazon Linux 2 存储库中提供 Chromium 或 Firefox 等网络浏览器。要安装此类浏览器,请执行以下步骤。

注意:AWS 不支持从第三方源安装的软件。

要安装 Chromium(Google Chrome 的开源版本),请执行以下操作:

1.    启用 EPEL 存储库。请参阅 Fedoraproject.org 网站上的 EPEL 文档了解更多信息。

sudo amazon-linux-extras install epel

2.    安装 Chromium 程序包。

sudo yum install chromium

将 Chromium 安装到 应用程序InternetChromium Web 浏览器下的 MATE 上。

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

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

2.    下载 Firefox 后,将文件复制到您的实例

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

tar jxf ~/firefox-xx.y.tar.bz2 -C ~/

4.    使用 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;

5.    使用第 4 步中创建的桌面图标启动 Firefox。

6.    如果出现有关应用程序启动器未被标记为受信任的提示,请单击 “标记为受信任”,然后再次双击以打开 Firefox。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?