Как изменить порт RDP (удаленного рабочего стола) в Windows Server
Перенос удаленного рабочего стола со стандартного TCP 3389 на другой порт — один из самых быстрых способов сократить поток автоматических попыток входа, которые получает любой публичный Windows-сервер. В этой инструкции показано, как изменить порт RDP в Windows Server 2016, 2019 и 2022 через PowerShell, заранее открыть новый порт в брандмауэре и безопасно откатиться через VNC-консоль, если что-то пойдет не так. Все шаги одинаковы для облачных серверов JUSTG в Йоханнесбурге, Москве, Токио и Сеуле и для выделенных серверов. В примере используется порт 40125 и IP 203.0.113.10.
Шаг 1: Выберите свободный порт для удаленного рабочего стола
Возьмите номер от 1025 до 49151, который не занят другими программами. Диапазон 49152–65535 Windows использует как динамический для исходящих соединений — его лучше избегать. Проверьте текущий порт RDP и убедитесь, что выбранный порт свободен (вторая команда не должна ничего вывести):
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
Get-NetTCPConnection -LocalPort 40125 -ErrorAction SilentlyContinueПеред началом откройте в соседней вкладке VNC-консоль из клиентской зоны (Мои продукты и услуги → ваш сервер → панель управления). Если новый порт не заработает, через нее вы вернетесь на сервер.
Шаг 2: Сначала откройте новый порт RDP в брандмауэре Windows
Всегда разрешайте новый порт до изменения реестра, иначе после перезапуска службы вы потеряете доступ. RDP передает сеанс по TCP, а UDP использует для улучшения работы на каналах с высокой задержкой, поэтому создайте оба правила:
$port = 40125
New-NetFirewallRule -DisplayName "RDP custom TCP $port" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow
New-NetFirewallRule -DisplayName "RDP custom UDP $port" -Direction Inbound -Protocol UDP -LocalPort $port -Action AllowЕсли перед сервером стоит другой межсетевой экран (например, аппаратный на выделенном сервере), откройте тот же порт и там.
Шаг 3: Измените PortNumber в реестре и перезапустите TermService
Порт RDP хранится в параметре PortNumber ключа RDP-Tcp. Измените его и перезапустите службу Remote Desktop Services. Ключ -Force нужен, потому что от нее зависит служба UmRdpService:
$port = 40125
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value $port
Restart-Service -Name TermService -ForceШаг 4: Подключитесь по адресу IP:порт и проверьте работу
В клиенте удаленного рабочего стола укажите адрес сервера, двоеточие и номер порта. В PowerShell можно сразу проверить порт и запустить клиент:
# On the server (VNC console or new RDP session)
Get-NetTCPConnection -LocalPort 40125 -State Listen
# On your PC
Test-NetConnection -ComputerName 203.0.113.10 -Port 40125
mstsc /v:203.0.113.10:40125Для IPv6 заключите адрес в квадратные скобки: [2001:db8::10]:40125. Не забудьте обновить сохраненные .rdp-файлы, менеджеры паролей и настройки коллег.
Шаг 5: Закройте порт 3389 и ограничьте доступ
Когда вход на новом порту проверен, отключите стандартные правила удаленного рабочего стола, чтобы 3389 больше не был доступен, и при желании разрешите новый порт только для адресов вашего офиса:
# Built-in Remote Desktop rules (language-independent group ID)
Disable-NetFirewallRule -Group "@FirewallAPI.dll,-28752"
# Optional: only allow your own IP to reach the new port
Set-NetFirewallRule -DisplayName "RDP custom TCP 40125" -RemoteAddress 198.51.100.0/24Шаг 6: Откат через VNC-консоль, если доступ потерян
Если подключиться на новый порт не получается, откройте VNC-консоль, войдите и верните стандартные настройки:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 3389
Enable-NetFirewallRule -Group "@FirewallAPI.dll,-28752"
Restart-Service -Name TermService -ForceЧерез несколько секунд RDP снова будет работать на 3389. Затем аккуратно повторите шаги 2–4, обращая внимание на опечатки в номере порта и на внешний брандмауэр.
Частые вопросы
Нужно ли перезагружать Windows Server после смены порта RDP?
Нет, достаточно перезапустить службу TermService. Если служба не перезапускается, можно перезагрузить сервер целиком.
Порт изменен, но RDP по-прежнему слушает 3389.
Проверьте, не перезаписывает ли значение групповая политика или средство удаленного управления, и убедитесь, что вы правили именно ключ RDP-Tcp. Затем снова выполните команды проверки из шага 4.
Влияет ли нестандартный порт RDP на скорость из Китая или Африки?
Нет. Задержка зависит от маршрутизации, а не от номера порта. Серверы JUSTG в Москве и Йоханнесбурге подключены к China Telecom CN2 GIA, а в Токио — к премиальной маршрутизации China Telecom, на каком бы порту ни работал RDP.
Если после смены порта подключиться по RDP так и не удалось, создайте тикет в техподдержку JUSTG, указав выбранный порт и вывод команд из шага 4.