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

Horizon Agent 支援的 Linux 版本

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

表 1. Horizon Agent 支援的 Linux 作業系統
Linux 發行版 架構
Ubuntu 20.04 和 18.04 x64
Red Hat Enterprise Linux (RHEL) Workstation 7.6、7.7、7.8、7.9、8.0、8.1、8.2、8.3 和 8.4 x64
Red Hat Enterprise Linux (RHEL) Server 7.8、7.9、8.3 和 8.4 x64
CentOS 7.6、7.7、7.8、7.9、8.0、8.1、8.2、8.3 和 8.4 x64
SUSE Linux Enterprise Desktop (SLED) 12 SP3、15 SP1、15 SP2 和 15 SP3 x64
SUSE Linux Enterprise Server (SLES) 12 SP3、12 SP5、15 SP1、15 SP2 和 15 SP3 x64
備註: Horizon Agent 具有某些 Linux 發行版的相依性套件。如需詳細資訊,請參閱 安裝 Horizon Agent 的相依性套件

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

所需的平台和軟體版本

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

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

Linux 虛擬機器使用的 TCP/UDP 連接埠

Horizon 8Agent 和 Horizon Client 在彼此之間與各種 Horizon 8 Server 元件之間的網路存取會使用 TCP 或 UDP 連接埠。

表 3. Linux 虛擬機器使用的 TCP/UDP 連接埠
來源 連接埠 目標 連接埠 通訊協定 說明
Horizon Client * Linux 代理程式 22443 TCP/UDP 若使用 Blast 安全閘道,則為 Blast
Horizon 8 連線伺服器或 Unified Access Gateway 應用裝置 * Linux 代理程式 22443 TCP/UDP 若使用 Blast 安全閘道,則為 Blast
Horizon 8Agent * Horizon 8連線伺服器 4001、4002 TCP JMS SSL 流量
備註: 如需關於用戶端所使用 TCP 與 UDP 連接埠的詳細資訊,請參閱 《Horizon 安全性》文件與 VMware Horizon 指南中的網路連接埠

若要允許使用者連接至其 Linux 桌面平台,桌面平台必須可以接受來自 Horizon Client 裝置、Unified Access GatewayHorizon Connection Server 的傳入 TCP 連線。

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

在 RHEL 和 CentOS 發行版上,如有可能,Horizon Agent 安裝程式指令碼會將 iptables 防火牆設定為使用「接受」的輸入原則。

確定 RHEL 或 CentOS 客體作業系統上的 iptables 對來自 Blast 連接埠 22443 的新連線具有「接受」的輸入原則。

BSG 啟用時,用戶端連線會透過 Horizon Connection Server上的 BSG 從 Horizon Client 裝置導向至 Linux 桌面平台。未啟用 BSG 時,則是直接從 Horizon Client裝置對 Linux 桌面平台連線。

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

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

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

桌面平台環境

Horizon Agent for Linux 支援不同 Linux 發行版的多種桌面平台環境。下表列出各個 Linux 發行版的預設桌面平台環境,以及 Horizon Agent for Linux 支援的其他桌面平台環境。
表 5. 支援的桌面平台環境
Linux 發行版 預設桌面平台環境 Horizon Agent for Linux 支援的桌面平台環境
Ubuntu 20.04/18.04 Gnome Gnome Ubuntu、K Desktop Environment (KDE)、MATE
RHEL/CentOS 7.x Gnome Gnome、KDE
RHEL/CentOS 8.x Gnome Gnome
SLED/SLES Gnome Gnome
備註: Gnome Display Manager (GDM) 是 Linux 桌面平台唯一支援的顯示管理程式。如需詳細資訊,請參閱 知識庫文章 87459

只有在 Linux 桌面平台使用 GDM3 歡迎畫面 (登入畫面) 時,才可執行 KDE 和 MATE 桌面平台環境的 Single Sign-On (SSO)。您必須使用用來安裝桌面平台環境的命令中所列的命令來安裝 KDE 和 MATE。

使用 RHEL/CentOS 7.x 和 Ubuntu 發行版時,SSO 將無法解除鎖定已鎖定的 KDE 工作階段。您必須手動輸入密碼,才能將鎖定的工作階段解除鎖定。

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

  1. 使用預設桌面平台環境設定,安裝支援的 Linux 發行版作業系統。
  2. 針對您的特定 Linux 發行版,執行下表所述的適當命令。
    表 6. 用來安裝桌面平台環境的命令
    Linux 發行版 新的預設桌面平台環境 用來變更預設桌面平台環境的命令
    RHEL/CentOS 7.x KDE
    yum groupinstall "KDE Plasma Workspaces"
    Ubuntu 20.04/18.04 KDE
    apt install plasma-desktop
    Ubuntu 20.04/18.04 MATE 1.225
    apt install ubuntu-mate-desktop
  3. 若要開始使用新的預設桌面平台環境,請重新啟動桌面平台。
如果您在安裝了多個桌面平台環境的 Linux 桌面平台上啟用 SSO,請使用下列資訊,選取要在 SSO 工作階段中使用的桌面平台環境。
  • 針對 Ubuntu 20.04/18.04 和 RHEL/CentOS 7.x,請使用下表中的資訊來設定 /etc/vmware/viewagent-custom.conf 檔案中的 SSODesktopType 選項,以指定要用於 SSO 的桌面平台環境。
    表 7. SSODesktopType 選項
    桌面平台類型 SSODesktopType 選項設定
    MATE SSODesktopType=UseMATE
    GnomeUbuntu SSODesktopType=UseGnomeUbuntu
    GnomeFlashback SSODesktopType=UseGnomeFlashback
    KDE SSODesktopType=UseKdePlasma
    GnomeClassic SSODesktopType=UseGnomeClassic
  • 針對 RHEL/CentOS 8.x,若要讓 SSO 登入工作階段使用 Gnome Classic,請從 /usr/share/xsession 目錄中移除 Gnome Classic 啟動檔案以外的所有桌面平台啟動檔案。以下列這一組命令為例。
    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:
    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
表 8. 編譯及安裝 USB VHCI 驅動程式
Linux 發行版 編譯及安裝 USB VHCI 驅動程式的步驟
Ubuntu 20.04/18.04
  1. 安裝相依性套件。
    apt-get install make
    apt-get install gcc
    apt-get install libelf-dev
  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 && make install

RHEL/CentOS 7.x

RHEL/CentOS 8.x

  1. 安裝相依性套件。
    yum install gcc-c++
    yum install kernel-devel-$(uname -r)
    yum install kernel-headers-$(uname -r)
    yum install patch
    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 && make install
  3. (RHEL/CentOS 8.x) 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定 USB 驅動程式的簽署設定。
    1. 建立 USB 驅動程式的 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. 簽署 USB 驅動程式。
      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 12.x

SLED/SLES 15.x

  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 套件。
    zypper install --oldpackage kernel-devel-<kernel-package-version> \
    kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> patch
    例如:
    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 && make install
  4. (SLED/SLES 15.x) 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定 USB 驅動程式的簽署設定。
    1. 建立 USB 驅動程式的 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. 尋找 USB 驅動程式的簽署檔案路徑。
      find / -name sign-file

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

      /usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
    3. 簽署 USB 驅動程式。在下列命令中,<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. 安裝核心標頭。
      apt install linux-headers-`uname -r`
    2. 使用下列命令安裝 dkms
      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 目錄。
      cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
    5. 建立名為 dkms.conf 的檔案,並將其置於 /usr/src/usb-vhci-hcd-1.15 目錄中。
      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 驅動程式。
      dkms add usb-vhci-hcd/1.15
    8. 建置 VHCI 驅動程式。
      dkms build usb-vhci-hcd/1.15
    9. 安裝 VHCI 驅動程式。
      dkms install usb-vhci-hcd/1.15