本文介紹通過遠端桌面連線Windows執行個體提示“由於協議錯誤,會話將被中斷。請重新串連到遠端電腦。”錯誤的解決方案。
問題描述
遠端連線Windows系統的ECS執行個體時,提示協議錯誤。具體的報錯顯示如下:
問題原因
可能導致該問題的部分原因如下:
目標執行個體的遠端工作階段配置錯誤。當遠端工作階段配置錯誤,遠端連線時會出現協議錯誤的提示。請參考方案一:修改目標執行個體的遠端工作階段配置進行修複。
目標執行個體的遠端連線連接埠被其他應用佔用。Windows系統預設遠端桌面連線連接埠號碼為3389,當該連接埠被其他程式佔用時,遠端連線服務將無法正常運行。請參考方案二:修改遠端連線連接埠號碼或方案三:關閉佔用遠端連線連接埠的應用進程進行修複。
解決方案
根據實際情況,選擇對應方案進行解決。本文以Windows Server 2016作業系統為例。
方案一:修改目標執行個體的遠端工作階段配置
通過VNC串連Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
按右鍵表徵圖,然後單擊運行(R),輸入
gpedit.msc
命令,開啟本機群組原則編輯器。在本機群組原則編輯器視窗,選擇電腦配置 > 系統管理範本 > Windows 組件 > 遠端桌面服務 > 遠端桌面工作階段主機 > 安全。
在安全目錄中,雙擊遠程(RDP)串連要求使用指定的安全層。
在彈出對話方塊中選擇已啟用 ,在安全層選項中選擇RDP,單擊確定。
執行以下命令,完成策略更新,使以上的設定生效。
按右鍵表徵圖,然後單擊運行(R),輸入
cmd
命令,開啟命令列。執行
gpupdate
命令,完成策略更新。系統顯示類似如下圖。
再次進行遠端連線,確認問題已經修複。
方案二:修改遠端連線連接埠號碼
通過VNC串連Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
按右鍵表徵圖,然後單擊運行(R),輸入
regedit
,開啟登錄編輯程式。在登錄編輯程式視窗,依次進入以下目錄。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
雙擊RDP-Tcp目錄中名稱為PortNumber的登錄機碼。
在編輯頁面中,選擇基數選項中的十進位,修改數值資料中的值,該值即為遠端桌面使用的連接埠號碼。
說明圖中的3389連接埠號碼為遠端連線的預設連接埠號碼,僅作為樣本。請根據實際情況修改成所需的連接埠號碼
重啟Windows執行個體以更新配置。
方式一:在ECS控制台上重啟Windows執行個體,具體操作,請參見重啟執行個體。
方式二:在遠端連線的Windows執行個體上,選擇 > > 重啟。
方案三:關閉佔用遠端連線連接埠的應用進程
通過VNC串連Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
按右鍵表徵圖,然後單擊運行(R),輸入
cmd
命令,開啟命令列。執行以下命令,擷取佔用遠端連線連接埠的進程號(PID)。
netstat -ano |findstr 3389
說明此處以遠端連線預設連接埠號碼3389為例,需要以實際情況為準。
執行以下命令,根據PID查看進程對應的應用程式。
正常情況下,遠端連線連接埠被svchost.exe進程佔用。如果遠端連線連接埠被svchost.exe之外的進程佔用,則表明遠端連線連接埠的確被其他應用所佔用。
tasklist |findstr [$PID]
說明[$PID]指上一步擷取的PID。
您可以執行以下命令,根據PID關閉指定的進程,釋放被佔用的遠端連線連接埠。
重要關閉進程屬於風險操作,請確保關閉進程後不影響業務運行,方可執行此操作。
taskkill /f /pid [$PID]
再次進行遠端連線,確認問題已經修複。