要安装 Horizon Agent for Linux,必须满足 Linux 操作系统、Linux 虚拟机、VMware Horizon 系统组件和 vSphere 平台的特定要求。
Horizon Agent 支持的 Linux 版本
下表列出了 Horizon Agent 支持的 Linux 操作系统。
Linux 分发包 | 架构 |
---|---|
Ubuntu 20.04 和 18.04 | x64 |
Red Hat Enterprise Linux (RHEL) Workstation 7.2、7.3、7.4、7.5、7.6、7.7、7.8、7.9、8.0、8.1、8.2 和 8.3 | x64 |
Red Hat Enterprise Linux (RHEL) Server 7.8、7.9、8.2 和 8.3 | x64 |
CentOS 7.2、7.3、7.4、7.5、7.6、7.7、7.8、7.9、8.0、8.1、8.2 和 8.3 | x64 |
SUSE Linux Enterprise Desktop (SLED) 12 SP3、15 SP1 和 15 SP2 | x64 |
SUSE Linux Enterprise Server (SLES) 12 SP3、12 SP5、15 SP1 和 15 SP2 | x64 |
所需的平台和软件版本
要安装并使用 Horizon Agent for Linux,您的部署必须满足 vSphere 平台、Horizon Connection Server 和 Horizon Client 软件的特定要求。
平台和软件 | 支持的版本 |
---|---|
vSphere 平台版本 |
|
Horizon 环境 |
|
Horizon Client 软件 |
|
Linux 虚拟机使用的 TCP/UDP 端口
Horizon 8 Agent 和 Horizon Client 使用 TCP 或 UDP 端口进行相互之间以及它们与各种 Horizon 8 Server 组件之间的网络访问。
源 | 端口 | 目标 | 端口 | 协议 | 说明 |
---|---|---|---|---|---|
Horizon Client | * | Linux 代理 | 22443 | TCP/UDP | 如果使用了 Blast 安全网关,则为 Blast |
Horizon 8 连接服务器或 Unified Access Gateway 设备 | * | Linux 代理 | 22443 | TCP/UDP | 如果使用了 Blast 安全网关,则为 Blast |
Horizon 8 Agent | * | Horizon 8 连接服务器 | 4001、4002 | TCP | JMS SSL 流量 |
要允许用户连接到其 Linux 桌面,这些桌面必须可以接受来自 Horizon Client 设备、Unified Access Gateway 和 Horizon Connection Server的入站 TCP 连接。
在 Ubuntu 分发包中,已默认配置 iptables 防火墙并设置了一条“ACCEPT”的输入策略。
在 RHEL 和 CentOS 分发包中,如果可能,Horizon Agent 安装程序脚本将配置 iptables 防火墙并设置一条“ACCEPT”的输入策略。
请确保 RHEL 或 CentOS 客户机操作系统上的 iptables 具有一条“ACCEPT”的输入策略,用于接受来自 Blast 端口 22443 的新连接。
启用 BSG 后,将通过 Horizon Connection Server上的 BSG 在 Horizon Client 设备与 Linux 桌面之间建立客户端连接。未启用 BSG 时,将直接在 Horizon Client 设备与 Linux 桌面之间建立连接。
验证 Linux 虚拟机使用的 Linux 帐户
下表列出了 Linux 虚拟机使用的帐户名称和帐户类型。
帐户名称 | 帐户类型 | 使用者 |
---|---|---|
根 | Linux 操作系统内置 | Java Standalone Agent、mksvchanserver、Shell 脚本 |
vmwblast | 由 Linux 代理安装程序创建 | VMwareBlastServer |
<当前登录用户> | Linux 操作系统内置或 AD 用户或 LDAP 用户 | Python 脚本 |
桌面环境
Linux 分发包 | 默认桌面环境 | Horizon Agent for Linux 支持的桌面环境 |
---|---|---|
Ubuntu 20.04/18.04 | Gnome | Gnome Ubuntu、K 桌面环境 (KDE)、MATE |
RHEL/CentOS 7.x | Gnome | Gnome、KDE |
RHEL/CentOS 8.x | Gnome | Gnome |
SLED/SLES | Gnome | Gnome |
仅当您的 Linux 桌面使用 GDM3 欢迎程序(登录屏幕)时,才可对 KDE 和 MATE 桌面环境使用单点登录 (SSO)。您必须使用用于安装桌面环境的命令中列出的命令安装 KDE 和 MATE。
使用 RHEL/CentOS 7.x 和 Ubuntu 分发包时,SSO 无法对锁定的 KDE 会话进行解锁。您必须手动输入密码才能对锁定的会话解锁。
要更改在某个支持的 Linux 分发包中使用的默认桌面环境,您必须执行以下步骤并使用适用于您的 Linux 桌面的命令。
- 使用默认桌面环境设置安装支持的 Linux 分发包的操作系统。
- 为您的特定 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
- 要开始使用新的默认桌面环境,请重新启动桌面。
- 对于 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 桌面时,必须选择其所需的桌面环境。
网络要求
- 如果网络条件良好(例如处于局域网 (LAN) 环境中),请选择 TCP。
- 如果网络条件较差(例如处于广域网 (WAN) 环境中,在该环境中可能会发生数据包丢失和时间延迟),请选择 UDP。
- 在您的 Linux 虚拟机上下载并安装 Wireshark。
对于 RHEL/CentOS:
sudo yum install wireshark
对于 Ubuntu:sudo apt install tshark
- 使用 VMware Horizon Client 连接到 Linux 桌面。
- 打开终端窗口并运行以下命令,此命令将显示 VMware Blast Extreme 使用的 TCP 软件包或 UDP 软件包。
sudo tshark -i any | grep 22443
- 复制远程文件的速度可能较慢。在这种情况下,请改为传输较小的文件。
- 远程 Linux 桌面中不显示 USB 设备。
- USB 数据无法完整传输。例如,在复制大型文件时,获得的文件可能小于原始文件。
用于 USB 重定向的 VHCI 驱动程序
USB 重定向功能依赖于 USB 虚拟主机控制器接口 (Virtual Host Controller Interface, VHCI) 内核驱动程序。为支持 USB 3.0 和 USB 重定向功能,必须执行以下步骤:
- 从 https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/ 下载 USB VHCI 源代码。
- 要编译 VHCI 驱动程序源代码并在 Linux 系统上安装生成的二进制文件,请使用下表中列出的命令。
例如,如果在 /install_tmp/ 目录下解压缩安装文件 VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz,那么 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
Linux 分发包 | 编译并安装 USB VHCI 驱动程序的步骤 |
---|---|
Ubuntu 20.04/18.04 |
|
RHEL/CentOS 7.x RHEL/CentOS 8.x |
|
SLED/SLES 12.x SLED/SLES 15.x |
|
此外,请遵循以下准则:
- 如果您的 Linux 内核更改为新版本,您必须重新编译并重新安装 VHCI 驱动程序,但无需重新安装 Horizon for Linux。
- 您还可以使用与以下 Ubuntu 系统示例类似的步骤,为 VHCI 驱动程序添加动态内核模块支持 (Dynamic Kernel Module Support, DKMS)。
- 安装内核头文件。
# apt install linux-headers-`uname -r`
- 使用以下命令安装 dkms。
# 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 目录。
# cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
- 创建一个名为 dkms.conf 的文件,并将其放在 /usr/src/usb-vhci-hcd-1.15 目录中。
# 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 驱动程序。
# dkms add usb-vhci-hcd/1.15
- 生成 VHCI 驱动程序。
# dkms build usb-vhci-hcd/1.15
- 安装 VHCI 驱动程序。
# dkms install usb-vhci-hcd/1.15
- 安装内核头文件。