为 Azure 虚拟桌面配置 RDP 短路径

重要

为 Azure 虚拟桌面中使用了 TURN 的公用网络采用 RDP 短路径的功能目前为预览版。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Azure 预览版的补充使用条款

RDP 短路径是 Azure 虚拟桌面的一项功能,它可在受支持的 Windows 远程桌面客户端与会话主机之间建立基于 UDP 的直接传输。 本文介绍如何为托管网络和公用网络配置 RDP 短路径。 有关详细信息,请参阅 RDP 短路径

先决条件

在启用 RDP 短路径之前,需要满足先决条件。 根据你的方案选择以下选项卡。

  • 运行 Windows 远程桌面客户端版本 1.2.3488 或更高版本的客户端设备。 目前不支持非 Windows 客户端。

  • 已在客户端与会话主机之间建立直接无障碍连接。 直接无障碍连接是指客户端可以使用如下所述的托管网络直接连接到端口 3390(默认)上的会话主机,而不会被防火墙(包括 Windows 防火墙)或网络安全组阻止:

启用 RDP 短路径

为会话主机启用 RDP 短路径的步骤根据你是要为托管网络还是公用网络启用该功能而不同,但对于客户端是相同的。 根据你的方案选择以下选项卡。

会话主机

若要为托管网络启用 RDP 短路径,需要在会话主机上启用 RDP 短路径侦听器。 对于已加入 Active Directory (AD) 域的会话主机,可在域中集中使用组策略执行此操作;对于已加入 Microsoft Entra ID 的会话主机,可在本地使用组策略执行此操作。

  1. 下载 Azure 虚拟桌面管理模板并提取 .cab 文件和 .zip 存档的内容。

  2. 根据你是要为每个会话主机在 AD 域中以集中方式配置组策略还是在本地配置组策略,请执行以下操作:

    1. AD 域:将 terminalserver-avd.admx 文件复制并粘贴到域的中心存储,例如 \\contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions,其中 contoso.com 是你的域名。 然后将 en-us\terminalserver-avd.adml 文件复制到 en-us 子文件夹。

    2. 打开“组策略管理控制台”(GPMC) 并创建或编辑针对会话主机的策略。

    3. 本地:将 terminalserver-avd.admx 文件复制并粘贴到 %windir%\PolicyDefinitions。 然后将 en-us\terminalserver-avd.adml 文件复制到 en-us 子文件夹。

    4. 在会话主机上打开“本地组策略编辑器”。

  3. 浏览到“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“Azure 虚拟桌面”。 应会看到 Azure 虚拟桌面的策略设置,如以下屏幕截图所示:

    Screenshot of the Group Policy Editor showing Azure Virtual Desktop policy settings.

  4. 打开策略设置“为托管网络启用 RDP 短路径”并将其设置为“已启用”。 如果启用此策略设置,还可以配置 Azure 虚拟桌面会话主机将用于侦听传入连接的端口号。 默认端口为 3390。

  5. 如果需要将 Windows 防火墙配置为支持端口 3390,请运行以下命令之一,具体取决于是使用组策略在 AD 域中集中配置 Windows 防火墙,还是在本地为每个会话主机配置 Windows 防火墙:

    1. AD 域:打开提升的 PowerShell 提示并运行以下命令,将 $domainName 的值替换为自己的域名,将 $writableDC 的值替换为可写域控制器的主机名,将 $policyName 的值替换为现有组策略对象的名称:

      $domainName = "contoso.com"
      $writableDC = "dc01"
      $policyName = "RDP Shortpath Policy"
      $gpoSession = Open-NetGPO -PolicyStore "$domainName\$policyName" -DomainController $writableDC
      
      New-NetFirewallRule -DisplayName 'Remote Desktop - RDP Shortpath (UDP-In)' -Action Allow -Description 'Inbound rule for the Remote Desktop service to allow RDP Shortpath traffic. [UDP 3390]' -Group '@FirewallAPI.dll,-28752' -Name 'RemoteDesktop-UserMode-In-RDPShortpath-UDP' -Profile Domain, Private -Service TermService -Protocol UDP -LocalPort 3390 -Program '%SystemRoot%\system32\svchost.exe' -Enabled:True -GPOSession $gpoSession
      
      Save-NetGPO -GPOSession $gpoSession
      
    2. 本地:打开权限提升的 PowerShell 提示符并运行以下命令:

      New-NetFirewallRule -DisplayName 'Remote Desktop - RDP Shortpath (UDP-In)'  -Action Allow -Description 'Inbound rule for the Remote Desktop service to allow RDP Shortpath traffic. [UDP 3390]' -Group '@FirewallAPI.dll,-28752' -Name 'RemoteDesktop-UserMode-In-RDPShortpath-UDP' -PolicyStore PersistentStore -Profile Domain, Private -Service TermService -Protocol UDP -LocalPort 3390 -Program '%SystemRoot%\system32\svchost.exe' -Enabled:True
      
  6. 选择“确定”,并重启会话主机以应用策略设置。

Windows 客户端

无论你是要为托管网络还是公用网络使用 RDP 短路径,用于确保正确配置客户端的步骤都是相同的。 可以使用组策略对已加入 Active Directory 域的托管客户端执行此操作,或使用本地组策略对非托管的客户端执行此操作。

注意

默认情况下,在 Windows 中,RDP 流量会尝试同时使用 TCP 和 UDP 协议。 仅当客户端先前已配置为仅使用 TCP 时,才需要执行这些步骤。

使用组策略在托管和非托管 Windows 客户端上启用 RDP 短路径

若要使用组策略配置托管和非托管 Windows 客户端,请执行以下操作:

  1. 根据是要配置托管客户端还是非托管客户端执行以下操作之一:

    1. 对于托管客户端,请打开“组策略管理控制台”(GPMC) 并创建或编辑针对客户端的策略。

    2. 对于非托管客户端,请在客户端上打开“本地组策略编辑器”。

  2. 浏览到“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面连接客户端”。

  3. 打开策略设置“在客户端上关闭 UDP”并将其设置为“已禁用”。

  4. 选择“确定”,并重启客户端以应用策略设置。

Teredo 支持

Teredo 会添加额外的 NAT 遍历候选项(虽然 RDP 短路径不要求这样做),从而可以提高在仅限 IPv4 的网络中成功建立 RDP 短路径连接的几率。 可以通过在权限提升的 PowerShell 提示符下运行以下命令,在会话主机和客户端上启用 Teredo:

Set-NetTeredoConfiguration -Type Enterpriseclient

验证 RDP 短路径是否正常工作

接下来,需要确保客户端使用 RDP 短路径进行连接。 可以使用远程桌面客户端中的“连接信息”对话框或使用 Log Analytics 来验证传输。

“连接信息”对话框

若要确保连接使用 RDP 短路径,可以检查客户端上的连接信息。 根据你的方案选择以下选项卡。

  1. 连接到 Azure 虚拟桌面。

  2. 转到屏幕顶部的“连接”工具栏并选择信号强度图标,打开“连接信息”对话框,如以下屏幕截图所示:

    Screenshot of Remote Desktop Connection Bar of Remote Desktop client.

  3. 可以在输出中验证传输协议是否为“UDP(专用网络)”,如以下屏幕截图所示:

    Screenshot of Remote Desktop Connection Info dialog.

事件查看器

若要确保连接使用 RDP 短路径,可以检查会话主机上的事件日志:

  1. 连接到 Azure 虚拟桌面。

  2. 在会话主机上,打开“事件查看器”。

  3. 浏览到“应用程序和服务日志”>“Microsoft”>“Windows”>“RemoteDesktopServices-RdpCoreCDV”>“操作”。

  4. 按事件 ID 135 进行筛选。 使用 RDP 短路径的连接将指出传输类型正在使用 UDP,并显示消息“已完成隧道 1 的多传输连接,其传输类型设置为 UDP”。

Log Analytics

如果正在使用 Azure Log Analytics,则可以通过查询 WVDConnections 表来监视连接。 名为 UdpUse 的列指示 Azure 虚拟桌面 RDP 堆栈是否对当前用户连接使用 UDP 协议。 可能的值包括:

  • 1 - 用户连接正在使用托管网络 RDP 短路径。

  • 2 - 用户连接直接通过 STUN 使用公有网络的 RDP 短路径。

  • 4 - 用户连接间接通过 TURN 使用公有网络的 RDP 短路径。

  • 对于任何其他值,用户连接不使用 RDP 短路径,并使用 TCP 进行连接。

可通过以下查询查看连接信息。 可以在 Log Analytics 查询编辑器中运行此查询。 对于每个查询,请将 user@contoso.com 替换为要查找的用户的 UPN。

let Events = WVDConnections | where UserName == "user@contoso.com" ;
Events
| where State == "Connected"
| project CorrelationId, UserName, ResourceAlias, StartTime=TimeGenerated, UdpUse, SessionHostName, SessionHostSxSStackVersion
| join (Events
| where State == "Completed"
| project EndTime=TimeGenerated, CorrelationId, UdpUse)
on CorrelationId
| project StartTime, Duration = EndTime - StartTime, ResourceAlias, UdpUse, SessionHostName, SessionHostSxSStackVersion
| sort by StartTime asc

可通过运行以下 Log Analytics 查询来验证是否为特定用户会话启用了 RDP 短路径:

WVDCheckpoints 
| where Name contains "Shortpath"

若要详细了解你可能会看到在 Log Analytics 中记录的错误信息,

禁用 RDP 短路径

为会话主机禁用 RDP 短路径的步骤根据你是仅为托管网络、仅为公用网络还是为两者禁用该功能而不同。 根据你的方案选择以下选项卡。

会话主机

若要为会话主机上的托管网络禁用 RDP 短路径,需要在会话主机上启用 RDP 短路径侦听器。 对于已加入 AD 域的会话主机,可在域中集使用组策略执行此操作;对于已加入 Microsoft Entra ID 的会话主机,可在本地使用组策略执行此操作。

或者,可以在防火墙或网络安全组中阻止会话主机访问端口 3390(默认)。

  1. 根据你是要为每个会话主机在域中以集中方式配置组策略还是在本地配置组策略,请执行以下操作:

    1. AD 域:打开“组策略管理控制台”(GPMC) 并编辑针对会话主机的策略。

    2. 本地:在会话主机上打开“本地组策略编辑器”。

  2. 浏览到“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“Azure 虚拟桌面”。 如果你使用管理模板为托管网络启用了 RDP 短路径,则应会看到 Azure 虚拟桌面的策略设置。

  3. 打开策略设置“为托管网络启用 RDP 短路径”并将其设置为“未配置”。

  4. 选择“确定”,并重启会话主机以应用策略设置。

Windows 客户端

在客户端设备上,可以通过将 RDP 流量配置为仅使用 TCP 来为托管网络和公用网络禁用 RDP 短路径。 可以使用组策略对已加入 Active Directory 域的托管客户端执行此操作,或使用本地组策略对非托管的客户端执行此操作。

重要

如果先前已通过组策略将 RDP 流量设置为尝试同时使用 TCP 和 UDP 协议,请确保设置不冲突。

使用组策略在托管和非托管 Windows 客户端上禁用 RDP 短路径

若要使用组策略配置托管和非托管 Windows 客户端,请执行以下操作:

  1. 根据是要配置托管客户端还是非托管客户端执行以下操作之一:

    1. 对于托管客户端,请打开“组策略管理控制台”(GPMC) 并创建或编辑针对客户端的策略。

    2. 对于非托管客户端,请在客户端上打开“本地组策略编辑器”。

  2. 浏览到“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面连接客户端”。

  3. 打开策略设置“在客户端上关闭 UDP”并将其设置为“已启用”。

  4. 选择“确定”,并重启客户端以应用策略设置。

后续步骤