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

4 分钟阅读
0

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

简短描述

您可以手动安装 GUI,也可以选择以下方法之一:

  • 从预装了 MATE 的 Amazon Linux 2 亚马逊机器映像(AMI)启动。有关更多信息,请参阅 Configure the Amazon Linux 2 MATE desktop connection
  • 使用 Amazon WorkSpaces,这是一项完全托管的永久桌面虚拟化服务。有关更多信息,请参阅 Amazon WorkSpaces Family
  • 使用 Amazon DCV,这是一种远程显示协议,可将远程桌面和应用流从任何云或数据中心安全地传输到任何设备。有关更多信息,请参阅 Amazon DCV

解决方法

先决条件

  1. 使用 SSH 以 Amazon EC2 用户身份连接到您的实例。该实例必须位于公有子网中,并可通过公有 IP 地址或弹性 IP 地址进行访问。您也可以使用 AWS VPNAWS Direct Connect 建立连接,通过私有 IP 访问您的实例。这些说明不适用于使用堡垒主机的环境。出于安全原因,发往虚拟网络计算(VNC)服务器的流量使用 SSH 进行隧道传输。最佳做法是避免在安全组中打开 VNC 端口。
  2. 运行 sudo yum update 更新您的实例,然后重启该实例。更新和重启失败可能会导致后续步骤出现不可预测的结果。

**注意:**以下一组说明仅适用于 Amazon Linux 2。要确认您的版本,请运行下面的命令:

$ grep PRETTY\_NAME /etc/os-release
PRETTY\_NAME="Amazon Linux 2"

安装 MATE 桌面环境

安装 MATE 桌面环境,这是一款基于 GNOME 2 的轻量化 GUI,可作为 Amazon Linux 2 的附加功能使用。有关 MATE 的更多信息,请参阅 MATE 网站上的 MATE 桌面环境

  1. 安装 MATE 软件包。

    sudo amazon-linux-extras install mate-desktop1.x -y
  2. 将 MATE 定义为所有用户的默认桌面。

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

安装 TigerVNC

安装 VNC 服务(如 TigerVNC)。有关 TigerVNC 的更多信息,请参阅 TigerVNC 网站上的 TigerVNC

  1. 安装 TigerVNC 服务器。

    sudo yum install tigervnc-server -y
  2. 为此用户配置一个长度为六到八个字符的 VNC 专用密码。当系统询问您是否要输入只读密码时,请按 n

    vncpasswd
  3. 将 VNC 网络访问限制到 localhost,以便您只能使用安全的 SSH 隧道访问 VNC。
    创建 tigervnc 配置目录。

    sudo mkdir /etc/tigervnc

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

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

    注意: 如果希望 VNC 会话在所有接口上运行,允许直接访问互联网,请对 localhost 条目进行哈希处理。最佳做法是使用安全组来限制,以仅允许来自 IP 或 CIDR 的 VNC 会话端口。

  4. 在 1 号显示屏上启动 VNC 服务器,并将其设置为始终在启动时启动。
    使用 sed 命令将新单元中出现的所有 USER 替换为 ec2-user

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

    要创建新的 systemd 单元,请将单元文件复制到 /etc/systemd/system/。

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

    重新加载 systemd 管理器配置。

    sudo systemctl daemon-reload

    启动时启用该服务。

    sudo systemctl enable vncserver@:1

    启动该服务。

    sudo systemctl start vncserver@:1

    确认该服务运行。

    sudo systemctl status vncserver@:1

    使用以下命令确认 1 号显示屏默认使用端口 5901/TCP:

    sudo netstat -tulpen |grep 590\*
    tcp 0 0 0.0.0.0:5901 0.0.0.0:\* LISTEN 1000 78547 1304/Xvnc
    
    tcp6 0 0 :::5901 :::\* LISTEN 1000

使用 VNC 连接到 GUI

要使用 VNC 连接到 GUI,请安装 TigerVNC 软件,使用 SSH 连接到实例,然后输入 VNC 密码。

安装 TigerVNC 软件

TigerVNC 有 Windows、Linux 和 macOS 几种版本。要下载相应版本,请参阅 TigerVNC 网站上的 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 连接到实例

使用 SSH 连接到实例。然后,创建隧道,将本地端口 5901/TCP(VNC)上的所有流量转发到实例的 VNC 服务器。

**注意:**如果没有将 VNC 网络访问限制为 localhost,则无需使用安全的 SSH 隧道。可以使用实例公有 IP 连接到 TightVNC Viewer

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. 选择添加

输入 VNC 密码
要输入 VNC 密码,请完成下面的步骤:

  1. 在本地计算机上打开 TigerVNC Viewer
  2. 对于 VNC 服务器主机名,输入 localhost:1,然后连接到它。
  3. 输入您在安装 TigerVNC 部分的步骤 2 中设置的 VNC 密码。

**注意:**如果收到提示连接不安全的警报,请将其忽略。访问 VNC 服务器是使用加密的 SSH 隧道。

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

关闭 VNC 密码身份验证不是最佳做法。当 VNC 密码身份验证关闭时,任何有权使用 SSH 连接到您的实例的用户都可以创建隧道并访问您的 VNC 桌面。

如果这是一个单用户实例,并且您想关闭 VNC 的密码身份验证,请完成下面的步骤。

  1. 运行以下命令来将 VNC 服务器的“安全类型”设置更改为“无”。

    echo SecurityTypes=None >> ~/.vnc/config
  2. 重启 VNC 服务器。

    sudo systemctl restart vncserver@:1

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

在 Amazon Linux 2 存储库中,AWS 不提供 Web 浏览器,例如 Chromium Projects 网站上的 Chromium 或 Mozilla 网站上的 Firefox。这些第三方来源的网页浏览器不支持基于 Graviton 处理器 (aarch64) 的实例。

注意: 对于从第三方来源安装的软件,AWS 不提供支持。

Chromium 和 Firefox 均仅在 X86 版本中可用。要安装此类浏览器,请按照以下步骤进行操作。**注意:**这些步骤适用于基于 64 位 Intel 和 AMD 处理器 (x86_64) 的 EC2 实例。

要确认您的实例的架构,请运行此命令:

$ uname -m

要安装 Chromium(Google Chrome 背后的开源项目),请完成下面的步骤:

  1. 激活 EPEL 存储库。有关更多信息,请参阅 Fedora Project 网站上的 Extra Packages for Enterprise Linux (EPEL)

    sudo amazon-linux-extras install epel -y
  2. 安装 Chromium 软件包。

    sudo yum install chromium -y

Chromium 安装在 MATE 的 Applications(应用程序)> Internet(互联网)> Chromium Web Browser(Chromium Web 浏览器)下面。

要安装 Mozilla Firefox(仅限当前用户),请完成下面的步骤:

  1. 将适用于 Linux 64 位的最新版本 Firefox 下载到本地计算机。要下载相应版本或添加适用于 Debian Linux 的存储库,请参阅 Mozilla 网站上的选择您想要下载的 Firefox 浏览器语言版本

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

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

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

    tar jxf ~/firefox-xx.y.tar.bz2 -C ~/
  5. 要创建桌面图标,请使用 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;
  6. 使用您在步骤 5 中创建的桌面图标启动 Firefox。

  7. 如果出现提示,告诉您应用程序启动器未标记为可信,请选择标记为可信,然后打开 Firefox。

相关信息

如何通过 GUI 访问我的 Amazon EC2 macOS 实例?

AWS 官方
AWS 官方已更新 8 个月前