遠端桌面無法連線 Windows Server VPS 時,原因通常不外乎五種:通往 3389 連接埠的網路路徑、RDP 被停用、Windows 防火牆、NLA/CredSSP 驗證不相容,或帳號被鎖定。本篇 RDP 連線問題排查教程依序檢查每一項,適用 Windows Server 2016、2019、2022,東京、首爾、莫斯科的 JUSTG 雲伺服器以及 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 加密資料庫修正”或與 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,伺服器配置好 IPv6 後,在遠端桌面客戶端輸入用方括號括起的地址即可,例如 [2001:db8::10]。
完成以上檢查仍然無法連線,請提交工單聯絡 JUSTG 技術支援,並附上步驟 1 與步驟 2 的輸出結果,我們會協助您進一步排查。