Во всех операционных системах Windows порт по умолчанию, назначенный RDP (протокол удаленного рабочего стола) TCP3389. После Вас включить RDP в винде, TermService
(службы удаленных рабочих столов) начинает прослушивать порт 3389. В этой статье мы покажем вам, как изменить номер порта RDP по умолчанию в настольных версиях Windows (7/8/10/11) и в Windows Server с помощью редактора реестра и PowerShell.
Вы можете изменить номер порта RDP по умолчанию в Windows с 3389 на любой другой. Это чаще всего используется, когда вам нужно скрыть хост RDP/RDS от сканеров портов, которые ищут хосты Windows в сети с открытым портом RDP TCP/3389.
Изменение порта RDP уменьшит шансы эксплуатации уязвимостей RDP (последняя критическая уязвимость в RDP BlueKeep описана в CVE-2019-0708), уменьшит количество Атаки грубой силы RDP (не забывайте регулярно
анализировать журналы подключений RDP), SYN и другие типы атак, когда НЛА отключен. Чаще всего порт RDP меняют на компьютерах с прямым выходом в Интернет (VPS/VDS), или в сетях, где установлен пограничный маршрутизатор. вперед порт 3389/RDP на хост Windows в вашей локальной сети.При выборе нестандартного порта RDP обратите внимание, что не рекомендуется использовать порты в диапазоне 1-1023
(известные порты). Используйте динамический порт в диапазоне портов RPC (49152 to 65535
) или любой порт в диапазоне 1024 to 49151
который не используется другой службой или приложением.
Содержание:
- Как изменить порт удаленного рабочего стола в Windows?
- Изменить номер порта прослушивания RDP с помощью PowerShell
Как изменить порт удаленного рабочего стола в Windows?
В нашем примере мы изменим номер порта, на котором служба удаленного рабочего стола прослушивает 1350. Сделать это:
- Откройте редактор реестра (
regedit.exe
) и перейдите в раздел реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp; - Найди Двойное слово параметр с именем Номер порта. Этот параметр показывает порт, который прослушивает служба удаленного рабочего стола. Значение по умолчанию — 3389 (десятичное);
- Измените значение этого параметра. Я изменил порт RDP на 1350 (Десятичная дробь); Ты можешь изменить параметр реестра с помощью PowerShell:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
- Если на вашем компьютере включен брандмауэр Windows, вам придется создать новое правило, разрешающее входящее подключение к вашему новому порту RDP. Если вы перенастраиваете удаленный хост Windows через RDP, убедитесь, что вы создали разрешающие правила в брандмауэре перед перезапуском TermService, иначе вы потеряете доступ к серверу.;
- Вы можете вручную создать разрешающее правило для нового порта RDP TCP/UDP в консоли брандмауэра Защитника 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 - Перезагрузите компьютер или перезапустите службу удаленного рабочего стола с помощью этой команды:
net stop termservice & net start termservice
- Чтобы подключиться к этому хосту Windows через удаленный рабочий стол, вы должны указать новый порт подключения RDP в своем клиенте mstsc.exe, используя двоеточие следующим образом:
RDPComputerName: 1350
или по IP-адресу:192.168.1.10:1350
или из командной строки:mstsc.exe /v 192.168.1.10:1350
Если вы используете RDCMan для управления несколькими подключениями RDP вы можете указать порт RDP, который вы настроили в Настройки соединения вкладка - Затем вы успешно подключитесь к удаленному рабочему столу компьютера, используя новый порт RDP. Вы можете использовать
netstat –na | Find “LIST”
чтобы убедиться, что ваша служба удаленных рабочих столов прослушивает новый порт.
Обратите внимание, что номер порта UDP RDP также автоматически изменился на 1350 (это можно проверить с помощью инструмента TCPView).
Использовать Команда Test-NetConnection чтобы убедиться, что порт RDP по умолчанию 3389 теперь закрыт (TcpTestSucceeded: False
):
Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded
Теперь вам нужно использовать новый порт 1350 для RDP-подключения.
Если вы хотите изменить номер порта RDP на компьютерах домена, вы можете использовать функции групповой политики. Создать новый объект групповой политики, который будет развернут в Номер порта параметр реестра с новым номером порта RDP для компьютеров домена.
Изменить номер порта прослушивания RDP с помощью PowerShell
Полный сценарий PowerShell для изменения номера порта RDP, создания правила брандмауэра и перезапуска службы удаленного рабочего стола может выглядеть следующим образом:
Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-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 "The number of the RDP port has been changed to $RDPPort " -ForegroundColor Magenta
Вы можете изменить номер порта RDP на удаленном компьютере. Для этого нужно включить WinRM на удаленном компьютере, после чего можно использовать Invoke-Command командлет для подключения к компьютеру:
Invoke-Command -ComputerName wksname112 -ScriptBlock {Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value 1350}
Если вам нужно удаленно изменить номер RDP на нескольких компьютерах в вашем домене AD (в конкретном OU), используйте следующий скрипт (вы можете получить список компьютеров в OU с помощью команды Get-ADComputer командлет):
Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=IT, CN=Computers, CN=NY, DC=woshub, DC=com"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-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 TCP -Action Allow
Restart-Service termservice -force
}
Это руководство по изменению порта RDP по умолчанию подходит для любой версии Windows, начиная с Windows XP (Windows Server 2003) и заканчивая современными сборками Windows 10, Windows 11 и Windows Server 2022.