如何在运行 Amazon Linux 2 的 Amazon EC2 实例上安装 GUI?
我想在运行 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,请执行以下操作:
- 安装 MATE 桌面环境,这是一款基于 GNOME 2 的轻量化 GUI,可作为 Amazon Linux 2 的额外补充。有关 MATE 的更多信息,请参阅 MATE 桌面环境网站。
- 安装虚拟网络计算(VNC)服务,例如 TigerVNC。有关 TigerVNC 的更多信息,请参阅 tigervnc.org 网站。
- 使用 VNC 连接到 GUI。
- (可选)关闭 VNC 的密码身份验证。
- (可选)安装网页浏览器,例如 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 实例?
解决方法
开始之前
实例必须位于公有子网中,并可通过公有 IP 地址或弹性 IP 地址进行访问。您也可以使用 AWS VPN 或 AWS Direct Connect 建立连接,通过私有 IP 访问您的实例。这些说明不适用于使用堡垒主机的环境。出于安全原因,指向 VNC 服务器的流量使用 SSH 通过隧道进行传输。最佳做法是避免在安全组中打开 VNC 端口。
- 通过运行 sudo yum update 更新您的实例,然后重启该实例。执行这些步骤时,更新和重启失败可能会导致不可预知的结果。
安装 MATE 桌面环境
- 安装 MATE 软件包。
sudo amazon-linux-extras install mate-desktop1.x
- 将 MATE 定义为所有用户的默认桌面。
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
安装 TigerVNC
- 安装 TigerVNC 服务器:
sudo yum install tigervnc-server
- 为该用户配置一个由六到八个字符组成的 VNC 专用密码。当系统询问您是否要输入仅限查看的密码时,按“n”。
vncpasswd
- 限制 VNC 网络对本地主机的访问权限,这样,就只能使用安全的 SSH 隧道来访问 VNC。
创建 tigervnc 配置目录:
sudo mkdir /etc/tigervnc
创建一个包含 localhost 选项的强制配置文件:
sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
- 在 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
- 如果尚未安装 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 代表最新版本。
- 在您的本地计算机上,使用 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。
-
在目标字段中输入 localhost:5901。
-
选择添加。
-
在本地计算机上打开 TigerVNC Viewer。当系统要求输入 VNC 服务器主机名时,输入 localhost:1,然后连接到它。
-
输入您在“安装 TigerVNC”部分的步骤 2 中设置的 VNC 密码。如果出现提示连接不安全的警示,请忽略该警示消息。您正在使用加密的 SSH 隧道访问 VNC 服务器。
此时会出现您的 MATE 桌面环境。
(可选)关闭 VNC 的密码身份验证
关闭 VNC 密码身份验证不是最佳做法。任何能够使用 SSH 连接到您的实例的用户都可以创建隧道并访问您的 VNC 桌面。如果这是一个单用户实例(即没有其他人可以登录),并且您确实想关闭 VNC 的密码身份验证,请按照以下步骤进行操作:
- 将 VNC 服务器的“安全类型”设置更改为“无”:
echo SecurityTypes=None >> ~/.vnc/config
- 重新启动 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 浏览器背后的开源项目),请执行以下操作:
- 激活 EPEL 存储库。有关更多信息,请参阅 Fedoraproject.org 网站上的 EPEL 文档。
sudo amazon-linux-extras install epel
- 安装 Chromium 软件包。
sudo yum install chromium
Chromium 安装在 MATE 的应用程序、互联网、Chromium Web 浏览器路径下。
要安装 Mozilla Firefox(仅限当前用户),请执行以下操作:
-
将适用于 Linux 64 位最新版本的 Firefox 下载到您的本地计算机。请访问 mozilla.org 网站下载相应的版本。
-
使用 SSH 连接到 EC2 实例。
-
提取文件内容。此示例命令表示该文件位于 ec2-user 的主目录中。根据需要更改路径和 Firefox 版本。
tar jxf ~/firefox-xx.y.tar.bz2 -C ~/
- 使用 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 中创建的桌面图标启动 Firefox。
-
如果出现提示,提醒应用程序启动器未被标记为可信,请选择“标记为可信”,然后双击打开 Firefox。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 个月前