若要安裝 Horizon Agent for Linux,您必須符合 Linux 作業系統、Linux 虛擬機器、Horizon 8 系統元件以及 vSphere 平台的特定需求。
Horizon Agent 支援的 Linux 發行版
下表列出已通過測試並支援 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 軟體的特定需求。
| 平台和軟體 | 支援的版本 |
|---|---|
| vSphere 平台版本 |
|
| Horizon 8 環境 |
|
| Horizon Client 軟體 |
|
Linux 桌面平台使用的連接埠
若要啟用連線工作階段,Linux 桌面平台必須支援來自 Horizon Client 裝置、Unified Access Gateway 和 Horizon Connection Server 的傳入 TCP 連線。
在 Ubuntu 和 Debian 發行版本中,iptables 防火牆的預設輸入原則設定為 ACCEPT。
在 RHEL、Rocky Linux 和 CentOS 發行版上,如果可能,Horizon Agent 安裝程式指令碼會將 iptables 防火牆設定為使用「接受」的輸入原則。為確保支援傳入連線,請確認 iptables 已將 Blast 連接埠 22443 的新連線輸入原則設為 ACCEPT。
啟用 Blast 安全閘道 (BSG) 時,用戶端連線會從 Horizon Client 裝置透過 Horizon Connection Server 上的 BSG 傳送至 Linux 桌面平台。若未啟用 BSG,連線則會直接從 Horizon Client 裝置連至 Linux 桌面平台。
如需有關 Linux 桌面平台上 Horizon Agent 所使用連接埠的詳細資訊,請參閱《Horizon 安全性》和《Horizon 8 中的網路連接埠》指南。
確認 Linux 虛擬機器使用的 Linux 帳戶
下表列出 Linux 虛擬機器使用的帳戶名稱和帳戶類型。
| 帳戶名稱 | 帳戶類型 | 使用者 |
|---|---|---|
| 根 | Linux 作業系統內建 | Java Standalone Agent、mksvchanserver、Shell 指令碼 |
| <目前登入的使用者> | Linux 作業系統內建、AD 使用者或 LDAP 使用者 | Python 指令碼 |
桌面平台環境
Horizon Agent for Linux 支援不同 Linux 發行版上的多種桌面平台環境。下表列出了各 Linux 發行版的預設桌面平台環境,以及 Horizon Agent for Linux 支援的其他桌面平台環境。
| 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 桌面平台的步驟和命令。
-
使用預設桌面平台環境設定,安裝支援的 Linux 發行版作業系統。
-
針對您的特定 Linux 發行版,執行下表所述的適當命令。
用來安裝桌面平台環境的命令 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.rpmyum groupinstall -y "MATE Desktop"Ubuntu KDE apt install plasma-desktopUbuntu MATE apt install ubuntu-mate-desktop- 若要開始使用新的預設桌面平台環境,請重新啟動桌面平台。
如果您在安裝了多個桌面平台環境的 Linux 桌面平台上啟用 SSO,請使用下列資訊,選取要在 SSO 工作階段中使用的桌面平台環境。
-
對於 Ubuntu 和 RHEL/CentOS 7.x,請使用下表中的資訊,在
viewagent-custom.conf檔案中設定 SSODesktopType 選項,以指定要搭配 SSO 使用的桌面平台環境。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 桌面平台時,必須選取其所需的桌面平台環境。
網路需求
Horizon Blast Extreme 同時支援使用者資料包通訊協定 (UDP) 和傳輸控制通訊協定 (TCP)。網路狀況會影響 UDP 和 TCP 的效能。若要獲得最優質的使用者體驗,請根據網路狀況選取 UDP 或 TCP。
- 如果網路狀況良好 (例如,在區域網路 (LAN) 環境中),請選取 TCP。
- 如果網路狀況不佳 (例如,在封包遺失且時間延遲的廣域網路 (WAN) 環境中),請選取 UDP。
使用網路分析工具 (例如 Wireshark),以判斷 Horizon Blast Extreme 使用的是 TCP 或是 UDP。使用下列參考範例中使用 Wireshark 的一組步驟。
-
在您的 Linux 虛擬機器上下載並安裝 Wireshark。
對於 RHEL/CentOS 和 Rocky Linux:
sudo yum install wireshark針對 Ubuntu:
sudo apt install tshark -
使用 Horizon Client 連線至 Linux 桌面平台。
-
開啟終端機視窗並執行下列命令,以顯示 Horizon Blast Extreme 所使用的 TCP 套件或 UDP 套件。
sudo tshark -i any | grep 22443
網路狀況牽動著 USB 重新導向和用戶端磁碟機重新導向 (CDR) 功能的效用。如果網路狀況不佳 (例如,因頻寬受限而導致時間延遲和封包遺失),使用者體驗就會變差。在這種情況下,使用者可能會遇到下列其中一種狀況。
- 遠端檔案的複製可能會很慢。在此情況下,請改為傳輸較小的檔案。
- USB 裝置未出現在遠端 Linux 桌面平台中。
- USB 資料未完整傳輸。例如,在複製大型檔案時,您取得的檔案大小可能會小於原始檔案。
USB 重新導向的 VHCI 驅動程式
**附註:**若要判斷 VHCI 驅動程式的正確安裝順序,請依照下列準則:
- 如果您打算使用
.tar.gz安裝程式安裝 Horizon Agent,必須先下載並解壓縮該 tarball 安裝程式,然後安裝 VHCI 驅動程式,再使用安裝參數安裝具有 USB 重新導向功能的 Horizon Agent。 - 如果您打算使用
.rpmRPM 安裝程式安裝 Horizon Agent,必須先安裝 Horizon Agent,再安裝 VHCI 驅動程式,最後將 USB 重新導向功能新增至 Horizon Agent 組態。
如需詳細資訊,請參閱在 Linux 虛擬機器上安裝 Horizon Agent。
USB 重新導向功能對 USB 虛擬主機控制器介面 (VHCI) 核心驅動程式具有相依性。若要支援 USB 3.0 和 USB 重新導向功能,您必須透過執行以下步驟來安裝 VHCI 驅動程式:
- 從 https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/ 下載 USB VHCI 原始程式碼。
- 根據 Horizon Agent 安裝程式的格式,確認 VHCI 修補檔案的完整路徑。如需相關準則,請參閱以下範例。
- (Tarball 安裝程式) 如果您下載並解壓縮 Tarball 安裝程式目錄。
- (RPM 安裝程式) 如果您下載 RPM 安裝程式,請使用它來安裝 Horizon Agent。
- 若要編譯 VHCI 驅動程式原始程式碼,並在您的 Linux 系統上安裝產生的二進位檔,請使用下表中列出的命令。將命令中的
full-path_to_patch-file替換為您在前一步驟中確認的檔案路徑。
編譯及安裝 USB VHCI 驅動程式 Linux 發行版 編譯及安裝 USB VHCI 驅動程式的步驟 Ubuntu - 安裝相依性套件。
<pre><code>sudo apt-get install makesudo apt-get install gcc sudo apt-get install libelf-dev
- (Ubuntu 22.04) 安裝核心標頭檔。
<pre><code>sudo apt-get install linux-headers-$(uname -r)</code></pre></li> - 編譯及安裝 VHCI 驅動程式。
<pre><code>tar -xzvf vhci-hcd-1.15.tar.gzcd vhci-hcd-1.15 patch -p1 < full-path_to_patch-file make clean && make && sudo make install
- 如果您已在虛擬機器上啟用可延伸韌體介面 (EFI) 和 UEFI 安全開機,請為 VHCI 驅動程式設定簽署設定。
<ol> <li>建立 VHCI 驅動程式的 SSL 金鑰配對。 <pre><code>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</code></pre> </li> <li>簽署 VHCI 驅動程式。 <pre><code>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.kosudo /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
- 登錄用於 UEFI 安全開機的金鑰。
<pre><code>sudo mokutil --import MOK.der</code></pre> <strong>附註:</strong>此命令會提出要求,為 UEFI 安全開機設定機器擁有者金鑰 (MOK) 密碼。 </li> <li>若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 <a href="https://sourceware.org/systemtap/wiki/SecureBoot">https://sourceware.org/systemtap/wiki/SecureBoot</a>。 </li> </ol></li>
Debian - 安裝相依性套件。
<pre><code>sudo apt install -y patch g++ make linux-headers-$(uname -r)</code></pre></li> - 編譯及安裝 VHCI 驅動程式。
<pre><code>tar -xzvf vhci-hcd-1.15.tar.gzcd 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 - 安裝相依性套件。
<pre><code>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
- 編譯及安裝 VHCI 驅動程式。
<pre><code>tar -xzvf vhci-hcd-1.15.tar.gzcd vhci-hcd-1.15 patch -p1 < full-path_to_patch-file make clean && make && sudo make install
- (RHEL 和 Rocky Linux 9.x/8.x) 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定驅動程式的簽署設定。
<ol> <li>建立 VHCI 驅動程式的 SSL 金鑰配對。 <pre><code>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</code></pre> </li> <li>簽署 VHCI 驅動程式。 <pre><code>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.kosudo /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
- 登錄用於 UEFI 安全開機的金鑰。
<pre><code>sudo mokutil --import MOK.der</code></pre> <strong>附註:</strong>此命令會提出要求,為 UEFI 安全開機設定機器擁有者金鑰 (MOK) 密碼。 </li> <li>若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 <a href="https://sourceware.org/systemtap/wiki/SecureBoot">https://sourceware.org/systemtap/wiki/SecureBoot</a>。 </li> </ol></li>
SLED/SLES - 尋找目前核心套件的版本。
<pre><code>rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)</code></pre> 輸出結果為目前所安裝核心套件的名稱。例如,如果套件名稱為 <code>kernel-default-3.0.101-63.1</code>,則目前的核心套件版本將是 3.0.101-63.1。</li> - 安裝
kernel-devel、kernel-default-devel、kernel-macros和patch套件。<pre><code>sudo zypper install --oldpackage kernel-devel-<em><kernel-package-version></em> \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 - 編譯及安裝 VHCI 驅動程式。
<pre><code>tar -xzvf vhci-hcd-1.15.tar.gzcd 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
- 若要確保 VHCI 驅動程式可與 USB 重新導向正常搭配運作,請設定驅動程式的簽署設定。
<ol> <li>建立 VHCI 驅動程式的 SSL 金鑰配對。 <pre><code>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</code></pre> </li> <li>尋找 VHCI 驅動程式的簽署檔案路徑。 <pre><code>sudo find / -name sign-file</code></pre> 此命令會傳回位於系統上所有簽署檔案的路徑。VHCI 驅動程式的簽署檔案路徑類似於下列範例。 <pre><code>/usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/</code></pre> </li> <li>簽署 VHCI 驅動程式。在下列命令中,<sign-file-path> 是您先前在步驟 4b 中找到的簽署檔案路徑。 <pre><code>sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.kosudo /<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
- 登錄用於 UEFI 安全開機的金鑰。
<pre><code>sudo mokutil --import MOK.der</code></pre> <strong>附註:</strong>此命令會提出要求,為 UEFI 安全開機設定機器擁有者金鑰 (MOK) 密碼。 </li> <li>若要在 vSphere 主控台中設定 UEFI 安全開機,請將系統重新開機。如需詳細資訊,請參閱 <a href="https://sourceware.org/systemtap/wiki/SecureBoot">https://sourceware.org/systemtap/wiki/SecureBoot</a>。 </li> </ol></li>
此外,請遵循下列指引:
- 如果您的 Linux 核心變更為新版本,則必須重新編譯並重新安裝 VHCI 驅動程式,但無需重新安裝 Horizon Agent for Linux。
- 您也可以使用與 Ubuntu 系統的下列範例相類似的步驟,將動態核心模組支援 (DKMS) 新增至 VHCI 驅動程式。
-
安裝核心標頭。
sudo apt install linux-headers-`uname -r` -
使用下列命令安裝
dkms。sudo apt install dkms -
解壓縮並修補 VHCI TAR 檔案。
tar xzvf vhci-hcd-1.15.tar.gz cd vhci-hcd-1.15 patch -p1 *<full-path_to_patch-file>* cd .. -
將解壓縮的 VHCI 來源檔案複製到
/usr/src目錄。sudo cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15 -
建立名為
dkms.conf的檔案,並將其置於/usr/src/usb-vhci-hcd-1.15目錄中。sudo touch /usr/src/usb-vhci-hcd-1.15/dkms.conf -
將下列內容新增至
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" -
在
dkms中新增此 VHCI 驅動程式。sudo dkms add usb-vhci-hcd/1.15 -
建置 VHCI 驅動程式。
sudo dkms build usb-vhci-hcd/1.15 -
安裝 VHCI 驅動程式。
sudo dkms install usb-vhci-hcd/1.15
-
此頁面對您有幫助嗎?