跳至内容

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

4 分钟阅读
0

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

简短描述

要在 Linux 上运行图形应用程序,您需要一个桌面环境。默认情况下,标准的 AL2 亚马逊机器映像 (AMI) 未安装桌面环境。使用 AL2 Extras Library 安装 MATE 桌面环境。有关详细信息,请参阅 MATE 网站上的 MATE 桌面环境

或者,从预装了 MATE 的 AL2 AMI 启动实例。有关详细信息,请参阅配置 AL2 MATE 桌面连接。您还可以在 Amazon WorkSpaces 上使用虚拟桌面来运行 AL2、Ubuntu Linux、Rocky Linux、Red Hat Enterprise Linux (RHEL) 或 Microsoft Windows。

**注意:**以下解决方法适用于仅在 AL2 上运行的实例。不适用于 Amazon Linux 1 (AL1) 或 Amazon Linux 2023 (AL2023)。有关如何在 AL2023 中安装 GUI 的信息,请参阅“教程: 在 AL2023 上安装 GNOME 桌面环境”。在 AL2023 上配置 GUI 后,您可以在 AL2023 上配置 Tiger VNC 服务器以连接到 GUI。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

以下解决方法仅适用于 AL2。要查看您的 Linux 发行版名称和版本,请运行以下命令:

grep PRETTY_NAME /etc/os-release

对于使用堡垒机(跳转)实例连接到非公有子网中的其他 EC2 实例的环境,不能使用以下解决步骤。要安全地连接到没有直接互联网连接的 EC2 实例,请使用 EC2 实例连接端点会话管理器(AWS Systems Manager 的一项功能)。或者,使用 AWS Site-to-Site VPNAWS Direct Connect 在您的网络和 AWS 之间建立安全连接。

更新实例

最佳做法是在安装 GUI 之前更新和重启您的实例,以避免出现问题。

要更新实例,请完成以下步骤:

  1. 连接到 Amazon EC2 实例

  2. 运行以下命令以更新您的实例:

    sudo yum update
  3. 重启实例

安装 MATE 桌面环境

要安装 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'

安装 VNC 服务器

安装虚拟网络计算 (VNC) 服务器,例如 TigerVNC,以访问远程图形桌面服务。有关 TigerVNC 的详细信息,请参阅 TigerVNC 网站上的 TigerVNC

出于安全原因,以下配置不允许通过 TigerVNC 直接连接。相反,必须通过加密的 SSH 隧道来访问 GUI。最佳做法是不在安全组中打开 VNC 端口。

要安装 TigerVNC,请完成以下步骤:

  1. 要安装 TigerVNC 服务器,请运行以下命令:

    sudo yum install tigervnc-server
  2. 要为您的用户配置特定于 VNC 的密码,请运行以下命令:

    vncpasswd

    **注意:**当终端询问是否要输入仅限查看的密码时,请按 n。未加密的密码会记录在主目录中的文件中。仅您的用户和根用户可以访问该文件。挑战响应机制可保护通过网络传输的密码。有关详细信息,请参阅 TigerVNC 网站上的 vncpasswd。您使用的 SSH 隧道通过更强的加密进一步保护连接。

  3. 要创建 tigervnc 系统范围的配置目录,请运行以下命令:

    sudo mkdir /etc/tigervnc
  4. 要阻止与 VNC 的直接连接,请运行以下命令:

    sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
  5. 要为 TigerVNC 创建新的 systemd 单元,请运行以下命令:

    sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
  6. 要将新单元中出现的所有 <USER> 替换为您的用户名,请运行以下命令:

    sudo sed -i 's/<USER>/'${USER}'/' /etc/systemd/system/vncserver@.service
  7. 要重新加载 systemd 管理器配置,请运行以下命令:

    sudo systemctl daemon-reload
  8. 要在启动时激活 TigerVNC 服务,请运行以下命令:

    sudo systemctl enable vncserver@:1
  9. 要启动 TigerVNC 服务,请运行以下命令:

    sudo systemctl start vncserver@:1
  10. 要确认 TigerVNC 服务是否运行,请运行以下命令:

sudo systemctl status vncserver@:1
  1. 要确认 TigerVNC 是否正在侦听 TCP 端口 5901,请运行以下命令:
ss -lnp '( sport = :5901 )'

在本地计算机上安装 TigerVNC Viewer

TigerVNC Viewer 可用于 Windows、macOS 和 Linux。要下载该工具,请参阅 GitHub 上的 Releases(版本)

根据您的操作系统 (OS),下载以下 TigerVNC Viewer 版本:

  • 对于 Windows,请安装 tigervnc64-x.y.z.exe(64 位)或 tigervnc-x.y.z.exe(32 位)。
  • 对于 macOS,请安装 TigerVNC-x.y.z.dmg
    **注意:**请将 x.y.z 替换为最新版本号。
  • 对于 Linux,您可以在许多发行版的存储库中找到 TigerVNC 软件包。有关如何安装软件包的信息,请查看您的发行版说明。或者,从 GitHub 下载并安装相关的二进制文件。

访问 GUI

要访问 GUI,必须先从本地计算机连接到您的实例,并为 TCP 端口 5901 激活端口转发。此配置会为 VNC 流量创建一个加密的 SSH 隧道。然后,使用 VNC Viewer 连接到 GUI。

创建加密的 SSH 隧道

**重要事项:**确保本地计算机的防火墙允许通过 TCP 连接到端口 5901。

如果您使用 PuTTY 连接到您的实例,请在打开连接之前完成以下步骤:

  1. Category(类别)导航窗格中,展开 Connection(连接),然后选择 SSH
  2. 展开 SSH,然后选择 Tunnels(隧道)。
  3. 对于 Source Port(源端口),输入 5901
  4. 对于 Destination(目标),输入 localhost:5901
  5. 选择 Add(添加)。

如果您使用 SSH 客户端连接到您的实例,请运行以下命令以激活端口转发:

ssh -L 5901:localhost:5901 -i /path/key-pair-name.pem user@instance-dns-name

**注意:**请将 path 替换为您的密钥路径,将 key-pair-name 替换为私钥文件的名称。请将 user 替换为用户名,将 instance-dns-name 替换为您的实例的 DNS 名称或 IP 地址。AL2 的默认用户名为 ec2-user

如果您使用 EC2 实例连接连接到您的实例,则必须运行以下 AWS CLI 命令 ec2-instance-connect 来激活端口转发:

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type direct --local-forwarding 5901:localhost:5901

**注意:**请将 i-1234567890example 替换为您的实例 ID。如果您使用 EC2 实例连接端点,请将 direct 替换为 eice

如果您使用会话管理器连接到您的实例,则必须启动会话管理器端口转发会话。对于本地和远程端口,请输入 5901

使用 VNC Viewer 连接到 GUI

完成以下步骤:

  1. 在本地计算机上打开 TigerVNC Viewer
  2. 对于 VNC server(VNC 服务器),输入 localhost:1,然后选择 Connect(连接)。
  3. 输入您的 VNC 密码。
    **注意:**如果收到提示连接不安全的警报,请将其忽略。您正在通过自己创建的加密 SSH 隧道访问 VNC 服务器。

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

**重要事项:**最佳做法是仅对单用户实例停用密码身份验证。关闭 VNC 密码身份验证后,任何可以登录到您的实例的用户都可以创建 SSH 隧道并访问您的 VNC 桌面。

要停用 VNC 的密码身份验证,请完成以下步骤:

  1. 运行以下命令,将 VNC 服务器的 Security Types(安全类型)设置更改为 None(无):

    echo SecurityTypes=None >> ~/.vnc/config
  2. 要重新启动 VNC 服务器,请运行以下命令:

    sudo systemctl restart vncserver@:1

(可选)安装 Web 浏览器

AWS 在 AL2 存储库中不提供 Web 浏览器。但是,您可以安装 Web 浏览器,例如 Chromium Projects 网站上的 Chromium,或 Mozilla 网站上的 Firefox 浏览器

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

以下安装步骤仅适用于基于 x86_64 架构(Intel 和 AMD 处理器)的实例。对于基于 aarch64 架构(AWS Graviton 处理器)的实例,不能使用以下解决方法。要查看您的实例的架构,请运行以下命令:

uname -m

安装 Chromium

完成以下步骤:

  1. 要激活 Extra Packages for Enterprise Linux (EPEL) 存储库,请运行以下命令:

    sudo amazon-linux-extras install epel

    **注意:**有关详细信息,请参阅 Fedora Project 网站上的 Extra Packages for Enterprise Linux (EPEL)

  2. 要安装 Chromium 软件包,请运行以下命令:

    sudo yum install chromium
  3. 在 MATE 桌面上,选择 Applications,然后选择 Internet。您可以找到以 Chromium Web Browser 列出的 Chromium。

安装 Firefox

**注意:**只能为当前用户安装 Firefox 浏览器。

要在 AL2 实例上为当前用户安装 Firefox,请完成以下步骤:

  1. 要下载适用于 64 位 Linux 的最新版本的 Firefox,请运行以下命令:

    curl -L -o ~/firefox.tar.xz 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
  2. 要提取下载的文件内容,请运行以下命令:

    tar Jxf ~/firefox.tar.xz -C ~/
  3. 要在桌面上创建 Firefox 快捷方式,请运行以下命令:

    echo '[Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png
    Exec=/home/ec2-user/firefox/firefox
    Name=Firefox
    Comment=Firefox web browser
    GenericName=Firefox web browser
    Categories=Network;WebBrowser;' > ~/Desktop/Firefox.desktop
  4. 使用桌面快捷方式启动 Firefox。
    **注意:**如果您收到提示应用程序启动程序不受信任的消息,请选择 Mark as Trusted(标记为可信)。

相关信息

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

AWS 官方已更新 1 年前