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

Azure 虚拟桌面的代理服务器指南

本文介绍如何将代理服务器与 Azure 虚拟桌面配合使用。 本文中的建议仅适用于 Azure 虚拟桌面基础结构、客户端和会话主机代理之间的连接。 本文不介绍 Office、Windows 10、FSLogix 或其他Microsoft应用程序的网络连接。

什么是代理服务器?

我们建议绕过 Azure 虚拟桌面流量的代理。 代理不会使 Azure 虚拟桌面更安全,因为流量已加密。 若要了解有关连接安全性的详细信息,请参阅 连接安全性

大多数代理服务器都不适合支持长时间运行的 WebSocket 连接,并且可能会影响连接稳定性。 代理服务器可伸缩性也会导致问题,因为 Azure 虚拟桌面使用多个长期连接。 如果使用代理服务器,则它们的大小必须正确,才能运行这些连接。

如果代理服务器的地理位置远非主机,则此距离将导致用户连接延迟更多。 更多的延迟意味着连接时间变慢,用户体验更差,尤其是在需要与输入设备进行图形、音频或低延迟交互的情况下。 如果必须使用代理服务器,请记住,需要将服务器放置在与 Azure 虚拟桌面代理和客户端相同的地理位置。

如果将代理服务器配置为 Azure 虚拟桌面流量的唯一路径,则远程桌面协议(RDP)数据将强制通过传输控制协议(TCP)而不是用户数据报协议(UDP)。 此举降低了远程连接的视觉质量和响应能力。

总之,不建议在 Azure 虚拟桌面上使用代理服务器,因为它们会导致延迟下降和数据包丢失导致性能相关的问题。

绕过代理服务器

如果组织的网络和安全策略需要利用代理服务器通过 Web 流量,则可以将环境配置为绕过 Azure 虚拟桌面连接,但仍通过代理服务器路由流量。 但是,每个组织的策略都是独一无二的,因此某些方法可能比其他方法更适合你的部署。 下面是一些可以尝试防止环境中性能和可靠性丢失的配置方法:

  • Azure 防火墙的 Azure 服务标记
  • 使用代理自动配置 (.PAC) 文件绕过代理服务器
  • 本地代理配置中的绕过列表
  • 使用代理服务器完成每用户配置
  • 使用 RDP 短路径进行 RDP 连接,同时通过代理保留服务流量

有关使用代理服务器的建议

某些组织要求所有用户流量通过代理服务器进行跟踪或数据包检查。 本部分介绍如何在这些情况下配置环境。

在同一 Azure 地理位置中使用代理服务器

使用代理服务器时,它会处理与 Azure 虚拟桌面基础结构的所有通信,并执行 DNS 解析和 Anycast 路由到最近的 Azure Front Door。 如果代理服务器很远或分布在 Azure 地理区域,则地理分辨率将不太准确。 不太准确的地理分辨率意味着将连接路由到更遥远的 Azure 虚拟桌面群集。 若要避免此问题,请仅使用地理上靠近 Azure 虚拟桌面群集的代理服务器。

将 RDP 短路径用于托管网络以进行桌面连接

为托管网络启用 RDP Shortpath 时,如果可能,RDP 数据将绕过代理服务器。 绕过代理服务器可确保在使用 UDP 传输时获得最佳路由。 其他 Azure 虚拟桌面流量(例如代理、业务流程和诊断)仍将通过代理服务器。

不要在代理服务器上使用 SSL 终止

安全套接字层(SSL)终止将 Azure 虚拟桌面组件的安全证书替换为代理服务器生成的证书。 此代理服务器功能允许对代理服务器上的 HTTPS 流量进行数据包检查。 但是,数据包检查也会增加服务响应时间,使用户登录所需的时间更长。 对于反向连接方案,不需要 RDP 流量数据包检查,因为反向连接 RDP 流量是二进制的,并且使用额外的加密级别。

如果将代理服务器配置为使用 SSL 检查,请记住,在 SSL 检查进行更改后,无法将服务器还原为其原始状态。 如果在启用 SSL 检查后 Azure 虚拟桌面环境中的内容停止工作,则必须禁用 SSL 检查,然后重试,然后才能提出支持案例。 SSL 检查还可能导致 Azure 虚拟桌面代理停止工作,因为它会干扰代理和服务之间的受信任连接。

不要使用需要身份验证的代理服务器

会话主机上的 Azure 虚拟桌面组件在其作系统的上下文中运行,因此它们不支持需要身份验证的代理服务器。 如果代理服务器需要身份验证,连接将失败。

规划代理服务器网络容量

代理服务器具有容量限制。 与常规 HTTP 流量不同,RDP 流量长时间运行,聊天连接是双向的,并且消耗了大量带宽。 在设置代理服务器之前,请与代理服务器供应商联系,了解服务器的吞吐量。 此外,请确保询问他们一次可以运行多少个代理会话。 部署代理服务器后,请仔细监视其资源使用情况,以应对 Azure 虚拟桌面流量的瓶颈。

代理服务器和Microsoft Teams 媒体优化

Azure 虚拟桌面不支持 对 Microsoft Teams 进行媒体优化的代理服务器。

会话主机配置建议

若要配置会话主机级代理服务器,需要启用系统范围的代理。 请记住,系统范围的配置会影响会话主机上运行的所有 OS 组件和应用程序。 以下部分是有关配置系统范围的代理的建议。

使用 Web 代理自动发现 (WPAD) 协议

Azure 虚拟桌面代理会自动尝试使用 Web 代理自动发现(WPAD)协议在网络上找到代理服务器。 在位置尝试期间,代理在域名服务器(DNS)中搜索名为 wpad.domainsuffix 的文件。 如果代理在 DNS 中找到该文件,则会对名为 wpad.dat 的文件发出 HTTP 请求。 响应将成为选择出站代理服务器的代理配置脚本。

若要将网络配置为使用 WPAD 的 DNS 解析,请按照 自动检测设置 Internet Explorer 11 中的说明进行作。 确保 DNS 服务器全局查询阻止列表允许 WPAD 解析,方法是按照Set-DnsServerGlobalQueryBlockList中的说明进行操作。

为 Windows 服务手动设置设备范围的代理

如果手动指定代理服务器,则至少需要为会话主机上的 Windows 服务 RDAgent远程桌面服务 设置代理。 RDAgent 使用帐户 本地系统 运行,远程桌面服务使用帐户 网络服务运行。 可以使用命令行工具为这些帐户 bitsadmin 设置代理。

以下示例将本地系统和网络服务帐户配置为使用代理 .pac 文件。 需要从提升的命令提示符运行这些命令,将“<server>”的点位符值更改为你自己的地址:

bitsadmin /util /setieproxy LOCALSYSTEM AUTOSCRIPT http://<server>/proxy.pac
bitsadmin /util /setieproxy NETWORKSERVICE AUTOSCRIPT http://<server>/proxy.pac

有关完整参考和其他示例,请参阅 bitsadmin util 和 setieproxy

你也可以设置适用于所有交互性本地系统和网络服务用户的设备范围代理或代理自动配置 (.PAC) 文件。 如果会话主机已注册到 Intune,则可以使用 网络代理 CSP 来设置代理,不过 Windows 多会话客户端操作系统不支持策略配置服务提供程序(Policy CSP),因为它们仅支持 设置目录。 或者,您可以使用 netsh winhttp 命令配置整个设备的代理。 有关完整参考和示例,请参阅 适用于 Windows 超文本传输协议的 Netsh 命令(WINHTTP)

客户端代理支持

Azure 虚拟桌面客户端支持使用系统设置或 网络代理 CSP 配置的代理服务器

Azure 虚拟桌面客户端支持

下表显示了哪些 Azure 虚拟桌面客户端支持代理服务器:

客户端名称 代理服务器支持
Windows 桌面 是的
Web 客户端 是的
安卓
iOS 是的
macOS 是的
Windows 应用商店 是的

有关 Linux 上基于瘦客户端的代理支持的详细信息,请参阅瘦客户端支持

支持限制

有许多第三方服务和应用程序充当代理服务器。 这些第三方服务包括分布式下一代防火墙、Web 安全系统和基本代理服务器。 我们无法保证每个配置都与 Azure 虚拟桌面兼容。 Microsoft仅对通过代理服务器建立的连接提供有限的支持。 如果在使用代理服务器时遇到连接问题,Microsoft支持建议你配置代理绕过,然后尝试重现此问题。

后续步骤

有关确保 Azure 虚拟桌面部署安全的详细信息,请查看 我们的安全指南