你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
Azure 虚拟桌面的 RDP 短路径
本文内容
RDP 短路径可在本地设备 Windows 应用或受支持的平台上的远程桌面应用和 Azure 虚拟桌面中的会话主机之间建立基于 UDP 的传输。 默认情况下,远程桌面协议 (RDP) 会开始基于 TCP 的反向连接传输,然后尝试使用 UDP 建立远程会话。 如果 UDP 连接成功,则 TCP 连接会断开,否则 TCP 连接将用作回退连接机制。
基于 UDP 的传输提供更高的连接可靠性和更稳定的延迟。 基于 TCP 的反向连接传输提供与各种网络配置的最佳兼容性,以及很高的 RDP 连接成功率。
可通过两种方式使用 RDP 短路径:
托管网络,使用 Azure ExpressRoute 或站点到站点虚拟专用网络 (VPN) 等专用连接时,在客户端与会话主机之间建立直接连接 。 通过以下方式之一建立了使用托管网络的连接:
客户端设备和会话主机之间的直接 UDP 连接,你需要启用 RDP 短路径侦听器并允许每个会话主机上的入站端口接受连接。
客户端设备和会话主机之间的直接 UDP 连接,使用客户端和会话主机之间的简单穿越 NAT (STUN) 协议。 不允许会话主机上的入站端口。
公用网络:使用公共连接时,在客户端与会话主机之间建立直接连接。 使用公共连接时有两种连接类型,下面按优先顺序列出了这些类型:
在客户端与会话主机之间使用“NAT 下的简单遍历”(STUN) 协议建立的直接 UDP 连接。
在客户端与会话主机之间通过“使用中继 NAT 的遍历”(TURN) 协议建立的中继 UDP 连接 。
用于 RDP 短路径的传输基于通用速率控制协议 (URCP) 。 URCP 通过主动监视网络状况来增强 UDP,并提供合理且完整的链接利用率。 URCP 以低延迟和低损耗级别运行。
重要
通过 STUN 为 Azure 虚拟桌面提供的公共网络 RDP 短路径在 Azure 公有云和 Azure 政府云中可用。
通过 TURN 为 Azure 虚拟桌面提供的公共网络 RDP 短路径仅在 Azure 公有云中可用。
关键优势
使用 RDP 短路径可获得以下重要优势:
RDP 短路径的工作原理
若要了解 RDP 短路径如何用于托管网络和公用网络,请选择以下每个选项卡。
可使用以下方法实现所需的直接无障碍连接,以将 RDP 短路径用于托管网络。
直接无障碍连接是指客户端可以直接连接到会话主机,而不会被防火墙阻止。
注意
如果你使用其他 VPN 类型连接到 Azure,我们建议使用基于 UDP 的 VPN。 虽然大多数基于 TCP 的 VPN 解决方案支持嵌套 UDP,但它们增加了 TCP 拥塞控制的继承开销,这会降低 RDP 性能。
若要将 RDP 短路径用于托管网络,必须在会话主机上启用 UDP 侦听器。 默认会使用端口 3390,不过你也可以使用其他端口。
下图大致概述了在将 RDP 短路径用于已加入 Active Directory 域的托管网络和会话主机时的网络连接。
连接顺序
所有连接首先是通过 Azure 虚拟桌面网关建立基于 TCP 的反向连接传输 。 然后,客户端和会话主机建立初始 RDP 传输,并开始交换其功能。 使用以下过程协商这些功能:
会话主机将其 IPv4 和 IPv6 地址的列表发送到客户端。
客户端启动后台线程,以便与会话主机的某个 IP 地址直接建立基于 UDP 的并行传输。
当客户端探测提供的 IP 地址时,它继续通过反向连接传输建立初始连接,以确保用户连接没有延迟。
如果客户端直接连接到会话主机,则客户端使用基于可靠 UDP 的 TLS 建立安全连接。
建立 RDP 短路径传输后,包括远程图形、输入和设备重定向在内的所有动态虚拟通道 (DVC) 将移到新传输。 但是,如果防火墙或网络拓扑阻止客户端建立直接 UDP 连接,RDP 通过反向连接传输继续。
如果用户可同时为托管网络和公用网络使用 RDP 短路径,则会使用最先找到的算法。 用户将为该会话使用首先建立的连接。
为了在使用公共连接时提供最佳的 UDP 连接成功机会,提供了直接和中继连接类型 :
直接连接:STUN 用于在客户端与会话主机之间建立直接 UDP 连接。 若要建立此连接,客户端和会话主机必须能够通过公共 IP 地址和协商端口相互连接。 但是,大多数客户端不知道自己的公共 IP 地址,因为它们位于网络地址转换 (NAT) 网关设备后面。 STUN 协议可用于从 NAT 网关设备和客户端后面自行发现公共 IP 地址,以确定其自己的面向公众的 IP 地址。
要使客户端能够使用 STUN,其网络必须允许 UDP 流量。 假设客户端和会话主机都可以直接路由到对方的已发现 IP 地址和端口,则可以通过 WebSocket 协议来与直接 UDP 建立通信。 如果防火墙或其他网络设备阻止直接连接,则尝试建立中继 UDP 连接。
中继连接:当无法建立直接连接时,将使用 TURN 建立连接,通过中间服务器在客户端与会话主机之间中继流量 。 TURN 是 STUN 的扩展。 使用 TURN 意味着公共 IP 地址和端口事先已知,可以允许流量通过防火墙和其他网络设备。
如果防火墙或其他网络设备阻止 UDP 流量,则连接将回退到基于 TCP 的反向连接传输。
建立连接时,交互式连接建立 (ICE) 将协调 STUN 和 TURN 的管理,以优化连接成功的可能性,并确保优先使用首选的网络通信协议。
每个 RDP 会话都使用来自临时端口范围(默认为 49152 到 65535)的动态分配的 UDP 端口,该端口接受 RDP 短路径流量。 将会在此范围内忽略端口 65330,因为它保留供 Azure 内部使用。 你也可以使用更小的可预测端口范围。 有关详细信息,请参阅限制客户端为公用网络使用的端口范围 。
提示
公用网络的 RDP 短路径无需经过任何额外配置即会自动运行,前提是网络和防火墙允许流量通过,并且会话主机和客户端的 Windows 操作系统中的 RDP 传输设置使用默认值。
下图大致概述了在将 RDP 短路径用于会话主机已加入 Microsoft Entra ID 的公用网络时的网络连接。
TURN 中继可用性
TURN 中继已在以下 Azure 区域推出:
Australia Southeast
印度中部
美国东部
美国东部 2
法国中部
日本西部
北欧
美国中南部
东南亚
英国南部
英国西部
西欧
美国西部
美国西部 2
根据客户端设备的物理位置选择 TURN 中继。 例如,如果客户端设备位于英国,则会选择英国南部或英国西部区域的 TURN 中继。 如果客户端设备远离 TURN 中继,UDP 连接可能会回退到 TCP。
网络地址转换和防火墙
大多数 Azure 虚拟桌面客户端在专用网络中的计算机上运行。 Internet 访问是通过网络地址转换 (NAT) 网关设备提供的。 因此,NAT 网关将修改来自专用网络的、发往 Internet 的所有网络请求。 这种修改的目的是在专用网络中的所有计算机之间共享单个公共 IP 地址。
由于 IP 数据包的修改,流量接收方将看到 NAT 网关而不是实际发送方的公共 IP 地址。 当流量返回到 NAT 网关时,该网关将在发送方不知情的情况下将流量转发到预期的接收方。 在大多数情况下,隐藏在此类 NAT 后面的设备并不知道正在发生转换,也不知道 NAT 网关的网络地址。
NAT 适用于所有会话主机所在的 Azure 虚拟网络。 当会话主机尝试访问 Internet 上的网络地址时,NAT 网关(你自己的网关或 Azure 提供的默认网关)或 Azure 负载均衡器将执行地址转换。 有关各种类型的源网络地址转换的详细信息,请参阅将源网络地址转换 (SNAT) 用于出站连接 。
大多数网络通常包含可以基于规则检查和阻止流量的防火墙。 大部分客户会将其防火墙配置为阻止传入连接(即,未经请求从 Internet 发送的数据包)。 防火墙采用不同的技术来跟踪数据流,以区分经过请求的流量和非经请求的流量。 在 TCP 的上下文中,防火墙跟踪 SYN 和 ACK 数据包,该过程简单直接。 UDP 防火墙通常使用基于数据包地址的启发式方法将流量与 UDP 流相关联,然后允许或阻止流量。 有许多不同的 NAT 实现可供使用。
连接顺序
所有连接首先是通过 Azure 虚拟桌面网关建立基于 TCP 的反向连接传输 。 然后,客户端和会话主机建立初始 RDP 传输,并开始交换其功能。 如果在会话主机上启用了公用网络 RDP 短路径,则会话主机将启动一个称为“候选项收集”的过程:
会话主机枚举分配给会话主机的所有网络接口,包括 VPN 和 Teredo 等虚拟接口。
Windows 服务远程桌面服务 (TermService) 在每个接口上分配 UDP 套接字,并将“IP:端口”对作为本地候选项存储在候选项表中。
远程桌面服务使用在上一步骤中分配的每个 UDP 套接字尝试访问公共 Internet 上的 Azure 虚拟桌面 STUN 服务器。 通信是通过向端口 3478 发送一个较小的 UDP 数据包来实现的。
如果数据包到达 STUN 服务器,STUN 服务器将使用公共 IP 和端口做出响应。 此信息作为自反候选项存储在候选项表中。
会话主机在收集所有候选项后,将使用建立的反向连接传输将候选项列表传递给客户端。
客户端在从会话主机接收候选项列表时,还会在自身一端执行候选项收集。 然后客户端将其候选项列表发送给会话主机。
在会话主机与客户端彼此交换候选项列表后,双方将尝试使用所有收集到的候选项相互连接。 这种连接尝试在双方自身一端同时进行。 许多 NAT 网关配置为允许在出站数据传输初始化传入流量后立即将此流量发送到套接字。 NAT 网关的这种行为是必须同时进行连接的原因。 如果 STUN 因受阻止而失败,则使用 TURN 尝试建立中继连接。
完成初始数据包交换之后,客户端和会话主机可以建立一个或多个数据流。 RDP 从这些数据流中选择最快的网络路径。 然后,客户端使用基于可靠 UDP 的 TLS 与会话主机建立安全的连接,并启动 RDP 短路径传输。
在 RDP 建立 RDP 短路径传输后,所有动态虚拟通道 (DVC)(包括远程图形、输入和设备重定向)将转移到新的传输。
如果用户可同时为托管网络和公用网络使用 RDP 短路径,则会使用最先找到的算法,这意味着用户将使用首先为该会话建立的连接。 有关详细信息,请参阅示例方案 4 。
网络配置
若要支持公用网络 RDP 短路径,通常不需要进行任何特定的配置。 会话主机和客户端将自动发现直接数据流(如果可以在网络配置中这样做)。 但是,每个环境都有独特性,某些网络配置可能会给直接连接的成功率产生负面影响。 请遵循建议 提高直接数据流的成功概率。
由于 RDP 短路径使用 UDP 建立数据流,如果网络上的防火墙阻止 UDP 流量,则 RDP 短路径将会失败,并且连接将回退到基于 TCP 的反向连接传输。 Azure 虚拟桌面使用 Azure 通信服务提供的 STUN 服务器以及 Microsoft Teams。 根据该功能的性质,需要建立从会话主机到客户端的出站连接。 遗憾的是,在大多数情况下,无法预测用户的位置。 因此,我们建议允许使用 UDP 从会话主机出站连接到 Internet。 若要减少所需的端口数,可以限制客户端为 UDP 流使用的端口范围 。 为 RDP 短路径配置防火墙时,请参考下表。
如果你的环境使用对称 NAT(将单个专用源“IP:端口”映射到唯一的公共目标“IP:端口”),则可以使用与 TURN 的中继连接 。 如果你使用 Azure 防火墙和 Azure NAT 网关,则会出现这种情况。 有关使用 Azure 虚拟网络进行 NAT 的详细信息,请参阅使用虚拟网络进行源网络地址转换 。
我们有一些使用公用网络 RDP 短路径进行成功连接的一般建议。 有关详细信息,请参阅一般建议 。
如果用户可同时为托管网络和公用网络使用 RDP 短路径,则会使用找到的第一个算法。 用户将为该会话使用首先建立的连接。 有关详细信息,请参阅示例场景 。
以下部分包含会话主机与客户端设备的源、目标和协议要求,要使 RDP 短路径正常工作,必须满足这些要求。
注意
对于与 TURN 的中继连接,IP 子网 20.202.0.0/16
是与 Azure 通信服务共享的。 但是,Azure 虚拟桌面和 Windows 365 将转换到 51.5.0.0/16
,这是这些服务所专用的。 建议立即在网络环境中配置这两个范围,以确保无缝转换。
如果你想要等待使用专用子网,请按照配置主机池网络设置 中的步骤操作,并将“公共网络的 RDP 短路径(通过 TURN/中继)”设置为“已禁用” 。 或者,可以在本地设备上禁用 UDP,但这将对所有连接禁用 UDP。 若要在本地设备上禁用 UDP,请按照检查是否已在 Windows 客户端设备上启用 UDP 中的步骤操作,但将“对客户端关闭 UDP”设置为“已启用” 。 如果你阻止网络上的 IP 范围 20.202.0.0/16
并且正在使用 VPN 应用程序,则可能会导致断开连接问题。
会话主机虚拟网络
下表详细介绍了会话主机虚拟网络的 RDP 短路径的源、目标和协议要求。
名称
源
Source Port
目标
Destination Port
协议
操作
STUN 直接连接
VM 子网
任意
任意
1024-65535 (默认值 49152-65535)
UDP
允许
STUN 基础结构/TURN
VM 子网
任意
20.202.0.0/16
3478
UDP
允许
TURN 中继
VM 子网
任意
51.5.0.0/16
3478
UDP
允许
客户端网络
下表详细介绍了客户端设备的源、目标和协议要求。
名称
源
Source Port
目标
Destination Port
协议
操作
STUN 直接连接
客户端网络
任意
分配给 NAT 网关或 Azure 防火墙(由 STUN 终结点提供)的公共 IP 地址
1024-65535 (默认值 49152-65535)
UDP
允许
STUN 基础结构/TURN 中继
客户端网络
任意
20.202.0.0/16
3478
UDP
允许
TURN 中继
客户端网络
任意
51.5.0.0/16
3478
UDP
允许
Teredo 支持
Teredo 会添加额外的 NAT 遍历候选项(虽然 RDP 短路径不要求这样做),从而可以提高在仅限 IPv4 的网络中成功建立 RDP 短路径连接的几率。 若要了解如何在会话主机和客户端上启用 Teredo,请参阅启用 Teredo 支持 。
UPnP 支持
为了提高直接连接的成功几率,在远程桌面客户端,RDP 短路径可以使用 UPnP 在 NAT 路由器上配置端口映射。 UPnP 是各种应用程序(例如 Xbox、传递优化和 Teredo)使用的标准技术。 UPnP 普遍适用于常见的家庭网络路由器。 大多数家庭路由器和接入点默认已启用 UPnP,但在企业网络中通常会禁用 UPnP。
常规建议
下面是使用公用网络 RDP 短路径时的一些一般建议:
连接安全性
RDP 短路径扩展了 RDP 多传输功能。 它不会取代反向连接传输,而是对其进行补充。 初始会话中转是通过 Azure 虚拟桌面服务和反向连接传输管理的。 将忽略所有连接尝试,除非它们首先匹配反向连接会话。 RDP 短路径是在身份验证后建立的,如果成功建立,则会丢弃反向连接传输,所有流量将通过 RDP 短路径传送。
RDP 短路径使用会话主机证书通过基于可靠 UDP 的 TLS 在客户端与会话主机之间建立安全的连接。 默认情况下,用于 RDP 加密的证书由操作系统在部署过程中自行生成。 还可以部署由企业证书颁发机构颁发的集中管理的证书。 有关证书配置的详细信息,请参阅远程桌面侦听器证书配置 。
注意
RDP 短路径提供的安全性与 TCP 反向连接传输提供的安全性相同。
示例方案
下面是一些示例方案,演示如何评估连接以确定是否跨不同的网络拓扑使用了 RDP 短路径。
方案 1
只能通过公用网络 (Internet) 在客户端设备与会话主机之间建立 UDP 连接。 直接连接(例如 VPN)不可用。 允许通过防火墙或 NAT 设备使用 UDP。
方案 2
防火墙或 NAT 设备正在阻止直接 UDP 连接,但可以通过公用网络 (Internet) 在客户端设备和会话主机之间使用 TURN 对中继 UDP 连接进行中继。 另一种直接连接(例如 VPN)不可用。
方案 3
可以通过公用网络或直接 VPN 连接在客户端设备与会话主机之间建立 UDP 连接,但不会启用托管网络的 RDP 短路径。 当客户端启动连接时,ICE/STUN 协议可以看到多个路由,将评估每个路由并选择延迟最低的路由。
在此示例中,将通过直接 VPN 连接使用公用网络的 RDP 短路径建立 UDP 连接,因为直接 VPN 连接的延迟最低,如绿线所示。
方案 4
将启用公用网络和托管网络的 RDP 短路径。 可以通过公用网络或直接 VPN 连接在客户端设备与会话主机之间建立 UDP 连接。 当客户端启动连接时,会同时尝试通过端口 3390 使用托管网络的 RDP 短路径(默认方式)和通过 ICE/STUN 协议使用公用网络的 RDP 短路径建立连接。 将使用最先找到的算法,用户将使用首先为该会话建立的连接。
由于通过公用网络建立连接需要执行附加步骤(例如 NAT 设备、负载均衡器或 STUN 服务器方面的步骤),因此最先找到的算法可能会选择使用托管网络的 RDP 短路径首先建立的连接。
方案 5
可以通过公用网络或直接 VPN 连接在客户端设备与会话主机之间建立 UDP 连接,但不会启用托管网络的 RDP 短路径。 若要防止 ICE/STUN 使用特定的路由,管理员可以阻止 UDP 流量的某个路由。 阻止路由可确保始终使用剩余的路径。
在此示例中,UDP 在直接 VPN 连接上被阻止,ICE/STUN 协议通过公用网络建立连接。
方案 6
配置了公用网络和托管网络的 RDP 短路径,但无法使用直接 VPN 连接建立 UDP 连接。 防火墙或 NAT 设备还会阻止使用公用网络 (Internet) 的直接 UDP 连接,但可以通过公用网络 (Internet) 在客户端设备和会话主机之间使用 TURN 对中继 UDP 连接进行中继。
方案 7
将配置公用网络和托管网络的 RDP 短路径,但无法建立 UDP 连接。 在此情况下,RDP 短路径将会失败,并且连接将回退到基于 TCP 的反向连接传输。
后续步骤