遠端桌面無法連線 Windows Server VPS:RDP 連線問題排查教學
遠端桌面無法連線 Windows Server VPS 時,原因通常不外乎五種:通往 3389 連接埠的網路路徑、RDP 被停用、Windows 防火牆、NLA/CredSSP 驗證不相容,或帳號被鎖定。本篇 RDP 連線問題排查教學依序檢查每一項,適用 Windows Server 2016、2019、2022,不論您的 JUSTG 雲端伺服器位於約翰尼斯堡、莫斯科、東京或首爾都可參考。範例以 203.0.113.10 作為伺服器 IP,請改成您自己的位址。
步驟 1:從本機測試 RDP 3389 連接埠
先從外部確認。若 TCP 測試失敗,代表網路路徑有問題或伺服器沒有在監聽;若測試成功但登入失敗,請直接跳到步驟 4。
# On your own Windows PC (PowerShell)
Test-NetConnection -ComputerName 203.0.113.10 -Port 3389
# On macOS / Linux
nc -vz 203.0.113.10 3389看到 TcpTestSucceeded : True 表示連接埠是通的。若為 False,請先在客戶中心確認 VPS 正在執行、能否 ping 通,並檢查您自己公司或網路業者是否封鎖對外 3389;可以改用手機熱點再測一次。
步驟 2:確認遠端桌面已啟用並在監聽
開啟 VNC 主控台登入後,以系統管理員身分執行 PowerShell。檢查 Remote Desktop Services(TermService)服務狀態、fDenyTSConnections 值(0 為允許 RDP,1 為封鎖),以及 RDP 實際監聽的連接埠:
Get-Service -Name TermService
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
Get-NetTCPConnection -LocalPort 3389 -State Listen如果之前有人改過 RDP 連接埠,PortNumber 會顯示新的值,連線時必須使用 IP:連接埠。若 RDP 被停用或服務已停止,可用以下指令重新開啟:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0
Set-Service -Name TermService -StartupType Automatic
Start-Service -Name TermService步驟 3:修正遠端桌面的 Windows 防火牆規則
安全強化腳本或手動清理規則,常常會把內建的遠端桌面規則停用。中文版 Windows 的規則群組顯示名稱已被翻譯,因此建議使用以資源 ID 表示的群組名稱,任何語言版本都通用:
# Language-independent group name for the built-in Remote Desktop rules
Enable-NetFirewallRule -Group "@FirewallAPI.dll,-28752"
Get-NetFirewallRule -Group "@FirewallAPI.dll,-28752" | Select-Object DisplayName, Enabled, Profile
# If the built-in rules were deleted, create one manually
New-NetFirewallRule -DisplayName "Allow RDP 3389" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow若已變更 RDP 連接埠,請開放新的連接埠而不是 3389。完成後回到步驟 1 重新測試,TCP 測試應該會成功。
步驟 4:排除 NLA 與 CredSSP 驗證錯誤
連接埠通了,用戶端卻出現「發生驗證錯誤……CredSSP 加密 Oracle 補救」或與 NLA 相關的訊息,通常是用戶端與伺服器的更新版本不一致。正確作法是透過 VNC 主控台在伺服器上安裝 Windows Update,同時更新您的電腦。暫時的應急方式是先關閉伺服器的網路層級驗證(NLA),登入完成更新後再開回來:
# Temporary: turn off Network Level Authentication (run in the VNC console)
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 0
# Turn it back on after the server is fully updated
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1步驟 5:帳號鎖定與「工作階段過多」
對外開放的 RDP 常被自動化程式嘗試猜密碼,若伺服器設有鎖定原則,帳號可能被暫時鎖住。在 VNC 主控台中查看原則與帳號狀態,並列出目前的工作階段。Windows Server 預設只允許兩個管理工作階段,可依 ID 登出殘留的連線:
net accounts
net user Administrator
qwinsta
logoff 2若本機帳號顯示為鎖定,可開啟 lusrmgr.msc,在使用者內容中取消勾選「帳戶已鎖定」,或等待 net accounts 顯示的鎖定期間結束。想減少暴力破解,可以把 RDP 改到非預設連接埠,並將防火牆規則限制為只允許您自己的 IP。
常見問題
可以 ping 通,遠端桌面卻還是無法連線?
ping 只代表 ICMP 能到達伺服器,RDP 需要 TCP 3389(或您自訂的連接埠)正在監聽且被防火牆放行。請透過 VNC 主控台執行步驟 2 與步驟 3。
昨天還能連,Windows Update 重新開機後就連不上?
重新開機後請稍等幾分鐘,大型更新可能會停在「正在處理更新」畫面,可以從 VNC 主控台觀察進度。若之後用戶端出現 CredSSP 錯誤,請一併更新您本機的電腦。
可以用 IPv6 連線到 JUSTG 的 Windows VPS 嗎?
可以。所有 JUSTG 雲端伺服器都免費提供 IPv6,在伺服器設定好後,於遠端桌面用戶端輸入以中括號包住的位址即可,例如 [2001:db8::10]。
完成以上檢查仍然無法連線,請提交工單聯絡 JUSTG 技術支援,並附上步驟 1 與步驟 2 的輸出結果,我們會協助您進一步排查。