您可以向文件 /etc/vmware/config/etc/vmware/viewagent-custom.conf 添加条目,以配置某些选项。

Horizon Agent 的安装过程中,安装程序将两个配置模板文件 config.templateviewagent-custom.conf.template 复制到 /etc/vmware 中。此外,如果 /etc/vmware/config/etc/vmware/viewagent-custom.conf 不存在,安装程序会将 config.template 复制到 config,并将 viewagent-custom.conf.template 复制到 viewagent-custom.conf。在模板文件中会列出并记录所有配置选项。要设置某个选项,只需移除注释和更改相关值即可。

例如, /etc/vmware/config 中的以下行用于启用构建无损 PNG 模式。
RemoteDisplay.buildToPNG=TRUE

在进行配置更改后,重新引导 Linux 以使更改生效。

/etc/vmware/config 中的配置选项

VMwareBlastServer 及其相关插件使用配置文件 /etc/vmware/config
注: 下表介绍了 Horizon Agent 配置文件中的各个代理强制执行的 USB 策略设置。 Horizon Agent 使用这些设置确定是否能够将 USB 转发至主机。 Horizon Agent 还会将这些设置传递到 Horizon Client 进行解释和执行。根据您是指定合并 (m) 修改符以同时应用 Horizon Agent 筛选策略设置和 Horizon Client 筛选策略设置,还是覆盖 (o) 修改符以使用 Horizon Agent 筛选策略设置而不使用 Horizon Client 筛选策略设置来执行。
表 1. /etc/vmware/config 中的配置选项
选项 值/格式 默认 说明
Clipboard.Direction 0, 1, 2,3 2 使用该选项指定剪贴板重定向策略。有效值如下:
  • 0 - 禁用剪贴板重定向。
  • 1 - 启用双向剪贴板重定向。
  • 2 - 仅启用从客户端到远程桌面的剪贴板重定向。
  • 3 - 仅启用从远程桌面到客户端的剪贴板重定向。
RemoteDisplay.allowAudio truefalse true 设置该选项以启用/禁用音频输出。
RemoteDisplay.allowH264 truefalse true 设置该选项以启用或禁用 H.264 编码。
RemoteDisplay.allowH264YUV444 truefalse true 设置该选项以启用或禁用 H.264 YUV 4:4:4 编码和高色彩精度(如果客户端支持)。
RemoteDisplay.allowHEVC truefalse true 设置该选项以启用或禁用高效率视频编码 (HEVC)。
RemoteDisplay.allowHEVCYUV444 truefalse true 设置该选项以启用或禁用 HEVC YUV 4:4:4 和高色彩精度(如果客户端支持)。
RemoteDisplay.buildToPNG truefalse false 图形应用程序(尤其是图形设计应用程序)要求图像在 Linux 桌面的客户端显示器中呈现时精确至像素级别。您可以为在 Linux 桌面上生成并在客户端设备上呈现的图像和视频回放配置无损构建 PNG 模式。该功能会占用客户端与 ESXi 主机之间额外的带宽。启用该选项将禁用 H.264 编码。
RemoteDisplay.enableNetworkContinuity truefalse true 设置该选项以在 Horizon Agent for Linux 中启用或禁用持续网络连接功能。
RemoteDisplay.enableNetworkIntelligence truefalse true 设置该选项以在 Horizon Agent for Linux 中启用或禁用网络智能功能。
RemoteDisplay.enableStats truefalse false 启用或禁用 mks 日志中的 VMware Blast 显示协议统计信息,例如带宽、FPS、RTT 等。
RemoteDisplay.enableUDP truefalse true 设置该选项以在 Horizon Agent for Linux 中启用或禁用 UDP 协议支持。
RemoteDisplay.maxBandwidthKbps 整数 1000000 指定 VMware Blast 会话的最大带宽,以千比特/秒 (kbps) 为单位。此带宽包括所有图像处理、音频、虚拟通道以及 VMware Blast 控制流量。有效值必须小于 4 Gbps (4096000)。
RemoteDisplay.minBandwidthKbps 整数 256 指定 VMware Blast 会话的最小带宽,以千比特/秒 (kbps) 为单位。此带宽包括所有图像处理、音频、虚拟通道以及 VMware Blast 控制流量。
RemoteDisplay.maxFPS 整数 30 指定屏幕更新的最大速率。使用此设置可管理用户占用的平均带宽。有效值必须介于 3 和 60 之间。默认值为每秒更新 30 次。
RemoteDisplay.maxQualityJPEG 可用值范围:1-100 90 指定使用 JPEG/PNG 编码时桌面显示的图像质量。高质量设置用于较为静态的屏幕区域,从而产生更好的图像质量。
RemoteDisplay.midQualityJPEG 可用值范围:1-100 35 指定使用 JPEG/PNG 编码时桌面显示的图像质量。用于设置桌面显示的中等质量设置。
RemoteDisplay.minQualityJPEG 可用值范围:1-100 25 指定使用 JPEG/PNG 编码时桌面显示的图像质量。低质量设置用于经常变化的屏幕区域,例如,发生滚动时。
RemoteDisplay.qpmaxH264 可用值范围:0-51 36 使用此选项可设置 H264minQP 量化参数,该参数用来为配置为使用 H.264 或 HEVC 编码的远程显示指定最佳图像质量。应将该值设置为大于为 RemoteDisplay.qpminH264 设置的值。
RemoteDisplay.qpminH264 可用值范围:0-51 10 使用此选项可设置 H264maxQP 量化参数,该参数用来为配置为使用 H.264 或 HEVC 编码的远程显示指定最低图像质量。应将该值设置为小于为 RemoteDisplay.qpmaxH264 设置的值。
UsbRedirPlugin.log.logLevel errorwarninfodebugtraceverbose info 使用该选项设置 USB 重定向插件的日志级别。
UsbRedirServer.log.logLevel errorwarninfodebugtraceverbose info 使用该选项设置 USB 重定向服务器的日志级别。
VMWPkcs11Plugin.log.enable truefalse false 设置该选项为 True SSO 功能启用或禁用日志记录模式。
VMWPkcs11Plugin.log.logLevel errorwarninfodebugtraceverbose info 使用该选项为 True SSO 功能设置日志级别。
VVC.RTAV.Enable truefalse true 设置该选项以启用/禁用音频输入。
VVC.ScRedir.Enable truefalse true 设置该选项以启用/禁用智能卡重定向。
VVC.logLevel fatal errorwarninfodebugtrace info 使用该选项设置 VVC 代理节点的日志级别。
cdrserver.cacheEnable truefalse true 设置该选项以启用或禁用从代理向客户端的写入缓存功能。
cdrserver.customizedSharedFolderPath folder_path /home/ 使用此选项可将客户端驱动器重定向 (CDR) 共享文件夹位置从默认的 /home/user/tsclient 目录更改为自定义目录。

例如,如果用户 test 要将 CDR 共享文件夹放在 /mnt/test/tsclient(而不是 /home/test/tsclient)中,则该用户可以指定 cdrserver.customizedSharedFolderPath=/mnt/

注: 为了使此选项生效,指定的文件夹必须存在且已使用正确的用户权限进行配置。
cdrserver.forcedByAdmin truefalse false 设置该选项以控制客户端是否可以共享未通过 cdrserver.shareFolders 选项指定的其他文件夹。
cdrserver.logLevel errorwarninfodebugtraceverbose info 使用该选项设置 vmware-CDRserver.log 文件的日志级别。
cdrserver.permissions R RW 使用该选项应用 Horizon AgentHorizon Client 共享的文件夹具有的额外读取/写入权限。例如:
  • 如果 Horizon Client 共享的文件夹具有 readwrite 权限,而您设置了 cdrserver.permissions=R,则 Horizon Agent 只具有 read 访问权限。
  • 如果 Horizon Client 共享的文件夹只具有 read 权限,而您设置了 cdrserver.permissions=RW,则 Horizon Agent 仍然只具有 read 访问权限。Horizon Agent 无法更改 Horizon Client 设置的仅 read 属性。Horizon Agent 只能移除写入访问权限。
典型用法如下:
  • cdrserver.permissions=R
  • #cdrserver.permissions=R(例如,将其注释掉或删除该条目)
cdrserver.sharedFolders file_path1,R;file-path2,; file_path3,R; ... 未定义 指定客户端可与 Linux 桌面共享的一个或多个文件夹的文件路径。例如:
  • 对于 Windows 客户端:C:\spreadsheets,;D:\ebooks,R
  • 对于非 Windows 客户端:/tmp/spreadsheets;/tmp/ebooks,;/home/finance,R
collaboration.logLevel errorinfodebug info 使用此选项设置协作会话所使用的日志级别。如果日志级别为 debug,则会记录对 collabui 函数和 collabor 列表内容进行的所有调用。
collaboration.maxCollabors 小于 10 的整数 5 指定可邀请加入会话的协作者的最大数量。
collaboration.enableEmail truefalse true 设置该选项以允许或禁止通过已安装的电子邮件应用程序发送协作邀请。如果禁用该选项,您无法使用电子邮件邀请协作者,即使安装了电子邮件应用程序。
collaboration.serverUrl [URL] 未定义 指定要包含在协作邀请中的服务器 URL。
collaboration.enableControlPassing truefalse true 设置该选项以允许或限制协作者控制 Linux 桌面。要指定只读协作会话,请将该选项设置为 false
Desktop.displayNumberMax 整数 159
注: 此选项仅适用于 Horizon Agent 7.13.1 或 7.13.2。

指定要分配给用户会话的 X Windows 系统显示器数量的范围上限。SLED/SLES 桌面不支持此功能。

要将分配限制为单个显示器数量,请将 Desktop.displayNumberMaxDesktop.displayNumberMin 设置为相同的值。

注: 如果指定的范围包含 0 到 9 之间的任意显示器编号,则 X 服务器可能会发生冲突。请采用 VMware 知识库 (KB) 文章 81704 中所述的解决办法。
Desktop.displayNumberMin 整数 100
注: 此选项仅适用于 Horizon Agent 7.13.1 或 7.13.2。

指定要分配给用户会话的 X Windows 系统显示器数量的范围下限。SLED/SLES 桌面不支持此功能。

要将分配限制为单个显示器数量,请将 Desktop.displayNumberMaxDesktop.displayNumberMin 设置为相同的值。

注: 如果指定的范围包含 0 到 9 之间的任意显示器编号,则 X 服务器可能会发生冲突。请采用 VMware 知识库 (KB) 文章 81704 中所述的解决办法。
mksVNCServer.useUInputButtonMapping truefalse false 设置该选项以在 Ubuntu 或 RHEL 7.x 上启用左手鼠标支持。CentOS 和 RHEL 6.x 支持左手鼠标,您不需要设置此选项。
mksvhan.clipboardSize 整数 1024 使用该选项指定用于复制和粘贴操作的剪贴板最大大小。
vdpservice.log.logLevel fatal errorwarninfodebugtrace info 使用该选项设置 vdpservice 的日志级别。
viewusb.AllowAudioIn {m|o}:{true|false} 未定义,等同于 true 使用该选项允许或禁止对音频输入设备进行重定向。示例:o:false
viewusb.AllowAudioOut {m|o}:{true|false} 未定义,等同于 false 设置该选项以允许或禁止对音频输出设备进行重定向。
viewusb.AllowAutoDeviceSplitting {m|o}:{true|false} 未定义,等同于 false 设置该选项以允许或禁止自动拆分复合 USB 设备。

示例:m:true

viewusb.AllowDevDescFailsafe {m|o}:{true|false} 未定义,等同于 false 设置该选项以便即使在 Horizon Client 未能获取配置或设备描述符时,也允许或禁止对设备进行重定向。要在设备未能获取配置或设备描述符时也仍然允许对其进行重定向,可将该设备包含在 Include 筛选器中,例如 IncludeVidPidIncludePath
viewusb.AllowHIDBootable {m|o}:{true|false} 未定义,等同于 true 使用该选项允许或禁止对引导时除键盘或鼠标之外的其他可用输入设备(又称为可引导的 HID 设备)进行重定向。
viewusb.AllowKeyboardMouse {m|o}:{true|false} 未定义,等同于 false 使用该选项允许或禁止对键盘以及集成指针设备(例如,鼠标、轨迹球或触摸板)进行重定向。
viewusb.AllowSmartcard {m|o}:{true|false} 未定义,等同于 false 设置该选项以允许或禁止对智能卡设备进行重定向。
viewusb.AllowVideo {m|o}:{true|false} 未定义,等同于 true 使用该选项允许或禁止对视频设备进行重定向。
viewusb.DisableRemoteConfig {m|o}:{true|false} 未定义,等同于 false 设置该选项以禁止或允许在执行 USB 设备筛选时使用 Horizon Agent 设置。
viewusb.ExcludeAllDevices {true|false} 未定义,等同于 false 使用该选项在重定向中排除或包含所有 USB 设备。如果设置为 true,可以使用其他策略设置来允许对特定设备或设备系列进行重定向。如果设置为 false,可以使用其他策略设置来禁止对特定设备或设备系列进行重定向。如果将 Horizon Agent 上的 ExcludeAllDevices 值设置为 true,并将该设置传递到 Horizon ClientHorizon Agent 设置将覆盖 Horizon Client 设置。
viewusb.ExcludeFamily {m|o}:family_name_1[;family_name_2;...] 未定义 使用该选项从重定向中排除设备系列。例如:m:bluetooth;smart-card
如果启用了自动设备拆分,Horizon 将检查复合 USB 设备的每个接口的设备系列,以确定必须排除哪些接口。如果禁用了自动设备拆分,Horizon 将检查整个复合 USB 设备的设备系列。
注: 默认情况下会从重定向中排除鼠标和键盘,因而不需要使用此设置来排除这些设备。
viewusb.ExcludePath {m|o}:bus-x1[/y1].../ port-z1[;bus-x2[/y2].../port-z2;...] 未定义 使用该选项从重定向中排除位于指定集线器或端口路径的设备。您必须以十六进制格式指定总线和端口号。在路径中不能使用通配符。

例如:m:bus-1/2/3_port- 02;bus-1/1/1/4_port-ff

viewusb.ExcludeVidPid {m|o}:vid-xxx1_ pid-yyy1[;vid-xxx2_pid-yyy2;..] 未定义 设置该选项以从重定向中排除具有指定供应商和产品 ID 的设备。您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:o:vid-0781_pid- ****;vid-0561_pid-554c

viewusb.IncludeFamily {m|o}:family_name_1[;family_name_2]... 未定义 设置该选项以包含可重定向的设备系列。

例如:o:storage; smart-card

viewusb.IncludePath {m|o}:bus-x1[/y1].../ port-z1[;bus-x2[/y2].../portz2;...] 未定义 使用该选项包含位于指定集线器或端口路径的可重定向设备。您必须以十六进制格式指定总线和端口号。在路径中不能使用通配符。

例如:m:bus-1/2_port- 02;bus-1/7/1/4_port-0

viewusb.IncludeVidPid {m|o}:vid-xxx1_ pid-yyy1[;vid-xxx2_pid-yyy2;...] 未定义 设置该选项以包含具有指定供应商和产品 ID 的可重定向设备。您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:o:vid-***_pid-0001;vid-0561_pid-554c

viewusb.SplitExcludeVidPid {m|o}:vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2;...] 未定义 使用该选项按供应商和产品 ID 在拆分中排除或包含指定的复合 USB 设备。该设置的格式为 vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2;...]。您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

示例:m:vid-0f0f_pid-55**

viewusb.SplitVidPid {m|o}: vid-xxxx_pid-yyyy([exintf:zz[;exintf:ww]])[;...] 未定义 设置该选项以将由供应商和产品 ID 指定的复合 USB 设备的组件视为单独设备。该设置的格式为 vid-xxxx_pid-yyyy(exintf:zz[;exintf:ww])

可以使用 exintf 关键字通过指定组件的接口号从重定向中排除组件。您必须以十六进制格式指定 ID 号,以十进制格式(包含前导零)指定接口号。可以使用通配符 (*) 代替 ID 中的单个数字。

示例:o:vid-0f0f_pid-***(exintf-01);vid-0781_pid-554c(exintf:01;exintf:02)

注: Horizon 不会自动包含未明确排除的组件。您必须指定一个筛选策略(如 Include VidPid Device)来包含这些组件。

/etc/vmware/viewagent-custom.conf 中的配置选项

Java Standalone Agent 使用配置文件 /etc/vmware/viewagent-custom.conf

表 2. /etc/vmware/viewagent-custom.conf 中的配置选项
选项 默认 说明
CDREnable truefalse true 使用该选项以启用或禁用客户端驱动器重定向 (CDR) 功能。
CollaborationEnable truefalse true 使用此选项可在 Linux 桌面上启用或禁用会话协作功能。
EndpointVPNEnable truefalse false 设置该选项以指定在根据 Dynamic Environment Manager 控制台中使用的端点 IP 地址范围评估端点 IP 地址时,是使用客户端的物理网卡 IP 地址还是 VPN IP 地址。如果将该选项设置为 false,将使用客户端的物理网卡 IP 地址。否则,将使用 VPN IP 地址。
HelpDeskEnable truefalse true 设置该选项以启用或禁用技术支持工具功能。
KeyboardLayoutSync truefalse true 使用该选项指定是否将客户端的系统区域设置列表和当前键盘布局与适用于 Linux 的 Horizon Agent 桌面同步。

启用或未配置此设置时,允许同步。禁用此设置时,不允许同步。

只有适用于 Windows 的 Horizon Client 支持该功能,并且该功能仅适用于英语、法语、德语、日语、韩语、西班牙语、简体中文和繁体中文区域设置。

LogCnt 整数 -1 使用该选项设置在 /tmp/vmware-root 中保留的日志文件计数。
  • -1 - 全部保留
  • 0 - 全部删除
  • > 0 - 保留的日志计数。
NetbiosDomain 全部为大写形式的文本字符串 在配置 True SSO 时,可以使用该选项设置您的组织的域的 NetBIOS 名称。
OfflineJoinDomain pbissamba pbis 可使用此选项来设置即时克隆脱机域加入。可执行脱机域加入的方法包括 PowerBroker Identity Services Open (PBISO) 身份验证和 Samba 脱机域加入。如果此属性的值不是 pbissamba,则将忽略脱机域加入。
RunOnceScript

使用该选项将克隆的虚拟机重新加入 Active Directory。

设置主机名更改后的 RunOnceScript 选项。指定的脚本只在首次主机名更改后运行一次。如果在安装代理后更改了主机名,在代理服务启动时,将以 root 权限运行该脚本。

例如,对于 Winbind 解决方案,您必须通过 Winbind 将基础虚拟机加入 Active Directory,并将该选项设置为一个脚本路径。该脚本必须包含域重新加入命令 /usr/bin/net ads join -U <ADUserName>%<ADUserPassword>。在虚拟机克隆后,操作系统自定义将更改主机名。当代理服务启动时,将运行该脚本以将克隆的虚拟机加入 Active Directory。

RunOnceScriptTimeout 120 使用此选项设置 RunOnceScript 选项的超时时间,以秒为单位。

例如,设置 RunOnceScriptTimeout=120

SSLCiphers 文本字符串 !aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES 使用该选项以指定密码列表。您必须使用 https://www.openssl.org/docs/manmaster/man1/ciphers.html 中定义的格式。
SSLProtocols 文本字符串 TLSv1_1:TLSv1_2 使用该选项以指定安全协议。支持的协议是 TLSv1.0、TLSv1.1 和 TLSv1.2。
SSODesktopType UseGnomeClassicUseGnomeFlashbackUseGnomeUbuntuUseMATEUseKdePlasma N/A

此选项指定在启用了 SSO 时要使用的桌面环境,而不是默认桌面环境。

在指定使用所选的桌面环境之前,您必须先确保桌面上已安装该桌面环境。在 Ubuntu 桌面中设置此选项后,无论是否启用 SSO 功能,此选项都会生效。如果在 RHEL/CentOS 7.x 桌面中指定此选项,则只有在启用了 SSO 的情况下才会使用所选的桌面环境。

RHEL/CentOS 8.x 和 RHEL/CentOS 6.x 桌面不支持此选项。Horizon 7 仅在 RHEL/CentOS 8.x 桌面上支持 Gnome 桌面环境。

有关如何在 RHEL/CentOS 6.x 桌面中启用了 SSO 的情况下将 KDE 设置为默认桌面环境的更多信息,请参阅桌面环境

SSOEnable truefalse true 设置该选项以启用/禁用单点登录 (Single Sign-On, SSO)。
SSOUserFormat 文本字符串 [username] 使用该选项以指定用于单点登录的登录名称格式。默认值只包含用户名。如果还需要域名,请设置该选项。通常,登录名称是域名加上一个特殊字符,再加上用户名。如果特殊字符是反斜杠,则必须使用另一个反斜杠对其进行转义。登录名称格式的示例如下:
  • SSOUserFormat=[domain]\\[username]
  • SSOUserFormat=[domain]+[username]
  • SSOUserFormat=[username]@[domain]
Subnet 采用 CIDR IP 地址格式的值 [subnet] 将此选项设置为其他计算机可用于连接到 Horizon Agent for Linux 的子网。如果存在多个具有不同子网的本地 IP 地址,则将使用所配置的子网中的本地 IP 地址连接到 Horizon Agent for Linux。您必须指定 CIDR IP 地址格式的值。例如,Subnet=123.456.7.8/24。
UEMEnable truefalse false 设置该选项以启用或禁用 Dynamic Environment Manager 智能策略。如果将该选项设置为启用,并且满足 Dynamic Environment Manager 智能策略中的条件,将强制执行这些策略。
UEMNetworkPath 文本字符串 必须将此选项设置为在 Dynamic Environment Manager 控制台中设置的相同网络路径。路径格式必须类似于 //10.111.22.333/view/LinuxAgent/UEMConfig
注: VMwareBlastServer 进程有三个安全选项:SSLCiphers、SSLProtocols 和 SSLCipherServerPreference。在启动 VMwareBlastServer 进程时,Java Standalone Agent 将这些选项作为参数传递。启用 Blast 安全网关 (BSG) 时,这些选项会影响 BSG 和 Linux 桌面之间的连接。当 BSG 被禁用时,这些选项会影响客户端和 Linux 桌面之间的连接。