詳細(xì)故障排除步驟:針對 Azure 中到 Windows VM 的遠(yuǎn)程桌面連接問題

本文提供詳細(xì)的故障排除步驟,用于為基于 Windows 的 Azure 虛擬機(jī)診斷和修復(fù)復(fù)雜的遠(yuǎn)程桌面錯誤。

Important

若要消除更常見的遠(yuǎn)程桌面錯誤,請務(wù)必先閱讀遠(yuǎn)程桌面的基本故障排除文章,然后再繼續(xù)。

你可能遇到不像基本遠(yuǎn)程桌面故障排除指南中所述的任何特定錯誤消息的遠(yuǎn)程桌面錯誤消息。 請遵循以下步驟來確定遠(yuǎn)程桌面 (RDP) 客戶端為何無法連接到 Azure VM 上的 RDP 服務(wù)。

Note

Azure 具有用于創(chuàng)建和處理資源的兩個不同的部署模型:Resource Manager 和經(jīng)典。 這篇文章介紹了如何使用這兩種模型,但 Azure 建議大多數(shù)最新部署使用 Resource Manager 模型。

如果對本文中的任何觀點(diǎn)存在疑問,可以聯(lián)系MSDN Azure 和 CSDN Azure上的 Azure 專家。 或者,也可以提出 Azure 支持事件。 請轉(zhuǎn)到Azure 支持站點(diǎn)并單擊“獲取支持”。 有關(guān)使用 Azure 支持的信息,請閱讀Azure 支持常見問題解答。

遠(yuǎn)程桌面連接的組件

以下是 RDP 連接所涉及的組件:

繼續(xù)前,可能會有助于回想自上次遠(yuǎn)程桌面成功連接到 VM 后發(fā)生的變化。 例如:

VM 或包含 VM 的云服務(wù)的公共 IP 地址(也稱為虛擬 IP 地址 (VIP))已更改。 RDP 失敗的原因可能是 DNS 客戶端緩存仍使用舊的 IP 地址 注冊 DNS 名稱。 請刷新 DNS 客戶端緩存,并嘗試重新連接 VM。 或者,嘗試直接使用新 VIP 進(jìn)行連接。

使用第三方應(yīng)用程序來管理遠(yuǎn)程桌面連接,而不是使用 Azure 門戶所生成的連接。 驗證應(yīng)用程序配置是否包含適用于遠(yuǎn)程桌面流量的 TCP 端口。 可以通過在Azure 門戶中單擊 VM 的“設(shè)置”>“終結(jié)點(diǎn)”來檢查經(jīng)典虛擬機(jī)的此端口。

預(yù)備步驟

在繼續(xù)進(jìn)行詳細(xì)故障排除前,

在 Azure 門戶中檢查虛擬機(jī)的狀態(tài),查看是否存在任何明顯問題。

按照基本故障排除指南中常見 RDP 錯誤的快速修復(fù)步驟進(jìn)行操作。

在執(zhí)行這些步驟后,嘗試通過遠(yuǎn)程桌面重新連接到 VM。

詳細(xì)故障排除步驟

由于以下源出現(xiàn)問題,遠(yuǎn)程桌面客戶端可能無法訪問 Azure VM 上的遠(yuǎn)程桌面服務(wù):

遠(yuǎn)程桌面客戶端計算機(jī)

組織 Intranet 邊緣設(shè)備

云服務(wù)終結(jié)點(diǎn)和訪問控制列表 (ACL)

網(wǎng)絡(luò)安全組

基于 Windows 的 Azure VM

來源 1:遠(yuǎn)程桌面客戶端計算機(jī)

驗證計算機(jī)是否可以與本地另一臺基于 Windows 的計算機(jī)建立遠(yuǎn)程桌面連接。

如果不能,請檢查計算機(jī)上的以下設(shè)置:

阻止遠(yuǎn)程桌面流量的本地防火墻設(shè)置。

阻止遠(yuǎn)程桌面連接的本地安裝的客戶端代理軟件。

阻止遠(yuǎn)程桌面連接的本地安裝的網(wǎng)絡(luò)監(jiān)視軟件。

阻止遠(yuǎn)程桌面連接的其他類型的安全軟件,該軟件監(jiān)視流量或允許/禁止特定類型的流量。

針對上述所有情況,請暫時禁用可疑軟件,并嘗試通過遠(yuǎn)程桌面連接到本地計算機(jī)。 如果可以通過這種方式找出實際原因,請與網(wǎng)絡(luò)管理員合作更正軟件設(shè)置,以允許遠(yuǎn)程桌面連接。

來源 2:組織 Intranet 邊緣設(shè)備

驗證直接連接到 Internet 的計算機(jī)是否可以與 Azure 虛擬機(jī)建立遠(yuǎn)程桌面連接。

如果沒有直接連接到 Internet 的計算機(jī),則可以在資源組或云服務(wù)中創(chuàng)建新的 Azure 虛擬機(jī)并使用它進(jìn)行測試。 有關(guān)詳細(xì)信息,請參閱在 Azure 中創(chuàng)建運(yùn)行 Windows 的虛擬機(jī)。 在測試后,可以刪除該虛擬機(jī)和資源組或云服務(wù)。

如果可以與直接連接到 Internet 的計算機(jī)建立遠(yuǎn)程桌面連接,檢查組織的 Intranet 邊緣設(shè)備中是否有以下問題:

內(nèi)部防火墻阻止 HTTPS 連接到 Internet。

代理服務(wù)器阻止遠(yuǎn)程桌面連接。

邊緣網(wǎng)絡(luò)設(shè)備上運(yùn)行的入侵檢測或網(wǎng)絡(luò)監(jiān)視軟件阻止遠(yuǎn)程桌面連接。

與網(wǎng)絡(luò)管理員合作更正組織 Intranet 邊緣設(shè)備的設(shè)置,以允許與 Internet 建立基于 HTTPS 的遠(yuǎn)程桌面連接。

來源 3:云服務(wù)終結(jié)點(diǎn)和 ACL

對于使用經(jīng)典部署模型創(chuàng)建的 VM,驗證同一云服務(wù)或虛擬網(wǎng)絡(luò)中的其他 Azure VM 能否與 Azure VM 建立遠(yuǎn)程桌面連接。

Note

對于在 Resource Manager 中創(chuàng)建的虛擬機(jī),請?zhí)D(zhuǎn)到來源 4:網(wǎng)絡(luò)安全組。

如果同一云服務(wù)或虛擬網(wǎng)絡(luò)中沒有其他虛擬機(jī),可自行創(chuàng)建。 遵循在 Azure 中創(chuàng)建運(yùn)行 Windows 的虛擬機(jī)中所述的步驟。 測試完成后,刪除測試虛擬機(jī)。

如果可以通過遠(yuǎn)程桌面連接到同一云服務(wù)或虛擬網(wǎng)絡(luò)中的虛擬機(jī),請檢查以下設(shè)置:

目標(biāo) VM 上遠(yuǎn)程桌面通信的終結(jié)點(diǎn)配置:終結(jié)點(diǎn)的專用 TCP 端口必須與 VM 的遠(yuǎn)程桌面服務(wù)正在偵聽的 TCP 端口(默認(rèn)值為 3389)匹配。

目標(biāo) VM 上遠(yuǎn)程桌面通信終結(jié)點(diǎn)的 ACL:ACL 可根據(jù)源 IP 地址,指定允許或拒絕從 Internet 傳入的流量。 錯誤配置 ACL 可能會阻止傳入遠(yuǎn)程桌面流量到達(dá)終結(jié)點(diǎn)。 檢查 ACL 以確保允許從代理服務(wù)器或其他邊緣服務(wù)器的公共 IP 地址傳入的流量。 有關(guān)詳細(xì)信息,請參閱什么是網(wǎng)絡(luò)訪問控制列表 (ACL)?

要檢查終結(jié)點(diǎn)是否是問題的源,刪除當(dāng)前終結(jié)點(diǎn),創(chuàng)建新終結(jié)點(diǎn),并選擇范圍 49152-65535 中的隨機(jī)端口作為外部端口號。 有關(guān)詳細(xì)信息,請參閱如何對虛擬機(jī)設(shè)置終結(jié)點(diǎn)

來源 4:網(wǎng)絡(luò)安全組

使用網(wǎng)絡(luò)安全組可以對允許的入站和出站流量進(jìn)行更好的控制。 可以創(chuàng)建跨 Azure 虛擬網(wǎng)絡(luò)中的子網(wǎng)和云服務(wù)的規(guī)則。

可以查看生效的安全組規(guī)則,確保入站“允許”NSG 規(guī)則存在并已針對 RDP 端口(默認(rèn)為 3389)設(shè)置優(yōu)先級。 有關(guān)詳細(xì)信息,請參閱使用有效的安全規(guī)則排查 VM 流量流問題。

來源 5:基于 Windows 的 Azure VM

請按此文說明執(zhí)行操作。 本文會重置虛擬機(jī)上的遠(yuǎn)程桌面服務(wù):

啟用“遠(yuǎn)程桌面”Windows 防火墻默認(rèn)規(guī)則(TCP 端口 3389)。

通過將 HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 注冊表值設(shè)置為 0,啟用遠(yuǎn)程桌面連接。

嘗試從計算機(jī)重新連接。 如果仍無法通過遠(yuǎn)程桌面連接,請檢查是否存在以下可能問題:

遠(yuǎn)程桌面服務(wù)未在目標(biāo) VM 上運(yùn)行。

遠(yuǎn)程桌面服務(wù)未在 TCP 端口 3389 上偵聽。

Windows 防火墻或其他本地防火墻使用阻止遠(yuǎn)程桌面通信的出站規(guī)則。

Azure 虛擬機(jī)上運(yùn)行的入侵檢測或網(wǎng)絡(luò)監(jiān)視軟件阻止遠(yuǎn)程桌面連接。

對于使用經(jīng)典部署模型創(chuàng)建的 VM,可以使用與 Azure 虛擬機(jī)的遠(yuǎn)程 Azure PowerShell 會話。 首先,需要安裝虛擬機(jī)托管云服務(wù)的證書。 轉(zhuǎn)到為 Azure 虛擬機(jī)配置安全遠(yuǎn)程 PowerShell 訪問,并將InstallWinRMCertAzureVM.ps1腳本文件下載到本地計算機(jī)。

接下來,安裝 Azure PowerShell(如果尚未安裝)。 請參閱如何安裝和配置 Azure PowerShell。

接下來,打開 Azure PowerShell 命令提示符,并將當(dāng)前文件夾更改為InstallWinRMCertAzureVM.ps1腳本文件所在的位置。 若要運(yùn)行 Azure PowerShell 腳本,必須設(shè)置正確的執(zhí)行策略。 運(yùn)行Get-ExecutionPolicy命令,以確定當(dāng)前的策略級別。 有關(guān)設(shè)置相應(yīng)級別的信息,請參閱Set-ExecutionPolicy

接下來,填寫你的 Azure 訂閱名稱、云服務(wù)名稱和虛擬機(jī)名稱(刪除 < 和 > 字符),然后運(yùn)行這些命令。

PowerShell復(fù)制

$subscr=""$serviceName=""$vmName="".\InstallWinRMCertAzureVM.ps1-SubscriptionName$subscr-ServiceName$serviceName-Name$vmName

可以從Get-AzureSubscription命令顯示的SubscriptionName屬性獲取正確的訂閱名稱。 可以從Get-AzureVM命令顯示的ServiceName列中獲取虛擬機(jī)的云服務(wù)名稱。

檢查是否有新的證書。 打開當(dāng)前用戶的“證書”管理單元,然后在“受信任的根證書頒發(fā)機(jī)構(gòu)\證書”文件夾中查找。 應(yīng)會看到在“頒發(fā)給”列中具有你的云服務(wù)的 DNS 名稱的證書(示例:cloudservice4testing.chinacloudapp.cn)。

接下來,使用以下命令啟動遠(yuǎn)程 Azure PowerShell 會話。

PowerShell復(fù)制

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

輸入有效的管理員憑據(jù)后,應(yīng)顯示類似以下 Azure PowerShell 提示符的信息:

PowerShell復(fù)制

[cloudservice4testing.chinacloudapp.cn]: PS C:\Users\User1\Documents>

此提示的第一部分是包含目標(biāo) VM 的云服務(wù)名稱,可能與于“cloudservice4testing.chinacloudapp.cn”不同。 現(xiàn)在,可對此云服務(wù)發(fā)出 Azure PowerShell 命令來調(diào)查上述問題并更正配置。

手動更正遠(yuǎn)程桌面服務(wù)偵聽 TCP 端口

出現(xiàn)遠(yuǎn)程 Azure PowerShell 會話提示時,運(yùn)行此命令。

PowerShell復(fù)制

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

PortNumber 屬性顯示當(dāng)前端口號。 如果需要,可使用此命令將遠(yuǎn)程桌面端口號更改回其默認(rèn)值 (3389)。

PowerShell復(fù)制

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

使用此命令驗證是否已將端口更改為 3389。

PowerShell復(fù)制

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

使用此命令退出遠(yuǎn)程 Azure PowerShell 會話。

PowerShell復(fù)制

Exit-PSSession

驗證 Azure VM 的遠(yuǎn)程桌面終結(jié)點(diǎn)是否也使用 TCP 端口 3398 作為其內(nèi)部端口。 重啟 Azure VM,并重新嘗試遠(yuǎn)程桌面連接。

其他資源

如何為 Windows 虛擬機(jī)重置密碼或遠(yuǎn)程桌面服務(wù)

如何安裝和配置 Azure PowerShell

對于基于 Linux 的 Azure 虛擬機(jī)的 Secure Shell (SSH) 連接進(jìn)行故障排除

對在 Azure 虛擬機(jī)上運(yùn)行的應(yīng)用程序的訪問進(jìn)行故障排除

立即訪問http://market.azure.cn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容