안녕하세요. 비전 IDC 기술팀입니다.
Windows의 원격 데스크톱(RDP)은 기본적으로 TCP 3389 포트를 사용합니다. 인터넷에 공개된 서버의 3389 포트는 자동화된 스캐너와 무차별 대입(brute-force) 로그인 시도의 주요 대상이 되기 때문에, 이벤트 로그에 로그인 실패 기록이 계속 쌓이거나 불필요한 인증 요청으로 서버 자원이 소모되는 경우가 많습니다.
이 문서에서는 Windows 서버의 원격 데스크톱 수신 포트를 다른 번호로 변경하는 방법을 설명합니다. 사용할 포트 선택, 방화벽 규칙 추가, 레지스트리 값 변경(레지스트리 편집기와 PowerShell), 원격 데스크톱 서비스 재시작, 변경 결과 확인, 새 포트로 접속하는 방법과 기본 포트로 되돌리는 방법까지 순서대로 진행하겠습니다.
적용 환경
- 운영체제: Windows Server 2016 / 2019 / 2022
- 운영체제: Windows 10 / 11 (원격 데스크톱 호스트 기능이 있는 Pro, Enterprise 등 에디션)
- 서비스명:
TermService(표시 이름: Remote Desktop Services) - 레지스트리 값:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp의PortNumber - 필요 권한: 로컬 관리자(Administrators 그룹) 권한
이 문서에서는 예시로 새 포트 13389와 서버 IP 203.0.113.10을 사용합니다. 두 값 모두 실제 환경에 맞게 바꿔서 입력하십시오.
1. 작업 전 준비와 현재 상태 확인
원격 데스크톱 외 접속 경로 확보
가장 먼저 원격 데스크톱이 동작하지 않아도 서버 화면에 접근할 수 있는 방법을 확인합니다. VPS라면 웹 콘솔(VNC)로 로그인 화면이 열리는지, 전용 서버라면 KVM/IPMI 접속이 가능한지 미리 확인해 두는 것이 좋습니다. 별도 콘솔을 사용할 수 없는 환경이라면 작업 전에 비전 IDC 기술지원에 문의하여 문제가 생겼을 때의 복구 방법을 확인하십시오.
가능하다면 이후의 서비스 재시작 단계는 웹 콘솔이나 KVM 화면에서 실행하는 것을 권장합니다. 원격 데스크톱 세션 안에서 서비스를 재시작하면 작업 중인 연결이 끊어지지만, 콘솔 화면에서는 연결이 유지되므로 문제가 생겼을 때 바로 되돌릴 수 있습니다.
현재 RDP 포트 확인
시작 버튼을 마우스 오른쪽 버튼으로 클릭한 뒤 Windows PowerShell(관리자) 또는 터미널(관리자)을 실행합니다. 다음 명령으로 현재 설정된 포트 번호를 확인합니다.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber |
Select-Object PortNumber
변경한 적이 없다면 3389가 표시됩니다. 원격 데스크톱 허용 여부도 함께 확인합니다. fDenyTSConnections 값이 0이면 원격 데스크톱 연결이 허용된 상태입니다.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections |
Select-Object fDenyTSConnections
레지스트리 백업
변경 전에 RDP-Tcp 레지스트리 키를 파일로 내보내 두면 설정을 비교하거나 복원할 때 참고할 수 있습니다. 명령 프롬프트나 PowerShell에서 실행합니다.
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" C:\rdp-tcp-backup.reg
2. 사용할 포트 번호 선택
새 포트는 1024~65535 범위에서 선택합니다. 0~1023 범위는 잘 알려진 서비스용 포트이므로 사용하지 않는 것이 좋으며, 다음 조건도 함께 고려하십시오.
- 서버에서 이미 사용 중인 포트가 아니어야 합니다. 웹 서버, 데이터베이스, 게임 서버 등 운영 중인 프로그램의 포트와 겹치지 않는지 확인합니다.
- Windows는 외부로 나가는 연결에 동적 포트 범위를 사용하며, 일반적인 기본 범위는 49152~65535입니다. 충돌 가능성을 줄이려면 이 범위를 피해 1024~49151 사이에서 고르는 편이 무난합니다.
- 접속하는 사무실이나 사내망 방화벽에서 아웃바운드 포트를 제한하고 있다면, 해당 포트가 허용되는지 확인합니다.
선택한 포트가 사용 중인지 확인합니다. 아무 결과도 출력되지 않으면 해당 포트를 사용하는 연결이나 수신 대기 프로그램이 없는 것입니다.
netstat -ano | findstr :13389
Get-NetTCPConnection -LocalPort 13389 -ErrorAction SilentlyContinue
결과가 출력된다면 마지막 열(또는 OwningProcess)의 PID로 어떤 프로그램이 사용 중인지 확인한 뒤 다른 포트를 선택하십시오.
Get-Process -Id <PID>
현재 서버의 동적 포트 범위는 다음 명령으로 확인할 수 있습니다.
netsh int ipv4 show dynamicport tcp
3. 새 포트 방화벽 인바운드 규칙 추가
포트 번호를 바꾸기 전에 새 포트를 허용하는 방화벽 규칙을 먼저 추가합니다. 순서를 반대로 하면 서비스가 새 포트로 수신을 시작한 순간 방화벽에 막혀 접속이 끊길 수 있습니다. Windows에 기본으로 들어 있는 원격 데스크톱 방화벽 규칙은 3389 포트 기준이므로, 포트를 바꾸면 새 규칙이 반드시 필요합니다.
PowerShell로 규칙 추가
관리자 PowerShell에서 TCP 규칙을 추가합니다. 원격 데스크톱은 UDP 전송도 함께 사용할 수 있으므로, 필요하다면 같은 포트의 UDP 규칙도 추가합니다. UDP가 막혀 있어도 TCP로 접속은 가능합니다.
$port = 13389
New-NetFirewallRule -DisplayName "RDP Custom Port TCP $port" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
# 선택 사항: UDP 전송 허용
New-NetFirewallRule -DisplayName "RDP Custom Port UDP $port" -Direction Inbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
고정 IP에서만 접속한다면 -RemoteAddress 옵션으로 접속 가능한 IP를 제한할 수 있습니다. 포트 변경보다 효과가 큰 보안 설정이지만, 접속 IP가 바뀌면 원격 데스크톱으로 접속할 수 없으므로 콘솔 접속 경로를 반드시 확보한 상태에서 적용하십시오. 아래 198.51.100.20은 예시 주소입니다.
New-NetFirewallRule -DisplayName "RDP Custom Port TCP 13389 (Office)" -Direction Inbound -Protocol TCP -LocalPort 13389 -RemoteAddress 198.51.100.20 -Action Allow -Profile Any
추가된 규칙을 확인합니다.
Get-NetFirewallRule -DisplayName "RDP Custom Port*" |
Get-NetFirewallPortFilter |
Select-Object Protocol, LocalPort
화면에서 규칙 추가
GUI를 사용하려면 Win + R을 누르고 wf.msc를 입력하여 고급 보안이 포함된 Windows Defender 방화벽(Windows Server 2016에서는 고급 보안이 포함된 Windows 방화벽)을 실행합니다.
- 왼쪽에서 인바운드 규칙을 선택하고 오른쪽 작업 창에서 새 규칙을 클릭합니다.
- 규칙 종류에서 포트를 선택합니다.
- TCP와 특정 로컬 포트를 선택하고 새 포트 번호(예: 13389)를 입력합니다.
- 작업에서 연결 허용을 선택합니다.
- 적용할 프로필(도메인, 개인, 공용)을 선택합니다. 인터넷에 직접 연결된 서버는 공용 프로필로 분류되는 경우가 많으므로 공용이 포함되어 있는지 확인합니다.
- 규칙 이름을 알아보기 쉽게 입력하고 마침을 클릭합니다.
UDP 규칙이 필요하다면 같은 과정을 한 번 더 진행하면서 프로토콜만 UDP로 선택합니다. 접속 IP를 제한하려면 생성한 규칙의 속성에서 범위 탭의 원격 IP 주소를 지정합니다.
4. 레지스트리에서 RDP 포트 변경
원격 데스크톱의 수신 포트는 RDP-Tcp 키의 PortNumber 값(DWORD)으로 결정됩니다. 레지스트리 편집기와 PowerShell 중 편한 방법 하나를 사용하면 됩니다.
방법 1. 레지스트리 편집기 사용
Win + R을 누르고regedit를 입력하여 레지스트리 편집기를 실행합니다.- 다음 경로로 이동합니다. 주소 표시줄에 경로를 붙여 넣고 Enter를 눌러도 됩니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp - 오른쪽 목록에서 PortNumber를 두 번 클릭합니다.
- 단위에서 10진수를 먼저 선택합니다. 16진수 상태로 입력하면 전혀 다른 포트 번호가 저장되므로 주의합니다.
- 값 데이터에 새 포트 번호(예: 13389)를 입력하고 확인을 클릭합니다.
방법 2. PowerShell 사용
관리자 PowerShell에서 다음 명령을 실행합니다. PowerShell에서 입력한 숫자는 10진수로 저장됩니다.
$port = 13389
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value $port
저장된 값을 확인합니다.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber |
Select-Object PortNumber
5. 원격 데스크톱 서비스 재시작
레지스트리 값을 바꿔도 이미 실행 중인 원격 데스크톱 서비스는 기존 포트로 계속 수신합니다. 변경 내용을 적용하려면 서비스를 재시작하거나 서버를 재부팅해야 합니다.
PowerShell로 재시작
Restart-Service -Name TermService -Force
-Force는 TermService에 의존하는 서비스(예: Remote Desktop Services UserMode Port Redirector)를 함께 중지하고 재시작하기 위해 필요합니다.
서비스 관리자에서 재시작
Win + R에서 services.msc를 실행한 뒤 Remote Desktop Services를 찾아 마우스 오른쪽 버튼을 클릭하고 다시 시작을 선택합니다. 종속 서비스도 다시 시작할지 묻는 창이 나타나면 예를 선택합니다.
서비스 재시작이 되지 않는 경우
서비스가 중지 중 상태에서 멈추거나 재시작에 실패하면 서버를 재부팅하여 적용합니다. 재부팅 역시 방화벽 규칙과 레지스트리 값을 확인한 후 진행하십시오.
Restart-Computer
6. 변경 결과 확인과 새 포트로 접속
서버에서 수신 포트 확인
웹 콘솔 등으로 서버에 접근할 수 있다면 새 포트로 수신 대기 중인지 확인합니다. LISTENING 상태 또는 Listen 상태가 표시되면 정상입니다.
netstat -ano | findstr :13389
Get-NetTCPConnection -LocalPort 13389 -State Listen
내 PC에서 포트 연결 확인
접속하려는 PC의 PowerShell에서 서버의 새 포트로 TCP 연결이 가능한지 확인합니다. 결과의 TcpTestSucceeded가 True이면 네트워크와 방화벽 경로가 열려 있는 것입니다.
Test-NetConnection -ComputerName 203.0.113.10 -Port 13389
원격 데스크톱 연결(mstsc)로 접속
Win + R에서 mstsc를 실행하고 컴퓨터 입력란에 IP:포트 형식으로 입력합니다. 포트를 생략하면 3389로 접속을 시도하므로 반드시 포트를 함께 입력해야 합니다.
mstsc /v:203.0.113.10:13389
저장해 둔 .rdp 파일이나 원격 접속 관리 프로그램을 사용하고 있다면 주소 항목에 새 포트를 반영해야 합니다. macOS나 모바일의 원격 데스크톱 앱에서도 PC 이름 또는 호스트 입력란에 IP:포트 형식으로 입력합니다.
기존 3389 규칙 정리(선택)
새 포트로 접속이 정상 확인된 후에는 더 이상 사용하지 않는 3389 포트용 기본 원격 데스크톱 인바운드 규칙을 wf.msc에서 사용 안 함으로 설정할 수 있습니다. 규칙 이름은 한국어 Windows에서 "원격 데스크톱"으로, 영문 Windows에서 "Remote Desktop"으로 시작합니다. 서비스가 이미 3389로 수신하지 않으므로 필수 작업은 아니며, 나중에 기본 포트로 되돌릴 계획이 있다면 그대로 두어도 됩니다.
7. 접속되지 않을 때 확인할 사항
| 증상 | 가능한 원인 | 확인 방법 | 해결 방향 |
|---|---|---|---|
| 새 포트로 접속 시 시간 초과 | 방화벽 규칙 누락, 프로필 불일치, 원격 IP 제한 | 콘솔에서 Get-NetFirewallRule 확인, 내 PC에서 Test-NetConnection |
콘솔로 접속하여 TCP 규칙과 적용 프로필, 범위 설정을 수정합니다. |
| 서버에서 새 포트가 수신 대기하지 않음 | 서비스 미재시작, 16진수로 값 입력 | Get-ItemProperty로 PortNumber 값 확인, netstat -ano |
값을 10진수로 다시 입력하고 서비스를 재시작하거나 재부팅합니다. |
| 서비스가 시작되지 않음 | 다른 프로그램이 같은 포트를 이미 사용 중 | 이벤트 뷰어의 시스템 로그, netstat -ano의 PID 확인 |
사용하지 않는 다른 포트로 변경하고 방화벽 규칙도 맞춰 수정합니다. |
| 예전 주소로만 접속을 시도함 | mstsc 기록이나 .rdp 파일에 포트 미반영 | 컴퓨터 입력란의 주소 형식 확인 | IP:포트 형식으로 다시 입력합니다. |
| 내 PC에서만 접속되지 않음 | 사무실·사내망의 아웃바운드 포트 제한 | 다른 네트워크(예: 모바일 테더링)에서 접속 시도 | 네트워크 관리자에게 포트 허용을 요청하거나 허용된 포트로 변경합니다. |
원격 데스크톱으로 전혀 접속할 수 없다면 VPS 웹 콘솔(VNC) 또는 전용 서버의 KVM/IPMI로 로그인하여 위 항목을 점검하거나, 다음 단계의 방법으로 기본 포트로 되돌리십시오.
8. 기본 포트 3389로 되돌리기
기본 포트로 되돌리려면 3389 포트가 방화벽에서 허용되어 있는지 먼저 확인한 뒤 PortNumber를 3389로 변경하고 서비스를 재시작합니다. 기본 원격 데스크톱 규칙을 사용 안 함으로 설정했다면 다시 사용으로 바꾸거나 아래처럼 규칙을 추가합니다.
# 3389 허용 규칙이 없는 경우에만 추가
New-NetFirewallRule -DisplayName "RDP Default Port TCP 3389" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow -Profile Any
# 포트를 3389로 변경
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 3389
# 서비스 재시작(현재 원격 연결이 끊어집니다)
Restart-Service -Name TermService -Force
3389 포트로 접속이 확인되면 앞에서 추가한 사용자 지정 포트 규칙을 삭제합니다.
Remove-NetFirewallRule -DisplayName "RDP Custom Port*"
9. 관련 비전 IDC 기술자료와 공식 참고자료
관련 비전 IDC 기술자료
- 원격 데스크톱 접속 방법 — mstsc로 서버에 접속하는 기본 방법을 확인할 수 있습니다.
- 원격 데스크톱 로그인 계정 비밀번호 변경 방법 — 포트 변경과 함께 강력한 비밀번호로 교체할 때 참고할 수 있습니다.
- 윈도우 무차별 대입 공격 대처 — 로그인 실패 시도가 반복될 때의 대응 방법을 확인할 수 있습니다.
공식 참고자료
- Microsoft Learn: Change the listening port for Remote Desktop on your computer — RDP-Tcp PortNumber 변경과 방화벽 규칙 추가 절차
10. 자주 묻는 질문
포트를 바꾸면 무차별 대입 공격을 막을 수 있나요?
3389 포트를 대상으로 하는 무작위 시도는 크게 줄어들지만 완전히 막을 수는 없습니다. 포트 스캔으로 변경된 포트가 발견될 수 있으므로 강력한 비밀번호, 접속 IP 제한, 계정 잠금 정책을 함께 적용하십시오.
레지스트리를 바꿨는데 여전히 3389로 접속됩니다.
원격 데스크톱 서비스를 재시작하거나 서버를 재부팅하기 전까지는 기존 포트로 수신합니다. 서비스 재시작 후 netstat -ano로 수신 포트를 다시 확인하십시오.
포트 변경 후 원격 데스크톱으로 접속할 수 없게 되었습니다.
VPS는 웹 콘솔(VNC), 전용 서버는 KVM/IPMI로 접속하여 방화벽 규칙과 PortNumber 값을 확인하거나 3389로 되돌리십시오. 콘솔 접속이 어려운 경우 비전 IDC 기술지원에 문의해 주시기 바랍니다.
UDP 규칙은 꼭 추가해야 하나요?
필수는 아닙니다. TCP 규칙만으로도 접속할 수 있으며, UDP를 허용하면 네트워크 환경에 따라 화면 전송이 더 원활해질 수 있습니다.
마무리
이번 문서에서는 Windows 서버의 원격 데스크톱 포트를 변경하는 방법을 살펴봤습니다. 핵심 순서는 콘솔 접속 경로 확보 → 새 포트 방화벽 허용 → RDP-Tcp PortNumber 변경 → 서비스 재시작 → 새 포트 접속 확인입니다. 새 포트 접속이 확인되기 전까지는 기존 설정을 정리하지 말고, 문제가 생기면 콘솔에서 3389로 되돌리십시오.
해결되지 않으면 비전 IDC 1:1 문의(https://visionidc.com/submitticket.php) 또는 텔레그램 VISIONIDC24로 문의해 주시기 바랍니다.
