Azure 中 Windows VM 遠端桌面連線問題的詳細疑難解答步驟

本文提供詳細的疑難解答步驟,以診斷和修正 Windows 型 Azure 虛擬機的複雜遠端桌面錯誤。

重要事項

若要排除更常見的遠端桌面錯誤,請務必先閱讀 遠端桌面的基本疑難解答文章 ,再繼續進行。

您可能會遇到與 基本遠端桌面疑難解答指南所涵蓋的任何特定錯誤訊息不類似的遠端桌面錯誤訊息。 請遵循下列步驟來判斷為什麼遠端桌面 (RDP) 客戶端無法連線到 Azure VM 上的 RDP 服務。

遠端桌面連線的元件

下列元件涉及 RDP 連線:

圖表顯示遠端桌面 (RDP) 連線所涉及的元件。

在繼續之前,建議您檢閱自從上次成功遠端桌面連線至 VM 之後所變更的內容。 例如:

  • 包含 VM 的 VM 或雲端服務的公用 IP 位址 (也稱為虛擬 IP 位址 VIP) 已變更。 RDP 失敗的原因可能是您的 DNS 用戶端快取仍有已註冊 DNS 名稱的 舊 IP 位址 。 排清 DNS 用戶端快取,然後再次嘗試連線 VM。 或嘗試直接與新的VIP連線。
  • 您使用第三方應用程式來管理遠端桌面連線,而不是使用 Azure 入口網站 所產生的連線。 確認應用程式組態包含遠端桌面流量的正確 TCP 連接埠。 您可以按下 VM 的 [設定>端點],在 Azure 入口網站 中檢查傳統虛擬機的此埠。

初步步驟

繼續進行詳細的疑難解答之前,

請嘗試在這些步驟之後,透過遠端桌面重新連線到 VM。

詳細的疑難解答步驟

由於下列來源的問題,遠端桌面用戶端可能無法連線到 Azure VM 上的遠端桌面服務:

來源 1:遠端桌面用戶端電腦

確認您的電腦可以對另一部內部部署 Windows 計算機進行遠端桌面連線。

RDP 連線中已反白顯示 RDP 用戶端的元件圖表,以及指向另一部內部部署電腦的箭號,表示連線。

如果無法,請檢查電腦上的下列設定:

  • 封鎖遠端桌面流量的本機防火牆設定。
  • 本機安裝的用戶端 Proxy 軟體會阻止遠端桌面連線。
  • 本機安裝的網路監視軟體會阻止遠端桌面連線。
  • 其他類型的安全性軟體,可監視流量,或允許/不允許阻止遠端桌面連線的特定流量類型。

在所有這些情況下,請暫時停用軟體,並嘗試透過遠端桌面連線到內部部署計算機。 如果您可以這種方式找出實際原因,請與您的網路管理員合作,以更正軟體設定以允許遠端桌面連線。

來源 2:組織內部網路邊緣裝置

確認直接連線到因特網的計算機可以進行 Azure 虛擬機的遠端桌面連線。

RDP 連線中與連線到因特網之 RDP 用戶端的元件圖表,以及指向指出連線之 Azure V M 的箭號。

如果您沒有直接連線到因特網的計算機,請在資源群組或雲端服務中建立新的 Azure 虛擬機並進行測試。 如需詳細資訊,請 參閱在 Azure 中建立執行 Windows 的虛擬機。 您可以在測試之後刪除虛擬機和資源群組或雲端服務。

如果您可以使用直接連結至因特網的電腦建立遠端桌面連線,請檢查組織內部網路邊緣裝置的下列情況:

  • 封鎖 HTTPS 連線到因特網的內部防火牆。
  • 防止遠端桌面連線的 Proxy 伺服器。
  • 入侵偵測或網路監視軟體會在邊緣網路中的裝置上執行,以防止遠端桌面連線。

請與您的網路管理員合作,更正組織內部網路邊緣裝置的設定,以允許 HTTPS 型遠端桌面連線到因特網。

來源 3:雲端服務端點和 ACL

重要事項

傳統 VM 將於 2023 年 9 月 1 日淘汰

如果您使用 ASM 的 IaaS 資源,請在 2023 年 9 月 1 日前完成移轉。 我們鼓勵您更快進行切換,以利用 Azure Resource Manager 中的許多功能增強功能。

如需詳細資訊,請參閱在 2023 年 9 月 1 日前將 IaaS 資源遷移至 Azure Resource Manager

針對使用傳統部署模型建立的 VM,請確認位於相同雲端服務或虛擬網路中的另一個 Azure VM 可以對您的 Azure VM 進行遠端桌面連線。

RDP 連線中的元件圖表,其中一個 Azure V M 已醒目提示,而箭號指向相同雲端服務內表示連線的另一個 Azure V M。

注意事項

針對在 Resource Manager 中建立的虛擬機,請跳至來源 4:網路安全組

如果您在相同的雲端服務或虛擬網路中沒有另一部虛擬機,請建立一部虛擬機。 請遵循在 Azure 中建立執行 Windows 的虛擬機中的步驟。 測試完成後,請刪除測試虛擬機。

如果您可以透過遠端桌面連線到相同雲端服務或虛擬網路中的虛擬機,請檢查下列設定:

  • 目標 VM 上遠端桌面流量的端點設定:連接點的私人 TCP 埠必須符合 VM 遠端桌面服務接聽的 TCP 連接埠 (預設值為 3389) 。
  • 目標 VM 上遠端桌面流量端點的 ACL:ACL 可讓您根據來源 IP 位址,指定允許或拒絕來自因特網的連入流量。 設定錯誤的 ACL 可能會防止連入遠端桌面流量流向端點。 檢查您的 ACL,以確保允許來自 Proxy 或其他邊緣伺服器之公用 IP 位址的連入流量。 如需詳細資訊,請參閱什麼是網路 存取控制 清單 (ACL) ?

若要檢查端點是否為問題的來源,請移除目前的端點並建立新的端點,並針對外部埠號碼選擇範圍 49152–65535 中的隨機埠。 如需詳細資訊,請 參閱如何設定虛擬機的端點

來源 4:網路安全組

網路安全組允許更細微地控制允許的輸入和輸出流量。 您可以在 Azure 虛擬網路中建立跨越子網和雲端服務的規則。

使用 IP流量驗證 來確認網路安全組中的規則是否封鎖虛擬機的流量。 您也可以檢閱有效的安全組規則,以確保輸入「允許」NSG 規則存在,並已針對 RDP 連接埠設定優先順序 (預設值 3389) 。 如需詳細資訊,請 參閱使用有效的安全性規則對 VM 流量進行疑難解答

來源 5:以 Windows 為基礎的 Azure VM

在雲端服務中醒目提示 Azure V M 的 RDP 聯機組件圖表,以及可能是問題來源的訊息。

請遵循 本文中的指示。 本文會重設虛擬機上的遠端桌面服務:

  • (TCP 連接埠 3389) 啟用「遠端桌面」Windows 防火牆默認規則。
  • 將 HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 登錄值設定為 0,以啟用遠端桌面連線。

再次嘗試從您的電腦連線。 如果您仍然無法透過遠端桌面連線,請檢查下列可能的問題:

  • 遠端桌面服務未在目標 VM 上執行。
  • 遠端桌面服務未接聽 TCP 埠 3389。
  • Windows 防火牆或其他本機防火牆具有防止遠端桌面流量的輸出規則。
  • 在 Azure 虛擬機上執行的入侵偵測或網路監視軟體會阻止遠端桌面連線。

對於使用傳統部署模型建立的 VM,您可以使用 Azure 虛擬機的遠端 Azure PowerShell 工作階段。 首先,您必須安裝虛擬機裝載雲端服務的憑證。 移至設定 Azure 虛擬機器 的安全遠端 PowerShell 存取,並將 InstallWinRMCertAzureVM.ps1 腳本檔案下載到您的本機電腦。

接下來,如果您尚未安裝 Azure PowerShell,請安裝 。 請參閱如何安裝和設定 Azure PowerShell

接下來,開啟 Azure PowerShell 命令提示字元,並將目前資料夾變更為 InstallWinRMCertAzureVM.ps1 腳本檔案的位置。 若要執行 Azure PowerShell 文稿,您必須設定正確的執行原則。 執行 Get-ExecutionPolicy 命令來判斷您目前的原則層級。 如需設定適當層級的資訊,請參閱 Set-ExecutionPolicy

接下來,填入您的 Azure 訂用帳戶名稱、雲端服務名稱和虛擬機名稱, (移除 < 和 > 字元) ,然後執行這些命令。

$subscr="<Name of your Azure subscription>"
$serviceName="<Name of the cloud service that contains the target virtual machine>"
$vmName="<Name of the target virtual machine>"
.\InstallWinRMCertAzureVM.ps1 -SubscriptionName $subscr -ServiceName $serviceName -Name $vmName

您可以從 Get-AzureSubscription 命令顯示的 SubscriptionName 屬性取得正確的訂用帳戶名稱。 您可以從 Get-AzureVM 命令顯示中的 ServiceName 資料行取得虛擬機的雲端服務名稱。

檢查您是否有新的憑證。 開啟目前使用者的 [憑證] 嵌入式管理單元,並查看 [ 受信任的跟證書授權單位\憑證] 資料夾。 您應該會在 [發行至] 數據行中看到具有雲端服務 DNS 名稱的憑證 (範例:cloudservice4testing.cloudapp.net) 。

接下來,使用這些命令起始遠端 Azure PowerShell 工作階段。

$uri = Get-AzureWinRMUri -ServiceName $serviceName -Name $vmName
$creds = Get-Credential
Enter-PSSession -ConnectionUri $uri -Credential $creds

輸入有效的系統管理員認證之後,您應該會看到類似下列 Azure PowerShell 提示:

[cloudservice4testing.cloudapp.net]: PS C:\Users\User1\Documents>

此提示的第一個部分是您的雲端服務名稱,其中包含目標 VM,這可能與「cloudservice4testing.cloudapp.net」不同。 您現在可以發出此雲端服務的 Azure PowerShell 命令,以調查所述的問題並更正設定。

手動更正接聽 TCP 埠的遠端桌面服務

在遠端 Azure PowerShell 工作話提示字元中,執行此命令。

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

PortNumber 屬性會顯示目前的埠號碼。 如有需要,請使用此命令,將遠端桌面埠號碼變更回其預設值 (3389) 。

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Value 3389

使用此命令確認埠已變更為 3389。

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

使用此命令結束遠端 Azure PowerShell工作階段。

Exit-PSSession

確認 Azure VM 的遠端桌面端點也使用 TCP 連接埠 3398 作為其內部埠。 重新啟動 Azure VM,然後再次嘗試遠端桌面連線。

其他資源

如何重設 Windows 虛擬機的密碼或遠端桌面服務

如何安裝與設定 Azure PowerShell

針對安全殼層 (SSH) 連線至以 Linux 為基礎的 Azure 虛擬機進行疑難解答

針對在 Azure 虛擬機上執行之應用程式的存取進行疑難解答

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群