Изменить номер RDP порта 3389 удаленного рабочего стола в Windows

Изменить номер RDP порта 3389 удаленного рабочего стола в Windows

По умолчанию во всех операционных системах Windows для подключения по протоколу RDP (Remote Desktop Protocol / Удаленный рабочий стол) использует порт TCP 3389. После того, как вы включили RDP доступ в Windows, служба TermService (Remote Desktop Services) начинает слушать на порту 3389. В этой статье мы покажем, как изменить стандартный номер RDP порта в дестопных редакциях Windows (7/8/10/11) и Windows Server.

Обратите внимание, что в современных версиях Windows для удаленного рабочего стола используется также протокол UDP с тем же номером порта 3389. Служба RDP (termservice) в Windows слушает на tcp и udp порту 3389

Вы можете изменить номер стандартного порта RDP в Windows с 3389 на любой другой. Чаще всего это используется, когда нужно спрятать ваш RDP/RDS хост от автоматических сканеров портов, которые ищут в сети хосты Windows с открытым стандартным RDP портом 3389. Смена RDP порта позволит уменьшить вероятность эксплуатации RDP уязвимостей (последняя критическая уязвимость в RDP BlueKeep описана в CVE-2019-0708), уменьшить количество попыток удалённого подбора паролей по RDP (не забывает периодически анализировать логи RDP подключений), SYN и других типов атак (особенно при отключенном NLA). Чаще всего RDP порт меняют на компьютерах с прямым подключением к интернету (VPS/VDS), или в сетях, где пограничный маршрутизатор перенаправляет порт 3389/RDP в локальную сеть на компьютер/сервер с Windows.

Несмотря на смену порта, нежелательно выставлять открытый RDP порт в интернет. Сканеры портов позволяют по сигнатуре понять, что на новом порту находится RDP Listener. Если вы хотите открыть RDP доступ к компьютеру в своей сети, лучше использовать такие технологии подключения, как VPN, RD Web Access, RD Gateway и другие

Если вы решили использовать нестандартный номер порта для RDP, обратите внимание, что нежелательно использовать номера портов в диапазоне от 1 до 1023 (известные порты). Используйте динамический порт из RPC диапазона (от 49152 до 65535), или любой портов в диапазоне от 1024 до 49151, который не используется другим сервисом или приложением.

Изменить номер RDP порта по-умолчанию в Windows

В нашем примере мы изменим номер порта, на котором ожидает подключения служба Remote Desktop на 1350. Для этого:

  1. Откройте редактор реестра (regedit.exe) и перейдите в ветку HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp;
  2. Найдите DWORD параметр реестра с именем PortNumber.. В этом параметре указан порт, на котором ожидает подключения служба Remote Desktop. Значение по умолчанию – 3389 (decimal);
  3. Измените значение этого порта. Я изменил RDP порт на 1350 в десятичном значении (Deciamal); PortNumber - изменить номер RDP порт в реестре
  4. Если на вашем компьютере включен Windows Firewall, вы должны создать новое правило, разрешающее входящие подключения на новый RDP порт (если вы перенастраиваете удаленный сервер через RDP, создайте разрешающее правило в файерволе до перезапуска службы TermService, иначе вы потеряете доступ к серверу). Вы можете создать разрешающее входящее правило для нового TCP/UDP порта RDP вручную из консоли ‘Брандмауэр Защитника Windows’ (firewall.cpl) или с помощью PowerShell команд:
    New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow
    И:
    New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow
    New-NetFirewallRule правило для RDP подключения на новый порт
  5. Перезагрузите компьютер или перезапустите службу удаленных рабочих столов командой:
    net stop termservice & net start termservice
    перезапустить службу RDP termservice
  6. Теперь для подключения к данному Windows компьютеру по RDP, в клиенте mstsc.exe нужно указывать порт RDP подключения через двоеточие следующим образом:
    Your_Computer_Name:1350
    или по IP адресу
    192.168.1.100:1350
    или из командной строки:
    mstsc.exe /v 192.168.1.100:1350
    mstsc подключение к нестандартному номеру rdp порта
    Если для управления множеством RDP подключений вы используете менеджер RDP подключений RDCMan, новый номер RDP порта подключения можно указать на вкладке “Connection Settings”.d0b8d0b7d0bcd0b5d0bdd0b8d182d18c d0bdd0bed0bcd0b5d180 rdp d0bfd0bed180d182d0b0 3389 d183d0b4d0b0d0bbd0b5d0bdd0bdd0bed0b3d0be d180d0b0d0b1 65d258bf05044
  7. В результате вы успешно подключитесь к рабочему столу удаленного компьютера через новый номер RDP порта (с помощью команды
    nenstat –na | Find “LIST”
    убедитесь, что служба RDP теперь слушает на другом порту). netstat - rdp на другом порту

Обратите внимание, что номер UDP порта RDP также изменился на 1350 (проще всего проверить это с помощью утилиты TCPView).

tcpview просмотр что RDP теперь слушает на новом tcp и udp портах

С помощью команды Test-NetConnection, проверьте что старый RDP порт теперь закрыт (
TcpTestSucceeded : False
):

Test-NetConnection 192.168.13.202 -port 3389 |select TcpTestSucceeded

И для RDP подключения теперь нужно использовать новый порт 1350.

проверить новый rdp tcp порт в windows с помощью powershell

Если вы хотите изменить номер RDP порта на компьютерах в домене, можно воспользоваться групповыми политиками. Создайте новую GPO, которая распространит параметр реестра PortNumber с новым значением RDP порта на компьютеры домена.

PowerShell скрипт для смены номера RDP порта в Windows

Полный код PowerShell скрипт для смены номера RDP порта, создания правила в брандмауэре и перезапуска службы RDP может выглядеть так:

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TCP" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host "Номер RDP порта изменен на $RDPPort " -ForegroundColor Magenta

Вы можете удаленно изменить номер порта на компьютере. Для этого на удаленном компьютере должен быть настроен WinRM, тогда для подключения к компьютеру можно использовать командлет Invoke-Command:

Invoke-Command -ComputerName PC1name -ScriptBlock {Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TCP" -Name PortNumber -Value 1350}

Если нужно изменить номер RDP на нескольких компьютерах в домене AD (определенной OU), используйте такой скрипт (список компьютеров в OU можно получить с помощью Get-ADComputer):

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=DMZ,CN=Computers,DC=winitpro,DC=ru"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TCP" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

Это инструкция по смене стандартного RDP порта подойдёт для любой версии Windows, начиная с Windows XP (Windows Server 2003) и заканчивая Windows 11 (Windows Server 2022).

Windows 10
Изменить номер RDP порта 3389 удаленного рабочего стола в Windows