使用简易安装创建非域加入的 Linux VDA
本文将引导您使用简易安装方法,在 Citrix DaaS 或 Citrix Virtual Apps and Desktops™ 2407 及更高版本中创建非域加入的 Linux VDA 并将其注册到计算机目录。
重要:
- 对于 Citrix DaaS™ 客户:
- 您可以在公共云或本地数据中心部署非域加入的 VDA。非域加入的 VDA 由 Citrix DaaS 中的控制平面管理。
- 要创建非域加入的 VDA,使用 Citrix Gateway 服务的客户必须确保 Rendezvous V2 已启用。仅当您计划在本地虚拟机管理程序上预配计算机或希望在 Workspace 中使用 Active Directory 作为身份提供程序时,才需要 Cloud Connector。
- 要创建非域加入的 VDA,您也可以使用 MCS。有关详细信息,请参阅使用 MCS 创建非域加入的 Linux VDA。
- MCS 不支持裸机服务器。
- 非域加入的 Linux VDA 提供以下功能:
- Rendezvous V2
步骤 1:创建空计算机目录
-
登录 Citrix Web Studio™ 并创建一个不包含任何计算机的空计算机目录。Linux VDA 不支持使用令牌文件注册到电源管理的计算机目录。
-
对于操作系统,请选择:
- 多会话操作系统选项,用于托管共享桌面交付模型。
- 单会话操作系统选项,用于 VDI 专用桌面交付模型。
- 请勿在同一计算机目录中混合使用 Linux 和 Windows VDA 计算机。
- 请勿在同一计算机目录中混合使用域加入和非域加入的计算机。
- 对于创建令牌注册计算机目录,请在计算机类型页面上选择单会话操作系统或多会话操作系统,并在计算机管理页面上选择“非电源管理的计算机(例如,物理计算机)”。
注意:
Citrix Studio 的早期版本不支持“Linux 操作系统”的概念。但是,选择Windows Server 操作系统或服务器操作系统选项意味着等效的托管共享桌面交付模型。选择Windows 桌面操作系统或桌面操作系统选项意味着每个计算机一个用户的交付模型。
步骤 2:创建注册令牌
要使用简易安装创建非域加入的 VDA,您需要一个令牌文件来将 VDA 注册到计算机目录,并将 VDA 身份验证到云或本地交付控制器。Linux VDA 不支持使用令牌文件注册到电源管理的计算机目录。
要创建注册令牌,请在 Citrix Web Studio 中完成以下步骤:
提示:
在 Citrix DaaS 中,Web Studio 称为“完全配置”。
- 选择您之前创建的空计算机目录,然后在操作栏中选择管理注册令牌。
-
- 在管理注册令牌页面上,单击生成以创建注册令牌。或者,您可以选择处于有效状态的现有令牌。
-
按照向导完成设置。
-
下载成功创建的令牌,并将其以最低权限保存到安全位置。稍后运行简易安装脚本时,CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE 变量允许您指定令牌文件的路径以注册 VDA。
步骤 3:安装 .NET
除了 .NET Runtime,您必须在安装或升级 Linux VDA 之前,在所有受支持的 Linux 发行版上安装 .ASP.NET Core Runtime 版本 8。
如果您的 Linux 发行版包含所需的 .NET 版本,请从内置源安装。否则,请从 Microsoft 包源安装 .NET。有关详细信息,请参阅 https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers。
安装 .NET 后,运行 which dotnet 命令以查找您的运行时路径。
根据命令输出,设置 .NET 运行时二进制路径。例如,如果命令输出为 /aa/bb/dotnet,则使用 /aa/bb 作为 .NET 二进制路径。
- ## 步骤 4:添加自签名 CA 证书
有关配置自签名 CA 证书的详细信息,请参阅为 WebSocket 配置自签名证书。本节涉及在 Linux VDA 上放置和更新 CA 证书。
-
对于 RHEL 和 Rocky Linux:
将自签名 CA 证书保存到 Linux VDA 上的 /etc/pki/ca-trust/source/anchors 目录,然后运行以下命令更新证书:
sudo update-ca-trust <!--NeedCopy--> -
对于 SUSE、Ubuntu 和 Debian:
将根 CA 证书放置在 /usr/local/share/ca-certificates 目录中。然后,运行 update-ca-certificate 命令。
sudo update-ca-certificates <!--NeedCopy-->
步骤 5:下载 Linux VDA 软件包
- 转到 Citrix Virtual Apps and Desktops 下载页面。
- 展开相应版本的 Citrix Virtual Apps™ and Desktops。
-
展开组件以查找 Linux VDA。例如:

-
单击 Linux VDA 链接以访问 Linux VDA 下载。

-
下载与您的 Linux 发行版匹配的 Linux VDA 软件包。
-
下载 GPG 公钥,您可以使用该公钥验证 Linux VDA 软件包的完整性。例如:

要使用公钥验证 Linux VDA 软件包的完整性:
-
对于 RPM 软件包,运行以下命令以将公钥导入 RPM 数据库并检查软件包完整性:
- rpmkeys --import <path to the public key> rpm --checksig --verbose <path to the Linux VDA package> <!--NeedCopy-->对于 DEB 软件包,运行以下命令以将公钥导入 DEB 数据库并检查软件包完整性:
sudo apt-get install dpkg-sig gpg --import <path to the public key> dpkg-sig --verify <path to the Linux VDA package> <!--NeedCopy-->
-
步骤 6:安装 Linux VDA 软件包
要设置 Linux VDA 的环境,请运行以下命令。
对于 RHEL 和 Rocky Linux 发行版:
注意:
对于 RHEL 和 CentOS,请先安装 EPEL 存储库,然后才能成功安装 Linux VDA。有关如何安装 EPEL 的信息,请参阅 https://docs.fedoraproject.org/en-US/epel/ 上的说明。
在 RHEL 9.x 和 Rocky Linux 9.x 上安装 Linux VDA 之前,请将 libsepol 软件包更新到 3.4 或更高版本。
sudo yum -y localinstall <PATH>/<Linux VDA RPM>
<!--NeedCopy-->
注意:
在 GCP 上托管的 RHEL 8.x/9.x 和 Rocky Linux 8.x/9.x 上安装 Linux VDA 后,以太网连接可能会丢失,并且在 VM 重新启动后 Linux VDA 可能无法访问。要解决此问题,请在首次登录 VM 时设置 root 密码,并确保您可以以 root 身份登录 VM。然后,在重新启动 VM 后,在控制台中运行以下命令:
```
nmcli dev connect eth0
systemctl restart NetworkManager
```
对于 Ubuntu/Debian 发行版:
sudo dpkg -i <PATH>/<Linux VDA deb>
sudo apt-get install -f
<!--NeedCopy-->
注意:
要安装 Debian 11 发行版所需的依赖项,请将
deb http://deb.debian.org/debian/ bullseye main行添加到 /etc/apt/sources.list 文件中。对于 GCP 上的 Ubuntu 24.04/22.04,请禁用 RDNS。为此,请在 /etc/krb5.conf 中的 [libdefaults] 下添加 rdns = false 行。
-
对于 SUSE 发行版:
-
- 对于 AWS、Azure 和 GCP 上的 SUSE 15.6,请确保:
- 您使用的是 libstdc++6 12 或更高版本。
- /etc/sysconfig/windowmanager 中的 Default_WM 参数设置为 “gnome”。
-
运行以下命令以安装 Linux VDA:
zypper -i install <PATH>/<Linux VDA RPM> <!--NeedCopy-->
步骤 7:安装 NVIDIA GRID 驱动程序
要启用 HDX™ 3D Pro,您需要在管理程序和 VDA 计算机上安装 NVIDIA GRID 驱动程序。
要在特定管理程序上安装和配置 NVIDIA GRID Virtual GPU Manager(主机驱动程序),请参阅以下指南:
要安装和配置 NVIDIA GRID 客户机 VM 驱动程序,请执行以下常规步骤:
- 确保客户机 VM 已关闭。
- 在管理程序控制面板中,为 VM 分配一个 GPU。
- 启动 VM。
- 在 VM 上安装客户机 VM 驱动程序(来自您的云供应商或 NVIDIA)。
步骤 8:指定要使用的数据库
安装 Linux VDA 软件包后,您可以通过编辑 /etc/xdl/db.conf 来指定使用 SQLite 或 PostgreSQL。
为此,请在运行 sudo /opt/Citrix/VDA/sbin/ctxinstall.sh 或 /opt/Citrix/VDA/bin/easyinstall 之前编辑 /etc/xdl/db.conf。
注意:
- 建议仅在 VDI 模式下使用 SQLite。
- 对于简易安装和 MCS,您可以指定使用 SQLite 或 PostgreSQL,而无需手动安装它们。除非通过 /etc/xdl/db.conf 另行指定,否则 Linux VDA 默认使用 PostgreSQL。
- 您还可以使用 /etc/xdl/db.conf 配置 PostgreSQL 的端口号。
步骤 9:运行简易安装脚本以配置环境和 VDA 以完成安装
安装 Linux VDA 软件包后,使用 ctxinstall.sh 脚本配置运行环境。
注意:
在设置运行时环境之前,请确保您的操作系统中已安装 en_US.UTF-8 区域设置。如果您的操作系统中没有该区域设置,请运行 sudo locale-gen en_US.UTF-8 命令。对于 Debian,请编辑 /etc/locale.gen 文件,取消注释 # en_US.UTF-8 UTF-8 行,然后运行 sudo locale-gen 命令。
ctxinstall.sh
ctxinstall.sh 是一个简易安装脚本,用于执行一些预配置并设置 VDA 运行环境变量。
-
只有 root 用户才能运行此脚本。
- 简易安装使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 作为其配置文件,用于设置、保存和同步所有使用的环境变量的值。建议您仔细阅读模板 (ctxinstall.conf.tmpl),然后自定义您自己的 ctxinstall.conf。首次创建配置文件时,请使用以下任一方法:
- 通过复制 /opt/Citrix/VDA/sbin/ctxinstall.conf.tmpl 模板文件并将其另存为 /opt/Citrix/VDA/sbin/ctxinstall.conf。
- 通过运行 ctxinstall.sh。每次运行 ctxinstall.sh 时,您的输入都会保存到 /opt/Citrix/VDA/sbin/ctxinstall.conf 中。
-
简易安装支持模块化运行。模块包括预检查、安装、域配置、设置和验证。
- 此脚本的调试详细信息可在 /var/log/xdl/ctxinstall.log 中找到。
有关详细信息,请使用帮助命令 ctxinstall.sh -h。
注意:
- 遵循最小权限原则,请确保只有 root 用户可以读取 /opt/Citrix/VDA/sbin/ctxinstall.conf,因为域加入密码可能在该文件中设置。
- 卸载 Linux VDA 会删除 /opt/Citrix/VDA 下的文件。建议您在卸载 VDA 之前备份 /opt/Citrix/VDA/sbin/ctxinstall.conf。
您可以在交互模式或静默模式下运行 ctxinstall.sh。在运行脚本之前,请设置以下环境变量:
-
CTX_XDL_NON_DOMAIN_JOINED=’y|n’ – 是否将计算机加入域。默认值为 ‘n’。对于未加入域的场景,请将其设置为 ‘y’。
-
CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE=’<path-to-token-file-on-vda-machine>‘ – 要使用简易安装创建未加入域的 VDA,您需要一个令牌文件才能将 VDA 注册到 Delivery Controller 的计算机目录中。请将令牌以最小权限保存到安全位置。
- CTX_XDL_VDI_MODE=’y|n’ – 是否将计算机配置为专用桌面交付模型 (VDI) 或托管共享桌面交付模型。对于 HDX 3D Pro 环境,请将该值设置为 ‘y’。
-
CTX_XDL_HDX_3D_PRO=’y|n’ – Linux VDA 支持 HDX 3D Pro,这是一组旨在优化富图形应用程序虚拟化的 GPU 加速技术。如果选择 HDX 3D Pro,则 VDA 将配置为 VDI 桌面(单会话)模式(即 CTX_XDL_VDI_MODE=’y’)。
-
CTX_XDL_START_SERVICE=’y|n’ – 确定配置完成后是否启动 Linux VDA 服务。
-
CTX_XDL_REGISTER_SERVICE=’y|n’ – Linux Virtual Desktop 服务在计算机启动后启动。
-
CTX_XDL_ADD_FIREWALL_RULES=’y|n’ – Linux VDA 服务需要允许传入网络连接通过系统防火墙。您可以在系统防火墙中自动打开 Linux Virtual Desktop 所需的端口(默认端口为 80 和 1494)。
-
CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate – 指定在会话中使用的 GNOME、GNOME Classic 或 MATE 桌面环境。如果您未指定该变量,则使用 VDA 上配置的默认桌面。
-
CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/kde/mate/xfce/’<none>‘ – 指定在会话中使用的 GNOME、GNOME Classic、KDE、MATE 或 Xfce 桌面环境。如果将其设置为 ‘<none>‘,则使用 VDA 上配置的默认桌面。您可以使用 CTX_XDL_DESKTOP_ENVIRONMENT 变量指定在会话中使用的桌面环境。您还可以通过运行命令或使用系统托盘在桌面环境之间切换。有关详细信息,请参阅桌面切换命令和系统托盘。
-
CTX_XDL_DOTNET_RUNTIME_PATH=’<path-to-install-dotnet-runtime>‘ – 用于安装 .NET 以支持新的代理代理服务 (ctxvda) 的路径。默认路径为 ‘/usr/bin’。
- CTX_XDL_VDA_PORT=’<port-number>‘ – Linux VDA 通过 TCP/IP 端口与 Delivery Controller 通信。
交互模式
要在交互模式下运行 ctxinstall.sh 脚本,请使用不带 -S 选项的 sudo /opt/Citrix/VDA/sbin/ctxinstall.sh 命令。在命令行界面中的每个提示符处键入相关的变量值。如果已设置某个变量,ctxinstall.sh 会询问您是否要更改它以进行确认。
静默模式
在静默模式下,您必须使用 /opt/Citrix/VDA/sbin/ctxinstall.conf 或 export 命令设置上述变量。之后,运行 ctxinstall.sh -S(请注意,这里的字母 S 为大写)。如果并非所有必需变量都已设置或某些值无效,ctxinstall.sh 将中止执行,除非存在默认值。
如果您设置了它,则每个变量的导出值将覆盖 /Citrix/VDA/sbin/ctxinstall.conf 中的值。所有更新的值都将保存到 /Citrix/VDA/sbin/ctxinstall.conf 中。
export CTX_XDL_NON_DOMAIN_JOINED='y'
export CTX_XDL_NDJ_ENROLLMENT_TOKEN_FILE='<token-file-path>'
export CTX_XDL_VDI_MODE='y|n'
export CTX_XDL_START_SERVICE='y|n'
export CTX_XDL_REGISTER_SERVICE='y|n'
export CTX_XDL_ADD_FIREWALL_RULES='y|n'
export CTX_XDL_HDX_3D_PRO='y|n'
export CTX_XDL_DESKTOP_ENVIRONMENT=gnome|gnome-classic|kde|mate|xfce|'<none>'
export CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>'
export CTX_XDL_VDA_PORT='<port-number>'
sudo -E /opt/Citrix/VDA/sbin/ctxinstall.sh -S
<!--NeedCopy-->
运行 sudo 命令时,键入 -E 选项以将现有环境变量传递到其创建的新 shell。建议您使用 #!/bin/bash 作为第一行,从上述命令创建 shell 脚本文件。
另一种方法是,您可以使用单个命令指定所有变量。
要设置 VDA 运行环境变量(以 CTX_XDL_ 开头的变量),您可以运行 ctxinstall.sh -s(请注意,这里的字母 s 是小写)。
步骤 10:运行 XDPing
运行 sudo /opt/Citrix/VDA/bin/xdping 以检查 Linux VDA 环境中的常见配置问题。有关详细信息,请参阅 XDPing。
步骤 11:运行 Linux VDA
启动 Linux VDA:
要启动 Linux VDA 服务:
sudo systemctl start ctxhdx.service
sudo systemctl start ctxvda.service
<!--NeedCopy-->
停止 Linux VDA:
要停止 Linux VDA 服务:
sudo systemctl stop ctxvda.service
sudo systemctl stop ctxhdx.service
<!--NeedCopy-->
注意:
在停止 ctxvda 和 ctxhdx 服务之前,请运行 systemctl stop ctxmonitord 命令以停止监视器服务守护程序。否则,监视器服务守护程序将重新启动您已停止的服务。
重新启动 Linux VDA:
要重新启动 Linux VDA 服务:
sudo systemctl stop ctxvda.service
sudo systemctl restart ctxhdx.service
sudo systemctl start ctxvda.service
<!--NeedCopy-->
检查 Linux VDA 的状态:
要检查 Linux VDA 服务的运行状态:
sudo systemctl status ctxvda.service
sudo systemctl status ctxhdx.service
<!--NeedCopy-->
步骤 12:创建交付组
创建交付组以及添加包含 Linux VDA 计算机的计算机目录的过程与 Windows VDA 计算机几乎相同。有关如何完成这些任务的更详细说明,请参阅 创建交付组。
对于创建包含 Linux VDA 计算机目录的交付组,适用以下限制:
- 确保您选择的 AD 用户和组已正确配置为登录到 Linux VDA 计算机。
- 不允许未经身份验证(匿名)的用户登录。
- 请勿将交付组与包含 Windows 计算机的计算机目录混合使用。
重要提示:
Linux VDA 1.4 版及更高版本支持发布应用程序。但是,Linux VDA 不支持将桌面和应用程序交付到同一台计算机。
有关如何创建计算机目录和交付组的信息,请参阅 Citrix Virtual Apps and Desktops 7 2503。
步骤 13:启用本地帐户映射
如果未启用本地帐户映射会怎样
在未加入域的 VDA 上托管的会话登录失败,显示密码提示但不接受正确的密码。在 hdx.log 中可以找到与以下内容类似的错误:
2024-09-25 06:40:30.767979 [LOGIN_BOX:ERROR] <P124211:T58675:S4> citrix-ctxlogin: PamAuthenticate: pam authentication: Authentication failure. Can retry for user 'user3'
2024-09-25 06:40:30.768431 [LOGIN:ERROR] <P124211:T58675:S4> citrix-ctxlogin: LoginBoxValidate: Failed to validate user 'user3'. Due to INVALID_PASSWORD
2024-09-25 06:40:30.768947 [LOGIN_AUTH:INFO] <P124218:T58682:S4> citrix-ctxloginui: CalLabelFormat: Update username label on LoginUI from 'user3' to 'user3' (18)
2024-09-25 06:41:18.766196 [GFX_SLIDER:ERROR] <P124161:T58699:S4> citrix-ctxgfx: GfxCreateSliderListener: Failed to get user home dir.
<!--NeedCopy-->
启用本地帐户映射
为确保用户可以登录到未加入域的 Linux VDA,请使用以下命令启用本地帐户映射:
Set-BrokerDesktopGroup -Name "<your delivery group name>" -MachineLogOnType LocalMappedAccount
<!--NeedCopy-->
对于本地部署,请直接在 Delivery Controller 上运行该命令。对于 Citrix DaaS 部署,请通过 Citrix Virtual Apps and Desktops Remote PowerShell SDK 运行该命令。