如何在執行 Amazon Linux 2 的 Amazon EC2 執行個體上安裝 GUI?

4 分的閱讀內容
0

我想在執行 Amazon Linux 2 (AL2) 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上安裝圖形使用者介面 (GUI)。

簡短描述

若要在 Linux 上執行圖形應用程式,您需要桌面環境。預設情況下,AL2 的標準 Amazon Machine Image (AMI) 不會附帶桌面環境。使用 AL2 Extras 程式庫安裝 MATE 桌面環境。如需詳細資訊,請參閱 MATE 網站上的 MATE 桌面環境

或者,從預先安裝 MATE 的 AL2 AMI 啟動執行個體。如需詳細資訊,請參閱設定 AL2 MATE 桌面連線。您也可以使用 Amazon WorkSpaces 上的虛擬桌面來執行 AL2、Ubuntu Linux、Rocky Linux、Red Hat Enterprise Linux (RHEL) 或 Microsoft Windows。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

以下解決方案僅適用於 AL2。若要檢查您的 Linux 發行版名稱和版本,請執行以下命令:

grep PRETTY_NAME /etc/os-release

對於使用堡壘 (跳轉) 執行個體連線到非公有子網路中的其他 EC2 執行個體環境,您無法使用下列解決步驟。若要安全地連線至沒有直接網際網路連線的 EC2 執行,請使用 EC2 Instance Connect EndpointSession Manager (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 上的版本

根據您的作業系統 (OS),下載以下 TigerVNC Viewer 版本:

  • 如果是 Windows,請安裝 tigervnc64-x.y.z.exe (64位元) 或 tigervnc-x.y.z.exe (32位元)。
  • 如果是 macOS,請安裝 igerVNC-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 Instance Connect 連線到執行個體,則必須執行下列 ec2-instance-connect AWS CLI 命令來啟用連接埠轉送:

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

**注意:**將 i-1234567890example 替換為您的執行個體 ID。如果您使用的是 EC2 Instance Connect Endpoint,則將 direct 替換為 eice

如果您使用 Session Manager 連線到執行個體,則必須啟動 Session Manager 連接埠轉送工作階段。在本機和遠端端口,請輸入 5901

使用 VNC Viewer 連線到 GUI

請完成下列步驟:

  1. 在本機電腦上開啟 TigerVNC Viewer
  2. 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 專案網站上的Extra Packages for Enterprise Linux (EPEL)

  2. 若要安裝 Chromium 套件,請執行以下命令:

    sudo yum install chromium
  3. 在 MATE 桌面上,選擇 Applications (應用程式),然後選擇 Internet (網際網路)。您會發現 Chromium 列為 Chromium Web 瀏覽器

安裝 Firefox

**注意:**您只能為目前使用者安裝 Firefox。

若要在 AL2 執行個體上為目前使用者安裝 Firefox,請完成下列步驟:

  1. 若要下載 Linux 64 位元的最新版 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 官方
AWS 官方已更新 1 個月前