Linux 虚拟投递代理 2407

已知问题

  • 此版本中已发现以下问题:

  • 当使用 Machine Creation Services (MCS) 在配置了多个 Delivery Controller 的环境中,在本地管理程序上预配未加入域的 Virtual Delivery Agent (VDA) 时,ctxsetup 进程可能会失败。可以在目标 VDA 上的 /var/log/ad_join.log 文件中观察到此错误。

    要解决此问题,请执行以下步骤:

    1. 在主映像上,找到并编辑 /var/xdl/mcs/mcs_util.sh
      1. 在主映像上打开终端或命令提示符。
      2. 导航到 /var/xdl/mcs/ 目录。
      3. 使用文本编辑器打开 mcs_util.sh 文件。 - 1. 找到 read_websocket_ddc_info() 函数。
        1. 找到 log_debug "Exit read_websocket_ddc_info" 这一行(大约在第 297 行)。在此行之前插入 DDCS=$(echo "${DDCS}" | tr ',' ' ') 这一行。
      1. 创建新快照并使用新快照预配 VDA。

    [LNXVDA-19141]

    • 智能卡服务在智能卡身份验证期间泄漏文件描述符,导致新的智能卡访问被阻止。出现此问题的原因是,默认情况下,大多数 Linux 发行版将每个进程的最大打开文件数限制为 1,024。当智能卡服务耗尽此限制时,它将无法再建立新连接,从而有效地阻止后续的智能卡访问。

    此问题会影响启用了智能卡登录的 VDA。症状包括 /var/log/xdl/hdx.log 中出现大量 Failed to accept new connection: Too many open files 错误以及 /proc/${pid}/fd/ 中文件描述符的累积,其中 ${pid} 表示 ctxscardsd 的进程 ID。要确定 PID,请使用命令 systemctl status ctxscardsd|grep PID

    • 要缓解此问题,您可以增加智能卡服务的最大打开文件数限制或重新启动智能卡服务。在尝试重新启动服务之前,请确保没有活动会话。使用以下命令增加限制或重新启动服务:

    • 要重新启动智能卡服务:

       systemctl restart ctxscardsd
       <!--NeedCopy-->
      
    • 要查询当前服务的最大打开文件数:

       cat /proc/${PID}/limits
       <!--NeedCopy-->
      
    • 要设置智能卡服务的最大打开文件数:

      1. 以只读模式打开 ctxscardsd.service 文件以检查当前设置:

        vim -R /lib/systemd/system/ctxscardsd.service
        <!--NeedCopy-->
        
      1. 将以下行添加到 ctxscardsd.service 中的 Service 部分以增加限制:

         LimitNOFILE=65536
         <!--NeedCopy-->
        
      2. 重新加载 systemd 守护程序并重新启动 ctxscardsd 服务:

         systemctl daemon-reload
         systemctl restart ctxscardsd
         <!--NeedCopy-->
        
      3. 验证新限制:

         `cat /proc/${PID}/limits`
         <!--NeedCopy-->
        

    注意:

    增加最大打开文件数可以延长文件描述符耗尽之前的时间,但最终可能仍需要重新启动 ctxscardsd

    [LNXVDA-17768]

         由于 GNOME 的问题,在 RHEL 8.X、Rocky Linux 8.x、RHEL 9.x 和 Rocky Linux 9.x 上将 **samba-winbind** 升级到版本 4.18.6 后,Linux VDA 无法按预期工作。有关详细信息,请参阅 <https://issues.redhat.com/browse/RHEL-17122>。
    
         当 PostgreSQL 中设置的最大连接数不足以处理并发会话时,会话启动会失败。要解决此问题,请通过修改 **postgresql.conf** 文件中的 **max_connections** 设置来增加最大连接数。
    
         VDA 注册可能会失败,因为 **/var/log/xdl/jproxy.log** 中抛出了以下 LDAP 异常:
    
     javax.naming.NamingException: LDAP response read timed out, timeout used: 10000 ms.
     <!--NeedCopy-->
    

    要解决此问题,请执行以下操作:

    • 更改 LDAP 超时值。例如,使用以下命令将 LDAP 超时值更改为 60 秒:

       ctxreg create -k "HKLM\Software\Citrix\GroupPolicy\Defaults" -t "REG_DWORD" -v "LDAPTimeout" -d "0x000EA60" --force
       <!--NeedCopy-->
      
    • 通过设置搜索基来加快 LDAP 查询。您可以使用 ctxsetup.sh 中的 CTX_XDL_SEARCH_BASE 变量或使用以下命令设置搜索基:

       ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent" -t "REG_SZ" -v "LDAPComputerSearchBase" -d "<specify a search base instead of the root of the domain to improve search performance>" --force
       <!--NeedCopy-->
      
  • [CVADHELP-20895]

  • Microsoft 于 2022 年 11 月发布了适用于 Windows 10 的累积更新 KB5019966 和 KB5019964。这些更新导致域加入和注册失败。要解决此问题,请参阅知识中心文章 CTX474888

  • 如果 Kerberos 允许 RC4_HMAC_MD5 加密类型,Linux VDA 可能无法向 Controller 注册,并出现以下错误消息:

    错误:GSS-API 级别未指定失败(机制级别:不支持/未启用带 HMAC 的 RC4 加密类型)

    要解决此问题,请在您的 Active Directory 域中全局禁用 RC4_HMAC_MD5或在特定 OU 上禁用)或在 Linux VDA 上允许弱加密类型。之后,使用 klist -li 0x3e4 purge 命令清除 Controller 和 Citrix Cloud Connector™ 上的缓存 Kerberos 票证,然后重新启动 Linux VDA。

    要在 Active Directory 域中全局禁用 RC4_HMAC_MD5,请完成以下步骤:

    1. 打开组策略管理控制台。
    2. 找到目标域,然后选择 Default Domain Policy
    3. 右键单击 Default Domain Policy 并选择 Edit。组策略管理编辑器随即打开。
    4. 选择 Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
    5. 双击 Network security: Configure encryption types allowed for Kerberos
    6. 清除 DES_CBC_CRCDES_CBC_MD5RC4_HMAC_MD5 复选框,并选择 AES128_HMAC_SHA1AES256_HMAC_SHA1Future encryption types

    要在 Linux VDA 上允许弱加密类型,请完成以下步骤:

    注意:

    弱加密类型会使您的部署容易受到攻击。

    1. 在 Linux VDA 上打开 /etc/krb5.conf 文件。
    2. [libdefaults] 部分下添加以下条目:

      allow_weak_crypto= TRUE

  • Linux VDA 不支持 SecureICA 1.0 进行加密。在 Linux VDA 上启用 SecureICA 1.0 会导致会话启动失败。

  • Ubuntu 图形:在 HDX™ 3D Pro 中,调整 Desktop Viewer 大小后,应用程序周围可能会出现黑框,有时背景也可能显示为黑色。

  • Linux VDA 打印重定向创建的打印机在注销会话后可能不会被删除。

  • 当目录包含大量文件和子目录时,CDM 文件会丢失。如果客户端有太多文件或目录,则可能会出现此问题。

  • 非英语语言仅支持 UTF-8 编码。

  • 在会话漫游期间,适用于 Android 的 Citrix Workspace™ 应用程序的 CAPS LOCK 状态可能会反转。将现有连接漫游到适用于 Android 的 Citrix Workspace 应用程序时,CAPS LOCK 状态可能会丢失。作为一种解决方法,请使用扩展键盘上的 Shift 键在大小写之间切换。

  • 使用适用于 Mac 的 Citrix Workspace 应用程序连接到 Linux VDA 时,带有 ALT 的快捷键并非总是有效。适用于 Mac 的 Citrix Workspace 应用程序默认情况下为左右 Options/Alt 键发送 AltGr。您可以在 Citrix Workspace 应用程序设置中修改此行为,但结果因应用程序而异。

  • 当 Linux VDA 重新加入域时,注册会失败。重新加入会生成一组新的 Kerberos 密钥。但是,Broker 可能会使用基于先前 Kerberos 密钥集的缓存的过期 VDA 服务票证。当 VDA 尝试连接到 Broker 时,Broker 可能无法与 VDA 建立返回安全上下文。常见的症状是 VDA 注册失败。

    当 VDA 服务票证过期并续订时,此问题最终可以自行解决。但由于服务票证的生命周期较长,因此可能需要很长时间。

作为一种变通方法,请清除 Broker 的票证缓存。重新启动 Broker,或者以管理员身份从命令提示符在 Broker 上运行以下命令:

```
klist -li 0x3e4 purge
<!--NeedCopy--> ```

此命令会清除 Citrix Broker Service 运行所用的 Network Service 主体在 LSA 缓存中持有的所有服务票证。它会删除其他 VDA 以及可能其他服务的服务票证。但是,此操作无害,因为这些服务票证可以在需要时从 KDC 重新获取。

  • 不支持音频即插即用。您可以在 ICA® 会话中开始录制音频之前,将音频捕获设备连接到客户端计算机。如果在音频录制应用程序启动后连接捕获设备,该应用程序可能会变得无响应,您必须重新启动它。如果在录制过程中拔下捕获设备,可能会出现类似问题。

  • Citrix Workspace 应用程序 for Windows 在录制音频时可能会出现音频失真。

已知问题

在本文中