如何在執行 Amazon Linux 2 的 Amazon EC2 執行個體上安裝 GUI?
我想在執行 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 Endpoint 或 Session Manager (AWS Systems Manager 的功能)。或者,使用 AWS Site-to-Site VPN 或 AWS Direct Connect 在您的網路和 AWS 之間建立安全連線。
更新您的執行個體
最佳做法是在安裝 GUI 之前更新並重新啟動執行個體,以避免問題。
若要更新您的執行個體,請完成以下步驟:
-
執行以下命令來更新您的執行個體:
sudo yum update
安裝 MATE 桌面環境
若要安裝 MATE 桌面環境,請完成以下步驟:
-
若要安裝 MATE 套件,請執行以下命令:
sudo amazon-linux-extras install mate-desktop1.x
-
若要將 MATE 定義為所有使用者的預設桌面環境,請執行以下命令:
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
安裝 VNC 伺服器
安裝虛擬網路運算 (VNC) 伺服器 (例如 TigerVNC),以存取遠端圖形桌面服務。有關 TigerVNC 的更多資訊,請參閱 TigerVNC 網站上的 TigerVNC。
出於安全原因,以下組態不允許透過 TigerVNC 直接連線。相反,您必須使用加密的 SSH 通道來存取 GUI。最佳做法是不要在安全群組中開啟 VNC 連接埠。
若要安裝 TigerVNC,請完成以下步驟:
-
若要安裝 TigerVNC 伺服器,請執行下列命令:
sudo yum install tigervnc-server
-
若要為您的使用者設定 VNC 專用密碼,請執行以下命令:
vncpasswd
**注意:**當終端詢問您是否要輸入僅供檢視的密碼時,請按 n。未加密的密碼會記錄到您主目錄的檔案中。只有您的使用者和根使用者可以存取該檔案。質詢-回應機制可保護透過網路傳輸的密碼。如需詳細資訊,請參閱 TigerVNC 網站上的 vncpasswd。您使用的 SSH 通道會以更強的加密方是進一步保護連線。
-
若要建立 tigervnc 全系統組態目錄,請執行下列命令:
sudo mkdir /etc/tigervnc
-
若要禁止與 VNC 直接連線,請執行以下命令:
sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
-
若要為 TigerVNC 建立新的 systemd 單元,請執行以下命令:
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
-
若要將新單元中出現的所有 < USER> 替換為您的使用者名稱,請執行以下命令:
sudo sed -i 's/<USER>/'${USER}'/' /etc/systemd/system/vncserver@.service
-
若要重新載入 systemd 管理器組態,請執行下列命令:
sudo systemctl daemon-reload
-
若要在啟動時啟用 TigerVNC 服務,請執行以下命令:
sudo systemctl enable vncserver@:1
-
若要啟動 TigerVNC 服務,請執行以下命令:
sudo systemctl start vncserver@:1
-
若要確認 TigerVNC 服務是否正在執行,請執行以下命令:
sudo systemctl status vncserver@: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 連線到執行個體,請在開啟連線之前完成以下步驟:
- 在 Category (類別) 導覽窗格中,展開 Connection (連線),然後選擇 SSH。
- 展開 SSH,然後選擇 Tunnels (通道)。
- 在 Source Port (來源連接埠),輸入 5901。
- 在 Destination (目的地),輸入 localhost:5901。
- 選擇 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
請完成下列步驟:
- 在本機電腦上開啟 TigerVNC Viewer。
- 在 VNC 伺服器,請輸入 localhost:1,然後選擇 Connect (連線)。
- 輸入您的 VNC 密碼。
**注意:**如果您收到連線不安全的警示,請忽略它。您正在透過您建立的加密 SSH 通道存取 VNC 伺服器。
(選用) 停用 VNC 的密碼驗證
**重要:**最佳做法是僅針對單一使用者執行個體停用密碼驗證。當 VNC 密碼驗證關閉時,任何可以登入您執行個體的使用者都可以建立 SSH 通道,並存取您的 VNC 桌面。
若要停用 VNC 的密碼驗證,請完成以下步驟:
-
執行以下命令,將 VNC 伺服器的 Security Types (安全類型) 設定變更為 None (無):
echo SecurityTypes=None >> ~/.vnc/config
-
若要重新啟動 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
請完成下列步驟:
-
若要啟動 Extra Packages for Enterprise Linux (EPEL) 儲存庫,請執行下列命令:
sudo amazon-linux-extras install epel
**注意:**如需詳細資訊,請參閱 Fedora 專案網站上的Extra Packages for Enterprise Linux (EPEL)。
-
若要安裝 Chromium 套件,請執行以下命令:
sudo yum install chromium
-
在 MATE 桌面上,選擇 Applications (應用程式),然後選擇 Internet (網際網路)。您會發現 Chromium 列為 Chromium Web 瀏覽器。
安裝 Firefox
**注意:**您只能為目前使用者安裝 Firefox。
若要在 AL2 執行個體上為目前使用者安裝 Firefox,請完成下列步驟:
-
若要下載 Linux 64 位元的最新版 Firefox,請執行下列命令:
curl -L -o ~/firefox.tar.xz 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
-
若要擷取下載的檔案內容,請執行以下命令:
tar Jxf ~/firefox.tar.xz -C ~/
-
若要在桌面上建立 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
-
使用桌面捷徑啟動 Firefox。
**注意:**如果您收到訊息,表示應用程式啟動程式不受信任,請選擇 Mark as Trusted (標記為受信任)。
相關資訊
相關內容
- 已提問 5 個月前lg...
- 已提問 5 個月前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- 已提問 8 個月前lg...
- AWS 官方已更新 10 個月前
- AWS 官方已更新 7 個月前
- AWS 官方已更新 1 個月前