你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

重要

通过 TURN 为 Azure 虚拟桌面提供的公共网络 RDP 短路径仅在 Azure 公有云中可用。

用户可以使用远程桌面协议 (RDP) 和基于 UDP 或 TCP 的传输从 Azure 虚拟桌面连接到远程会话。 RDP 短路径可在本地设备 Windows 应用或受支持的平台上的远程桌面应用和会话主机之间建立基于 UDP 的传输。

基于 UDP 的传输提供更高的连接可靠性和更稳定的延迟。 基于 TCP 的反向连接传输提供与各种网络配置的最佳兼容性,以及很高的 RDP 连接成功率。 如果无法建立 UDP 连接,则基于 TCP 的反向连接传输将用作回退连接方法。

RDP 短路径有四个选项,让你可以灵活地选择用 UDP 将客户端设备连接到远程会话的方式:

  • 托管网络的 RDP 短路径:使用专用连接(例如 ExpressRoute 专用对等互连或虚拟专用网络 (VPN))在客户端设备和会话主机之间建立直接 UDP 连接。 在会话主机上启用 RDP 短路径侦听器,并允许入站端口接受连接。

  • 使用 ICE/STUN 的托管网络的 RDP 短路径:使用专用连接(例如 ExpressRoute 专用对等互连或虚拟专用网络 (VPN))在客户端设备和会话主机之间建立直接 UDP 连接。 当会话主机上未启用 RDP 短路径侦听器且不允许入站端口时,ICE/STUN 用于发现可用于连接的可用 IP 地址和动态端口。 端口范围可配置。

  • 使用 ICE/STUN 的公共网络的 RDP 短路径:使用公共连接在客户端设备和会话主机之间建立的直接 UDP 连接。 ICE/STUN 用于发现可用于连接的可用 IP 地址和动态端口。 不需要 RDP 短路径侦听器和入站端口。 端口范围可配置。

  • 通过 TURN 的公共网络的 RDP 短路径:使用公共连接在客户端设备和会话主机之间建立的间接 UDP 连接,TURN 通过中间服务器中继客户端和会话主机之间的流量。 使用此选项的一个例子是当连接使用对称 NAT 时。 动态端口用于连接,端口范围可配置。 有关 TURN 可用的 Azure 区域的列表,请参阅受支持的 TURN 可用的 Azure 区域。 来自客户端设备的连接还必须位于受支持的位置内。 不需要 RDP 短路径侦听器和入站端口。

客户端设备可以使用四个选项中的哪一个也取决于其网络配置。 若要详细了解 RDP 短路径的工作原理以及一些示例方案,请参阅 RDP 短路径

本文列出了四个选项中每个选项的默认配置,以及如何对它们进行配置。 它还提供了验证 RDP 短路径是否正常工作以及如何根据需要禁用它的步骤。

提示

使用 STUN 或 TURN 的公用网络的 RDP 短路径将自动工作,无需任何额外配置,前提是网络和防火墙允许流量通过,并且会话主机和客户端的 Windows 操作系统中的 RDP 传输设置使用其默认值。

默认配置

你的会话主机、相关主机池的网络设置和客户端设备需要为 RDP 短路径进行配置。 需要配置的内容取决于你要使用四个 RDP 短路径选项中的哪一个,以及客户端设备的网络拓扑和配置。

下面是每个选项的默认行为以及需要配置的内容:

RDP 短路径选项 会话主机设置 主机池网络设置 客户端设备设置
适合托管网络的 RDP 短路径 UDP 和 TCP 在 Windows 中默认启用。

需要使用 Microsoft Intune 或组策略在会话主机上启用 RDP 短路径侦听器,并允许入站端口接受连接。
默认(启用) UDP 和 TCP 在 Windows 中默认启用。
使用 ICE/STUN 的托管网络的 RDP 短路径 UDP 和 TCP 在 Windows 中默认启用。

不需要任何额外的配置,但可以限制使用的端口范围。
默认(启用) UDP 和 TCP 在 Windows 中默认启用。
使用 ICE/STUN 的公共网络的 RDP 短路径 UDP 和 TCP 在 Windows 中默认启用。

不需要任何额外的配置,但可以限制使用的端口范围。
默认(启用) UDP 和 TCP 在 Windows 中默认启用。
通过 TURN 的公共网络的 RDP 短路径 UDP 和 TCP 在 Windows 中默认启用。

不需要任何额外的配置,但可以限制使用的端口范围。
默认(启用) UDP 和 TCP 在 Windows 中默认启用。

先决条件

在启用 RDP 短路径之前,你需要:

  • 运行以下应用之一的客户端设备:

    • 以下平台上的 Windows 应用

      • Windows
      • macOS
      • iOS 和 iPadOS
    • 以下平台上的远程桌面应用

      • Windows 版本 1.2.3488 或更高版本
      • macOS
      • iOS 和 iPadOS
      • Android(仅预览版)
  • 对于托管网络的 RDP 短路径,你需要在客户端与会话主机之间建立直接连接。 这意味着客户端可以直接连接到端口 3390(默认)上的会话主机,且不会被防火墙(包括 Windows 防火墙)或网络安全组阻止。 托管网络的示例包括 ExpressRoute 专用对等互连、站点到站点或点到站点 VPN (IPsec),例如 Azure VPN 网关

  • 客户端和会话主机都可访问 Internet。 会话主机需要从会话主机到 Internet 的出站 UDP 连接,或与 STUN 和 TURN 服务器的连接。 若要减少所需的端口数,可以限制与 STUN 和 TURN 一起使用的端口范围

  • 如果要在本地使用 Azure PowerShell,请参阅将 Azure CLI 和 Azure PowerShell 与 Azure 虚拟桌面配合使用,确保已安装 Az.DesktopVirtualization PowerShell 模块扩展。 或者,也可以使用 Azure Cloud Shell

  • 使用 Azure PowerShell 配置 RDP 短路径的参数在 Az.DesktopVirtualization 模块的版本 5.2.1 预览中添加。 可以从 PowerShell 库下载并安装它。

为托管网络的 RDP 短路径启用 RDP 短路径侦听器

对于“托管网络的 RDP 短路径”选项,你需要在会话主机上启用 RDP 短路径侦听器,并打开入站端口以接受连接。 可以使用 Active Directory 域中的 Microsoft Intune 或组策略执行此操作。

重要

无需为其他三个 RDP 短路径选项启用 RDP 短路径侦听器,因为它们使用 ICE/STUN 或 TURN 来发现可用的 IP 地址和用于连接的动态端口。

选择方案的相关选项卡。

若要使用 Microsoft Intune 在会话主机上启用 RDP 短路径侦听器:

  1. 登录 Microsoft Intune 管理中心

  2. 使用“设置目录”配置文件类型为 Windows 10 及更高版本的设备创建或编辑配置文件

  3. 在设置选取器中,浏览到“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“Azure 虚拟桌面”。

    显示 Microsoft Intune 门户中的 Azure 虚拟桌面管理模板选项的屏幕截图。

  4. 选中“为托管网络启用 RDP 短路径”框,然后关闭设置选取器。

  5. 展开“管理模板”类别,然后将“为托管网络启用 RDP 短路径”开关切换为“启用”。

  6. 选择下一步

  7. 可选:在“范围标记”选项卡上,选择用于筛选配置文件的范围标记。 若要详细了解范围标记,请参阅将基于角色的访问控制 (RBAC) 和范围标记用于分布式 IT

  8. 在“分配”选项卡上选择一个组(其中包含提供你要配置的远程会话的计算机),然后选择“下一步”。

  9. 在“查看 + 创建”选项卡上查看设置,然后选择“创建”。

  10. 确保 Windows 防火墙和你拥有的任何其他防火墙允许你配置的端口入站到你的会话主机。 按照 Intune 中终结点安全性的防火墙策略中的步骤操作。

  11. 策略应用于提供远程会话的计算机后,请重启它们,使设置生效。

检查是否在会话主机上启用了 UDP

对于会话主机,UDP 默认在 Windows 中启用。 若要检查 Windows 注册表中的 RDP 传输协议设置,以验证 UDP 是否已启用:

  1. 在会话主机上打开 PowerShell 提示符。

  2. 运行以下命令,它会检查注册表并输出当前的 RDP 传输协议设置:

    $regKey = Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"
    
    If ($regKey.PSObject.Properties.name -contains "SelectTransport" -eq "True") {
        If (($regkey | Select-Object -ExpandProperty "SelectTransport") -eq 1) {
            Write-Output "The RDP transport protocols setting has changed. Its value is: Use only TCP."
        } elseif (($regkey | Select-Object -ExpandProperty "SelectTransport") -eq 2) {
            Write-Output "The default RDP transport protocols setting has changed. Its value is: Use either UDP or TCP."
        }
    } else {
        Write-Output "The RDP transport protocols setting hasn't been changed from its default value. UDP is enabled."
    }
    

    输出应如以下示例所示:

    The RDP transport protocols setting hasn't been changed from its default value.
    

    如果输出指出该值为“仅使用 TCP”,则可能该值已由 Active Directory 域中的 Microsoft Intune 或组策略更改。 需要通过以下方式之一启用 UDP:

    1. 编辑面向你的会话主机的现有 Microsoft Intune 策略或 Active Directory 组策略。 策略设置位于以下位置之一:

      • 对于 Intune 策略:“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“连接”>“选择 RDP 传输协议”。

      • 对于组策略:“计算机配置”>“策略”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“连接”>“选择 RDP 传输协议”。

    2. 将该设置设为“未配置”,或设为“启用”,然后在“选择传输类型”处,选择“使用 UDP 和 TCP”。

    3. 更新会话主机上的策略,然后重启它们,使设置生效。

配置主机池网络设置

可以通过使用 Azure 门户或 Azure PowerShell 配置主机池的网络设置来精细控制 RDP 短路径的使用方式。 在主机池上配置 RDP 短路径时,可以选择设置要使用四个 RDP 短路径选项中的哪一个,并将其与会话主机配置一起使用。

如果主机池和会话主机配置之间存在冲突,则使用限制性最大的设置。 例如,如果配置了用于托管网络的 RDP 短路径,在会话主机上启用了侦听器,并且主机池设置为禁用,则托管网络的 RDP 短路径将不起作用。

选择方案的相关选项卡。

下面介绍如何使用 Azure 门户在主机池网络设置中配置 RDP 短路径:

  1. 登录到 Azure 门户

  2. 在搜索栏中,键入“Azure 虚拟桌面”,然后选择匹配的服务条目。

  3. 选择“主机池”,然后选择要配置的主机池

  4. 选择“网络”,然后选择“RDP 短路径”。

    显示主机池网络属性的 RDP 短路径选项卡的屏幕截图。

  5. 对于每个选项,请根据你的要求从下拉列表中选择一个值。 对于每个选项,“默认值”对应于“启用”

  6. 选择“保存”。

检查是否已在 Windows 客户端设备上启用 UDP

对于 Windows 客户端设备,默认启用 UDP。 若要签入 Windows 注册表以验证 UDP 是否已启用:

  1. 在 Windows 客户端设备上打开 PowerShell 提示符。

  2. 运行以下命令,它会检查注册表并输出当前设置:

    $regKey = Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client"
    
    If ($regKey.PSObject.Properties.name -contains "fClientDisableUDP" -eq "True") {
        If (($regkey | Select-Object -ExpandProperty "fClientDisableUDP") -eq 1) {
            Write-Output "The default setting has changed. UDP is disabled."
        } elseif (($regkey | Select-Object -ExpandProperty "fClientDisableUDP") -eq 0) {
            Write-Output "The default setting has changed, but UDP is enabled."
        }
    } else {
        Write-Output "The default setting hasn't been changed from its default value. UDP is enabled."
    }
    

    输出应如以下示例所示:

    The default setting hasn't been changed from its default value. UDP is enabled.
    

    如果输出指出 UDP 已禁用,则可能该值已由 Active Directory 域中的 Microsoft Intune 或组策略更改。 需要通过以下方式之一启用 UDP:

    1. 编辑面向你的会话主机的现有 Microsoft Intune 策略或 Active Directory 组策略。 策略设置位于以下位置之一:

      • 对于 Intune 策略:“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面连接客户端”>“在客户端上关闭 UDP”。

      • 对于组策略:“计算机配置”>“策略”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面连接客户端”>“在客户端上关闭 UDP”。

    2. 将该设置设为“未配置”,或设为“禁用”。

    3. 更新客户端设备上的策略,然后重启它们,使设置生效。

检查客户端设备 STUN/TURN 服务器连接和 NAT 类型

可以验证客户端设备是否可以连接到 STUN/TURN 终结点、NAT 是否正在使用及其类型,并通过运行可执行文件 avdnettest.exe 来验证基本 UDP 功能是否正常工作。 下面是 指向 avdnettest.exe 最新版本的下载链接

可以双击文件或从命令行运行以运行 avdnettest.exe。 如果连接成功,输出将类似于:

Checking DNS service ... OK
Checking TURN support ... OK
Checking ACS server 20.202.68.109:3478 ... OK
Checking ACS server 20.202.21.66:3478 ... OK

You have access to TURN servers and your NAT type appears to be 'cone shaped'.
Shortpath for public networks is very likely to work on this host.

如果你的环境使用对称 NAT,则可以使用与 TURN 的间接连接。 有关可用于配置防火墙和网络安全组的详细信息,请参阅 RDP 短路径的网络配置

可选:启用 Teredo 支持

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

  1. 以管理员身份打开 PowerShell 命令提示符。

  2. 运行以下命令:

    Set-NetTeredoConfiguration -Type Enterpriseclient
    
  3. 重启会话主机和客户端设备,使设置生效。

限制用于 STUN 和 TURN 的端口范围

默认情况下,使用 STUN 或 TURN 的 RDP 短路径选项使用 49152 到 65535 的临时端口范围在服务器和客户端之间建立直接路径。 但是,你可能想要将会话主机配置为使用较小、可预测的端口范围。

可以设置端口 38300 到 39299 的较小默认范围,也可以指定要使用的自己的端口范围。 在会话主机上启用后,Windows 应用或远程桌面应用会从你为每个连接指定的范围中随机选择端口。 如果此范围耗尽,连接将回退使用默认端口范围 (49152-65535)。

选择基础和池大小时,请考虑所需的端口数。 该范围必须在 1024 到 49151 之间,其后是临时端口范围。

可以使用 Active Directory 域中的 Microsoft Intune 或组策略来限制此端口范围。 选择方案的相关选项卡。

若要使用 Microsoft Intune 限制用于 STUN 和 TURN 的端口范围:

  1. 登录 Microsoft Intune 管理中心

  2. 使用“设置目录”配置文件类型为 Windows 10 及更高版本的设备创建或编辑配置文件

  3. 在设置选取器中,浏览到“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“Azure 虚拟桌面”。

    显示 Microsoft Intune 门户中的 Azure 虚拟桌面管理模板选项的屏幕截图。

  4. 选中“为非托管网络的 RDP 短路径使用端口范围”的框,然后关闭设置选取器。

  5. 展开“管理模板”类别,然后将“为非托管网络的 RDP 短路径使用端口范围”的开关切换为“启用”。

  6. 输入“端口池大小(设备)”和“UDP 基础端口(设备)”的值。 默认值分别为 1000 和 38300。

  7. 选择下一步

  8. 可选:在“范围标记”选项卡上,选择用于筛选配置文件的范围标记。 若要详细了解范围标记,请参阅将基于角色的访问控制 (RBAC) 和范围标记用于分布式 IT

  9. 在“分配”选项卡上选择一个组(其中包含提供你要配置的远程会话的计算机),然后选择“下一步”。

  10. 在“查看 + 创建”选项卡上查看设置,然后选择“创建”。

  11. 策略应用于提供远程会话的计算机后,请重启它们,使设置生效。

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

配置了 RDP 短路径后,从客户端设备连接到远程会话,并检查连接是否在使用 UDP。 可以通过 Windows 应用或远程桌面应用中的“连接信息”对话框、客户端设备上的事件查看器日志或使用 Azure 门户中的 Log Analytics 来验证在使用的传输。

选择方案的相关选项卡。

若要确保连接使用 RDP 短路径,可以检查客户端上的连接信息:

  1. 连接到远程会话。

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

    远程桌面客户端的远程桌面连接栏的屏幕截图。

  3. 可以在输出中验证是否启用了 UDP,如以下屏幕截图所示:

    • 如果使用了与托管网络的 RDP 短路径的直接连接,则传输协议具有“UDP (专用网络)”值:

      使用托管网络的 RDP 短路径时远程桌面连接信息对话框的屏幕截图。

    • 如果使用 STUN,则传输协议具有“UDP”值:

      使用 STUN 时“远程桌面连接信息”对话框的屏幕截图。

    • 如果使用 TURN,则传输协议具有“UDP (中继)”值:

      使用 TURN 时“远程桌面连接信息”对话框的屏幕截图。

如果你在使用公用网络的 RDP 短路径传输建立连接时遇到问题,请参阅排查 RDP 短路径问题