Azure 中 Windows VM 之遠端桌面連線問題的詳細疑難排解步驟
適用於:✔️ Windows VM
本文提供詳細的疑難解答步驟,可診斷和修正 Windows 型 Azure 虛擬機的複雜遠端桌面錯誤。
重要
若要消除較常見的遠端桌面錯誤,請務必先閱讀 遠端桌面 的基本疑難解答文章,再繼續進行。
您可能會遇到遠端桌面錯誤訊息,與基本遠端桌面疑難解答指南中涵蓋的任何特定錯誤訊息並不類似。 請遵循下列步驟來判斷為什麼遠端桌面 (RDP) 客戶端無法連線到 Azure VM 上的 RDP 服務。
遠端桌面連線的元件
RDP 連線涉及下列元件:
在繼續之前,它可能有助於在精神上檢閱自上次成功連線到 VM 之後所變更的內容。 例如:
- VM 的公用 IP 位址或包含 VM 的雲端服務(也稱為虛擬 IP 位址 VIP)已變更。 RDP 失敗可能是因為您的 DNS 用戶端快取仍有 為 DNS 名稱註冊的舊 IP 位址 。 請清除 DNS 用戶端快取並嘗試再次連接 VM。 或嘗試直接與新的 VIP 連接。
- 您使用第三方應用程式來管理遠端桌面連線,而不是使用 Azure 入口網站 所產生的連線。 確認應用程式組態包含遠端桌面流量的正確 TCP 連接埠。 您可以按下 VM 的 [設定>端點] 來檢查 Azure 入口網站 中傳統虛擬機器的此連接埠。
初步步驟
繼續進行詳細的疑難解答之前,
- 檢查 Azure 入口網站 中虛擬機的狀態是否有任何明顯的問題。
- 請遵循基本疑難解答指南中常見 RDP 錯誤的快速修正步驟。
- 針對自定義映像,請確定您的 VHD 在上傳之前已正確備妥。 如需詳細資訊,請參閱 準備 Windows VHD 或 VHDX 以上傳至 Azure。
在這些步驟之後,請嘗試透過遠端桌面重新連線到 VM。
詳細的疑難解答步驟
由於下列來源發生問題,遠端桌面用戶端可能無法連線到 Azure VM 上的遠端桌面服務:
來源 1:遠端桌面用戶端電腦
確認您的電腦可以連線到另一部內部部署 Windows 電腦。
如果無法,請檢查電腦上的下列設定:
- 封鎖遠端桌面流量的本機防火牆設定。
- 本機安裝的用戶端 Proxy 軟體會防止遠端桌面連線。
- 本機安裝的網路監視軟體,以防止遠端桌面連線。
- 監視流量或允許/不允許防止遠端桌面連線的特定流量類型其他類型的安全性軟體。
在這些情況下,請暫時停用軟體,並嘗試透過遠端桌面連線到內部部署計算機。 如果可以透過這種方式找出實際原因,請與您的網路管理員合作,更正軟體設定以允許遠端桌面連線。
來源 2:組織內部網路邊緣裝置
確認直接連線到因特網的計算機可以連線到您的 Azure 虛擬機。
如果您沒有直接連線到因特網的計算機,請使用資源群組或雲端服務中的新 Azure 虛擬機建立及測試。 如需詳細資訊,請參閱 在 Azure 中建立執行 Windows 的虛擬機。 您可以在測試之後刪除虛擬機和資源群組或雲端服務。
如果您可以建立與直接連結至因特網之電腦的遠端桌面連線,請檢查您的組織內部網路邊緣裝置,以取得:
- 內部防火牆封鎖對因特網的 HTTPS 連線。
- 防止遠端桌面連線的 Proxy 伺服器。
- 入侵檢測或網路監視軟體在邊緣網路中防止遠端桌面連線的裝置上執行。
請與您的網路管理員合作,更正組織內部網路邊緣裝置的設定,以允許 HTTPS 型遠端桌面連線到因特網。
來源3:網路安全組
網路安全組允許更細微地控制允許的輸入和輸出流量。 您可以在 Azure 虛擬網路中建立跨越子網和雲端服務的規則。
使用 IP流量驗證 來確認網路安全組中的規則是否封鎖虛擬機的流量。 您也可以檢閱有效的安全組規則,以確保輸入「允許」NSG 規則存在,並優先處理 RDP 連接埠(預設為 3389)。 如需詳細資訊,請參閱 使用有效安全性規則對 VM 流量流程進行疑難解答。
來源 4:以 Windows 為基礎的 Azure VM
請遵循本文中的指示。 本文會重設虛擬機上的遠端桌面服務:
- 啟用「遠端桌面」Windows 防火牆默認規則 (TCP 連接埠 3389)。
- 將 HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 登錄值設定為 0,以啟用遠端桌面連線。
再次嘗試從您的電腦連線。 如果您仍然無法透過遠端桌面連線,請檢查下列可能的問題:
- 遠端桌面服務未在目標 VM 上執行。
- 遠端桌面服務未接聽 TCP 埠 3389。
- Windows 防火牆或其他本機防火牆具有防止遠端桌面流量的輸出規則。
- 在 Azure 虛擬機上執行的入侵偵測或網路監視軟體正在防止遠端桌面連線。
針對使用傳統部署模型建立的 VM,您可以使用遠端 Azure PowerShell 工作階段至 Azure 虛擬機。 首先,您必須安裝虛擬機裝載雲端服務的憑證。 移至設定 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,然後再次嘗試遠端桌面連線。
其他資源
針對 Linux 型 Azure 虛擬機的安全殼層 (SSH) 連線進行疑難解答
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。