윈도우 서버 원격접속이 안될 때 해볼 수 있는 몇가지 방법

Windows Server RDP 접속 장애를 Test-NetConnection, TermService, fDenyTSConnections, 방화벽, 3389 listener, 사용자 권한, 이벤트 로그 순서로 진단합니다.

Windows Server 원격 데스크톱(RDP)이 안 될 때는 “서비스를 켜면 된다”로 끝내면 원인을 놓치기 쉽습니다. 클라이언트에서 3389 포트가 닿는지, 서버에서 TermService가 떠 있는지, 방화벽이 허용하는지, RDP 설정과 사용자 권한이 맞는지 순서대로 좁혀야 합니다.

클라이언트에서 먼저 확인

접속을 시도하는 PC에서 대상 서버의 RDP 포트가 열려 있는지 확인합니다.

Test-NetConnection 192.0.2.10 -Port 3389

TcpTestSucceeded : True이면 네트워크와 포트 접근은 일단 통과한 것입니다. False라면 서버 방화벽, 중간 방화벽, 보안 그룹, 라우팅, VPN, NAT 포워딩을 확인해야 합니다.

ping 192.0.2.10
tracert 192.0.2.10
nslookup server.example.com

ICMP ping이 막혀 있어도 RDP는 될 수 있으므로 ping 실패만으로 서버 장애라고 판단하지 않습니다. RDP 판단은 TCP 3389 기준으로 보는 것이 맞습니다.

서버 콘솔에서 RDP 서비스 확인

vSphere 콘솔, IPMI, 클라우드 콘솔, 현장 콘솔 등 서버에 직접 접근할 수 있다면 먼저 Remote Desktop Services 상태를 확인합니다.

sc query TermService
sc start TermService

PowerShell에서는 다음처럼 확인할 수 있습니다.

Get-Service TermService
Start-Service TermService
Set-Service TermService -StartupType Automatic

RDP 허용 설정

서비스가 실행 중이어도 RDP 연결 자체가 비활성화되어 있으면 접속할 수 없습니다. 관리자 PowerShell에서 다음 값을 확인합니다.

Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' |
  Select-Object fDenyTSConnections

fDenyTSConnections 값이 1이면 원격 연결 거부 상태입니다. 허용하려면 0으로 바꿉니다.

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' \
  -Name 'fDenyTSConnections' -Value 0

CMD만 가능한 환경에서는 다음 명령으로 처리할 수 있습니다.

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" ^
  /v fDenyTSConnections /t REG_DWORD /d 0 /f

Windows Defender Firewall 확인

기본 RDP 방화벽 그룹을 활성화합니다. 직접 포트 하나만 여는 것보다 Windows가 제공하는 Remote Desktop rule group을 쓰는 편이 관리하기 쉽습니다.

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Get-NetFirewallRule -DisplayGroup "Remote Desktop" |
  Select-Object DisplayName, Enabled, Profile

netsh 환경에서는 다음 명령을 사용할 수 있습니다.

netsh advfirewall firewall set rule group="Remote Desktop" new enable=Yes

도메인, 프라이빗, 퍼블릭 프로필 중 현재 네트워크 프로필에 맞는 rule이 켜져 있는지도 확인합니다.

Get-NetConnectionProfile

3389 리스너 확인

서비스와 방화벽이 정상이어도 서버가 3389를 실제로 listen하지 않으면 접속할 수 없습니다.

netstat -ano | findstr ":3389"
Get-NetTCPConnection -LocalPort 3389 -State Listen

포트가 다른 값으로 변경된 환경이라면 레지스트리에서 RDP 포트를 확인합니다.

Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
  Select-Object PortNumber

운영 서버에서 RDP 포트를 바꾸는 것은 관리 복잡도를 키울 수 있으므로, 이미 변경된 환경을 진단하는 용도로만 먼저 확인하는 것이 좋습니다.

사용자 권한과 NLA 확인

Administrator가 아닌 일반 계정으로 접속하려면 해당 사용자가 Remote Desktop Users 그룹에 있거나 적절한 정책 권한을 가져야 합니다.

net localgroup "Remote Desktop Users"
net localgroup "Remote Desktop Users" domain\username /add

Network Level Authentication(NLA)이 켜져 있는데 클라이언트가 오래됐거나 도메인/암호 상태가 꼬인 경우 인증 단계에서 실패할 수 있습니다. 보안상 NLA는 켜두는 것이 기본이지만, 장애 원인 분리 중에는 정책과 클라이언트 호환성을 확인해야 합니다.

Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
  Select-Object UserAuthentication

이벤트 로그 확인

접속 실패가 반복되면 이벤트 로그에서 인증 실패, 라이선스 문제, 서비스 오류를 확인합니다.

Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" -MaxEvents 30 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message

Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" -MaxEvents 30 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message

원격으로 복구할 수 있는 경우

RDP는 막혔지만 WinRM이나 다른 관리 채널이 살아 있다면 PowerShell Remoting으로 RDP 설정을 복구할 수 있습니다.

Enter-PSSession -ComputerName server.example.com
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' `
  -Name 'fDenyTSConnections' -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Restart-Service TermService -Force

WinRM 자체가 필요한 작업이라면 Enable-PSRemoting은 RDP가 아니라 PowerShell Remoting을 켜는 명령이라는 점을 구분해야 합니다. RDP 복구 경로로 WinRM을 사용할 수는 있지만 두 기능은 같은 것이 아닙니다.

확인 순서 정리

실무에서는 다음 순서가 가장 빠릅니다. 클라이언트에서 Test-NetConnection -Port 3389으로 네트워크를 보고, 서버 콘솔에서 TermService, fDenyTSConnections, 방화벽 rule group, 3389 listener, 사용자 그룹, 이벤트 로그를 차례대로 확인합니다. 이 순서대로 보면 네트워크 문제와 서버 내부 설정 문제를 섞지 않고 분리할 수 있습니다.

Microsoft의 일반 RDP troubleshooting 문서도 같은 방향으로 포트 접근성과 방화벽 확인을 먼저 보라고 안내합니다. 최신 Windows Server 세부 동작은 Microsoft Learn RDP troubleshooting 문서를 함께 확인하세요.

BGM EVER