本文將示範如何在 Azure 虛擬桌面中使用代理伺服器。 本文的建議僅適用於 Azure 虛擬桌面基礎架構、用戶端與會話主機代理之間的連線。 本文不涵蓋 Office、Windows 10、FSLogix 或其他 Microsoft 應用程式的網路連線。
什麼是代理伺服器?
我們建議繞過 Azure 虛擬桌面流量的代理伺服器。 代理伺服器並不會讓 Azure 虛擬桌面更安全,因為流量本身已經加密。 欲了解更多連線安全資訊,請參閱 連線安全。
大多數代理伺服器並非設計來支援長時間的 WebSocket 連線,可能會影響連線穩定性。 代理伺服器的可擴展性也會造成問題,因為 Azure 虛擬桌面需要多個長期連線。 如果你使用代理伺服器,它們必須有適合執行這些連線的大小。
如果代理伺服器的地理位置離主機很遠,這種距離會導致使用者連線延遲增加。 延遲越高,連線速度變慢,使用者體驗也變差,尤其是在需要圖形、音訊或低延遲輸入裝置互動的情境下。 如果你必須使用代理伺服器,請記得必須將伺服器置於與 Azure 虛擬桌面代理及用戶端相同的地理位置。
如果你將代理伺服器設定為虛擬桌面流量的唯一路徑Azure,遠端桌面協定 (RDP) 資料將被強制採用傳輸控制協定 (TCP) ,而非使用者資料報協定 (UDP) 。 此舉降低了遠端連線的視覺品質與反應速度。
總結來說,我們不建議在 Azure 虛擬桌面使用代理伺服器,因為它們會造成延遲下降和封包遺失等效能問題。
繞過代理伺服器
如果你組織的網路和安全政策需要代理伺服器來處理網頁流量,你可以設定環境繞過 Azure 虛擬桌面連線,同時仍將流量路由代理伺服器。 然而,每個組織的政策都不同,因此有些方法可能比其他方法更適合你的部署。 以下是一些你可以嘗試的配置方法,以防止環境中的效能與可靠性損失:
- Azure service tags with Azure 防火牆
- 代理伺服器繞過 Proxy Auto Configuration (
.PAC) 檔案 - 本地代理設定中的繞過列表
- 使用代理伺服器進行每使用者設定
- 使用 RDP 短路徑連接 RDP 連線,同時保留代理伺服器的服務流量
使用代理伺服器的建議
有些組織要求所有使用者流量都必須經過代理伺服器進行追蹤或封包檢查。 本節說明我們建議如何配置環境。
使用位於相同 Azure 地理區域的代理伺服器
當你使用代理伺服器時,它會處理與 Azure 虛擬桌面基礎架構的所有通訊,並執行 DNS 解析和 Anycast 路由到最近的 Azure Front Door。 如果你的代理伺服器分布在遙遠或分布在 Azure 地理區域,地理解析度就會比較不準確。 地理解析度較不精確,導致連線會被導向較遠的 Azure 虛擬桌面叢集。 為了避免這個問題,只使用地理上靠近 Azure 虛擬桌面叢集的代理伺服器。
使用RDP Shortpath作為桌面連線的管理網路
當你為受管網路啟用 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 的代理伺服器與媒體優化。
會話主機設定建議
要設定會話主機層級代理伺服器,你需要啟用系統範圍的代理伺服器。 請記得,系統範圍的設定會影響所有作業系統元件和在會話主機上運行的應用程式。 以下章節為配置系統性代理的建議。
使用網頁代理自動發現 (WPAD) 協定
Azure虛擬桌面代理會自動嘗試利用 Web Proxy 自動發現 (WPAD) 協定,嘗試定位網路上的代理伺服器。 在嘗試定位時,代理會 (DNS) 搜尋網域名稱伺服器,尋找名為 wpad.domainsuffix 的檔案。 如果代理程式在 DNS 中找到該檔案,就會對一個名為 wpad.dat 的檔案發出 HTTP 請求。 回應成為選擇出站代理伺服器的代理設定腳本。
要設定網路使用 DNS 解析來執行 WPAD,請依照 Internet Explorer 11 自動偵測設定中的指示操作。 請依照 Set-DnsServerGlobalQueryBlockList 的指示,確保 DNS 伺服器的全域查詢阻擋清單允許 WPAD 解析。
手動設定一個全裝置的 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 多會話用戶端作業系統不支援政策 CSP,因為它們只支援設定目錄。 或者你也可以用這個 netsh winhttp 指令設定一個全裝置代理。 完整參考資料與範例,請參閱 Windows 超文本傳輸協定的 Netsh 指令 (WINHTTP)
用戶端代理支援
Azure 虛擬桌面用戶端支援以系統設定配置的代理伺服器或網路代理 CSP。
Azure 虛擬桌面 client support
下表顯示哪些 Azure 虛擬桌面用戶端支援代理伺服器:
| 客戶名稱 | Proxy 伺服器支援 |
|---|---|
| 遠端桌面用戶端 | 是 |
| Web 用戶端 | 是 |
| Android | 否 |
| iOS | 是 |
| macOS | 是 |
| Windows 上的 Windows 應用程式 | 是 |
欲了解更多關於 Linux 薄客戶端代理支援的資訊,請參見瘦客戶端支援。
支援限制
有許多第三方服務和應用程式可以作為代理伺服器。 這些第三方服務包括分散式次世代防火牆、網路安全系統及基本代理伺服器。 我們無法保證所有設定都與 Azure 虛擬桌面相容。 Microsoft 僅有限度支援透過代理伺服器建立的連線。 如果你在使用代理伺服器時遇到連線問題,Microsoft 支援建議你先設定代理繞過,然後嘗試重現這個問題。
後續步驟
想了解更多關於如何保護 Azure 虛擬桌面部署安全的資訊,請參閱我們的安全指南。