若要安裝 Horizon Agent for Linux,您必須符合 Linux 作業系統、Linux 虛擬機器、VMware Horizon 8 系統元件和 VMware vSphere 平台的特定需求。

Horizon Agent 支援的 Linux 發行版

下表列出經過測試且支援 Horizon Agent 的 Linux 作業系統。

表 1. Horizon Agent 支援的 Linux 作業系統
Linux 發行版 架構
Ubuntu 20.04 和 22.04 x64
Debian 10.13、11.5、11.6 和 11.7 x64
Red Hat Enterprise Linux (RHEL) Workstation 7.9、8.6、8.7、8.8、9.0、9.1 和 9.2 x64
Red Hat Enterprise Linux (RHEL) Server 7.9、8.6、8.7、8.8、9.0、9.1 和 9.2 x64
Rocky Linux 8.8 和 9.2 x64
CentOS 7.9 x64
SUSE Linux Enterprise Desktop (SLED) 15 SP3 和 15 SP4 x64
SUSE Linux Enterprise Server (SLES) 15 SP3 和 15 SP4 x64
備註: Horizon Agent 具有某些 Linux 發行版的相依性套件。如需詳細資訊,請參閱 安裝 Horizon Agent 的相依性套件

部分功能僅支援有限的部分 Linux 作業系統。如需詳細資訊,請參閱此文件中討論特定功能的小節。

install_viewagent.sh 安裝指令碼提供一個 --force 參數,用來強制在測試支援對照表中未列出的 Linux 發行版上安裝 Horizon Agent。請參閱用於安裝 Horizon Agent for Linux 的命令列選項

所需的平台和軟體版本

若要安裝及使用 Horizon Agent for Linux,您的部署必須符合 vSphere 平台、Horizon Connection Server 和 Horizon Client 軟體的特定需求。

表 2. 所需的平台 VMware Horizon 軟體版本
平台和軟體 支援的版本
vSphere 平台版本
  • vSphere 8.0 或更新版本
  • vSphere 7.0 或更新版本
  • vSphere 6.7 或更新版本
  • vSphere 6.5 U1 或更新版本
VMware Horizon 8 環境
  • Horizon Connection Server 2306
Horizon Client 軟體
  • Android 版 Horizon Client 2306
  • Windows 版 Horizon Client 2306
  • Linux 版 Horizon Client 2306
  • Mac 版 Horizon Client 2306
  • iOS 版 Horizon Client 2306
  • Chrome 和 Firefox 上的 HTML Access 2306
  • 支援 VMware Blast 通訊協定的零用戶端
    備註: 不支援 Teradici PCoIP 零用戶端。

Linux 桌面平台使用的連接埠

若要啟用連線工作階段,Linux 桌面平台必須支援來自 Horizon Client 裝置、Unified Access GatewayHorizon Connection Server 的傳入 TCP 連線。

在 Ubuntu 和 Debian 發行版上,iptables 防火牆預設會設定為使用「接受」的輸入原則。

在 RHEL、Rocky Linux 和 CentOS 發行版上,如果可能,Horizon Agent 安裝程式指令碼會將 iptables 防火牆設定為使用「接受」的輸入原則。為了確保支援傳入連線,請確認 iptables 具有一則「接受」輸入原則,用來接受經由 Blast 連接埠 22443 的新連線。

啟用 Blast 安全閘道 (BSG) 時,會經由 Horizon Connection Server 上的 BSG,在 Horizon Client 裝置與 Linux 桌面平台之間建立用戶端連線。未啟用 BSG 時,則會直接在 Horizon Client 裝置與 Linux 桌面平台之間建立連線。

如需 Horizon Agent 在 Linux 桌面平台上使用的連接埠的詳細資訊,請參閱《Horizon 安全性》文件以及《VMware Horizon 中的網路連接埠》指南

確認 Linux 虛擬機器使用的 Linux 帳戶

下表列出 Linux 虛擬機器使用的帳戶名稱和帳戶類型。

表 3. 帳戶名稱和帳戶類型
帳戶名稱 帳戶類型 使用者
Linux 作業系統內建 Java Standalone Agent、mksvchanserver、Shell 指令碼
vmwblast 由 Linux 代理程式安裝程式建立 VMwareBlastServer
<目前登入的使用者> Linux 作業系統內建、AD 使用者或 LDAP 使用者 Python 指令碼

桌面平台環境

Horizon Agent for Linux 支援不同 Linux 發行版的多種桌面平台環境。下表列出各個 Linux 發行版的預設桌面平台環境,以及 Horizon Agent for Linux 支援的其他桌面平台環境。
表 4. 支援的桌面平台環境
Linux 發行版 預設桌面平台環境 Horizon Agent for Linux 支援的桌面平台環境
Ubuntu Gnome Gnome Ubuntu、K Desktop Environment (KDE)、MATE
Debian Gnome Gnome、KDE、MATE
RHEL 和 Rocky Linux 8.x/9.x Gnome Gnome
RHEL 7.9 Gnome Gnome、KDE、MATE
CentOS 7.9 Gnome Gnome、KDE
SLED/SLES Gnome Gnome
備註: 使用 RHEL/CentOS 7.x 和 Ubuntu 發行版時,SSO 將無法解除鎖定已鎖定的 KDE 工作階段。您必須手動輸入密碼,才能將鎖定的工作階段解除鎖定。

若要變更其中一個支援的 Linux 發行版上使用的預設桌面平台環境,您必須使用下列適用於您的 Linux 桌面平台的步驟和命令。

  1. 使用預設桌面平台環境設定,安裝支援的 Linux 發行版作業系統。
  2. 針對您的特定 Linux 發行版,執行下表所述的適當命令。
    表 5. 用來安裝桌面平台環境的命令
    Linux 發行版 新的預設桌面平台環境 用來變更預設桌面平台環境的命令
    RHEL/CentOS 7.9 KDE
    yum groupinstall "KDE Plasma Workspaces"
    RHEL 7.9 MATE
    rpm -ivh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
    
    yum groupinstall -y "MATE Desktop"
    Ubuntu KDE
    apt install plasma-desktop
    Ubuntu MATE
    apt install ubuntu-mate-desktop
  3. 若要開始使用新的預設桌面平台環境,請重新啟動桌面平台。
如果您在安裝了多個桌面平台環境的 Linux 桌面平台上啟用 SSO,請使用下列資訊,選取要在 SSO 工作階段中使用的桌面平台環境。
  • 針對 Ubuntu 和 RHEL/CentOS 7.x,請使用下表中的資訊來設定 /etc/vmware/viewagent-custom.conf 檔案中的 SSODesktopType 選項,以指定要用於 SSO 的桌面平台環境。
    表 6. SSODesktopType 選項
    桌面平台類型 SSODesktopType 選項設定
    MATE SSODesktopType=UseMATE
    GnomeUbuntu SSODesktopType=UseGnomeUbuntu
    GnomeFlashback SSODesktopType=UseGnomeFlashback
    KDE SSODesktopType=UseKdePlasma
    GnomeClassic SSODesktopType=UseGnomeClassic
  • 對於 RHEL 和 Rocky Linux 9.x/8.x,若要讓 SSO 登入工作階段使用 Gnome Classic,請從 /usr/share/xsession 目錄中移除 Gnome Classic 啟動檔案以外的所有桌面平台啟動檔案。例如,以 root 使用者身分,執行下列這一組命令:
    cd /usr/share/xsessions
    mkdir backup
    mv *.desktop backup
    mv backup/gnome-classic.desktop ./
    使用者在初始設定之後必須將其 Linux 桌面平台登出或重新開機,才能使用 Gnome Classic 作為其下一個 SSO 工作階段中的預設桌面平台。

如果您在安裝了多個桌面平台環境的 Linux 桌面平台上停用 SSO,則不需要執行任何前述步驟。使用者在登入該 Linux 桌面平台時,必須選取其所需的桌面平台環境。

網路需求

VMware Blast Extreme 支援使用者資料包通訊協定 (UDP) 和傳輸控制通訊協定 (TCP)。網路狀況會影響 UDP 和 TCP 的效能。若要獲得最優質的使用者體驗,請根據網路狀況選取 UDP 或 TCP。
  • 如果網路狀況良好 (例如,在區域網路 (LAN) 環境中),請選取 TCP。
  • 如果網路狀況不佳 (例如,在封包遺失且時間延遲的廣域網路 (WAN) 環境中),請選取 UDP。
使用網路分析器工具 (例如 Wireshark) 來判斷 VMware Blast Extreme 是否使用 TCP 或 UDP。使用下列參考範例中使用 Wireshark 的一組步驟。
  1. 在您的 Linux 虛擬機器上下載並安裝 Wireshark。
    對於 RHEL/CentOS 和 Rocky Linux:
    sudo yum install wireshark
    針對 Ubuntu:
    sudo apt install tshark
  2. 使用 VMware Horizon Client 連線至 Linux 桌面平台。
  3. 開啟終端機視窗並執行下列命令以顯示 VMware Blast Extreme 使用的 TCP 套件或 UDP 套件。
    sudo tshark -i any | grep 22443
網路狀況牽動著 USB 重新導向和用戶端磁碟機重新導向 (CDR) 功能的效用。如果網路狀況不佳 (例如,因頻寬受限而導致時間延遲和封包遺失),使用者體驗就會變差。在這種情況下,使用者可能會遇到下列其中一種狀況。
  • 遠端檔案的複製可能會很慢。在此情況下,請改為傳輸較小的檔案。
  • USB 裝置未出現在遠端 Linux 桌面平台中。
  • USB 資料未完整傳輸。例如,在複製大型檔案時,您取得的檔案大小可能會小於原始檔案。

USB 重新導向的 VHCI 驅動程式

備註: 若要確定 VHCI 驅動程式的正確安裝順序,請使用以下準則:
  • 如果要使用 .tar.gz tarball 安裝程式來安裝 Horizon Agent,您必須先下載 tarball 安裝程式並將其解壓縮,然後安裝 VHCI 驅動程式,再使用 USB 重新導向功能的安裝參數來安裝 Horizon Agent
  • 如果要使用 .rpm RPM 安裝程式來安裝 Horizon Agent,您必須先安裝 Horizon Agent,然後安裝 VHCI 驅動程式,再將 USB 重新導向功能新增到 Horizon Agent 組態。

如需詳細資訊,請參閱在 Linux 虛擬機器上安裝 Horizon Agent

USB 重新導向功能對 USB 虛擬主機控制器介面 (VHCI) 核心驅動程式具有相依性。若要支援 USB 3.0 和 USB 重新導向功能,您必須透過執行以下步驟來安裝 VHCI 驅動程式:

  1. https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/下載 USB VHCI 原始程式碼。
  2. 根據 Horizon Agent 安裝程式的格式來識別 VHCI 修補檔案的完整路徑。如需相關準則,請參閱以下範例。
    • (Tarball 安裝程式) 如果您下載 tarball 安裝程式 VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz,並將其解壓縮到 /install_tmp/ 目錄下,則 full-path_to_patch-file/install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch
    • (RPM 安裝程式) 如果您下載 RPM 安裝程式 VMware-horizonagent-linux-YYMM-y.y.y-xxxxxxx.el8.x86_64.rpm,並用它來安裝 Horizon Agent,則 full-path_to_patch-file/usr/lib/vmware/viewagent/resources/vhci/patch/vhci.patch
  3. 若要編譯 VHCI 驅動程式原始程式碼,並在您的 Linux 系統上安裝產生的二進位檔,請使用下表中列出的命令。將命令中的 full-path_to_patch-file 取代為您在上一步中識別的檔案路徑。
    例如,如果檔案路徑為 /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch,則 patch 命令會變為:
    patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
表 7. 編譯及安裝 USB VHCI 驅動程式
Linux 發行版 編譯及安裝 USB VHCI 驅動程式的步驟
Ubuntu
  1. 安裝相依性套件。
    sudo apt-get install make
    sudo apt-get install gcc
    sudo apt-get install libelf-dev
  2. (Ubuntu 22.04) 安裝核心標頭檔。
    sudo apt-get install linux-headers-$(uname -r)
  3. 編譯及安裝 VHCI 驅動程式。
    tar -xzvf vhci-hcd-1.15.tar.gz
    cd vhci-hcd-1.15
    patch -p1 < full-path_to_patch-file
    make clean && make && sudo make install
  4. 如果您已在虛擬機器上啟用可延伸韌體介面 (EFI) 和 UEFI 安全開機,請為 VHCI 驅動程式設定簽署設定。
    1. 建立 VHCI 驅動程式的 SSL 金鑰配對。
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. 簽署 VHCI 驅動程式。
      sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      
      sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    3. 登錄用於 UEFI 安全開機的金鑰。
      sudo mokutil --import MOK.der
      備註: 此命令會發出要求,以設定用於 UEFI 安全開機的機器擁有者金鑰 (MOK) 密碼。
    4. 若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 https://sourceware.org/systemtap/wiki/SecureBoot
Debian
  1. 安裝相依性套件。
    sudo  apt install -y  patch g++ make linux-headers-$(uname -r)
  2. 編譯及安裝 VHCI 驅動程式。
    tar -xzvf vhci-hcd-1.15.tar.gz
    cd vhci-hcd-1.15
    patch -p1 < full-path_to_patch-file
    mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    
    make clean && make && sudo make install

RHEL/CentOS 7.x

RHEL 8.x/9.x

Rocky Linux 8.x/9.x

  1. 安裝相依性套件。
    sudo yum install gcc-c++
    sudo yum install kernel-devel-$(uname -r)
    sudo yum install kernel-headers-$(uname -r)
    sudo yum install patch
    sudo yum install elfutils-libelf-devel
  2. 編譯及安裝 VHCI 驅動程式。
    tar -xzvf vhci-hcd-1.15.tar.gz
    cd vhci-hcd-1.15
    patch -p1 < full-path_to_patch-file
    make clean && make && sudo make install
  3. (RHEL 和 Rocky Linux 9.x/8.x) 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定驅動程式的簽署設定。
    1. 建立 VHCI 驅動程式的 SSL 金鑰配對。
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. 簽署 VHCI 驅動程式。
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    3. 登錄用於 UEFI 安全開機的金鑰。
      sudo mokutil --import MOK.der
      備註: 此命令會發出要求,以設定用於 UEFI 安全開機的機器擁有者金鑰 (MOK) 密碼。
    4. 若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 https://sourceware.org/systemtap/wiki/SecureBoot

SLED/SLES

  1. 尋找目前核心套件的版本。
    rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)

    輸出結果為目前所安裝核心套件的名稱。例如,如果套件名稱為 kernel-default-3.0.101-63.1,則目前的核心套件版本將是 3.0.101-63.1。

  2. 安裝 kernel-develkernel-default-develkernel-macrospatch 套件。
    sudo zypper install --oldpackage kernel-devel-<kernel-package-version> \
    kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> patch
    例如:
    sudo zypper install --oldpackage kernel-devel-4.4.21-90.1 kernel-default-devel-4.4.21-90.1 kernel-macros-4.4.21-90.1 patch
  3. 編譯及安裝 VHCI 驅動程式。
    tar -xzvf vhci-hcd-1.15.tar.gz
    cd vhci-hcd-1.15
    patch -p1 < full-path_to_patch-file
    mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    make clean && make && sudo make install
  4. 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定驅動程式的簽署設定。
    1. 建立 VHCI 驅動程式的 SSL 金鑰配對。
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. 尋找 VHCI 驅動程式的簽署檔案路徑。
      sudo find / -name sign-file

      此命令會傳回位於系統上所有簽署檔案的路徑。VHCI 驅動程式的簽署檔案路徑類似於下列範例。

      /usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
    3. 簽署 VHCI 驅動程式。在下列命令中,<sign-file-path> 是您先前在步驟 4b 中找到的簽署檔案路徑。
      sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      sudo /<sign-file-path>/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    4. 登錄用於 UEFI 安全開機的金鑰。
      sudo mokutil --import MOK.der
      備註: 此命令會發出要求,以設定用於 UEFI 安全開機的機器擁有者金鑰 (MOK) 密碼。
    5. 若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 https://sourceware.org/systemtap/wiki/SecureBoot

此外,請遵循下列指導方針:

  • 如果您的 Linux 核心變更為新版本,則必須重新編譯並重新安裝 VHCI 驅動程式,但不需重新安裝 Horizon Agent for Linux。
  • 您也可以使用與 Ubuntu 系統的下列範例相類似的步驟,將動態核心模組支援 (DKMS) 新增至 VHCI 驅動程式。
    1. 安裝核心標頭。
      sudo apt install linux-headers-`uname -r`
    2. 使用下列命令安裝 dkms
      sudo apt install dkms
    3. 解壓縮並修補 VHCI TAR 檔案。
      tar xzvf vhci-hcd-1.15.tar.gz
      cd vhci-hcd-1.15
      patch -p1 <full-path_to_patch-file>
      cd ..
    4. 將解壓縮的 VHCI 來源檔案複製到 /usr/src 目錄。
      sudo cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
    5. 建立名為 dkms.conf 的檔案,並將其置於 /usr/src/usb-vhci-hcd-1.15 目錄中。
      sudo touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
    6. 將下列內容新增至 dkms.conf 檔案。
      PACKAGE_NAME="usb-vhci-hcd"
      PACKAGE_VERSION=1.15
      MAKE_CMD_TMPL="make KVERSION=$kernelver"
      
      CLEAN="$MAKE_CMD_TMPL clean"
      
      BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
      DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
      MAKE[0]="$MAKE_CMD_TMPL"
      
      BUILT_MODULE_NAME[1]="usb-vhci-hcd"
      DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
      MAKE[1]="$MAKE_CMD_TMPL"
      
      AUTOINSTALL="YES"
    7. dkms 中新增此 VHCI 驅動程式。
      sudo dkms add usb-vhci-hcd/1.15
    8. 建置 VHCI 驅動程式。
      sudo dkms build usb-vhci-hcd/1.15
    9. 安裝 VHCI 驅動程式。
      sudo dkms install usb-vhci-hcd/1.15