Как изменить порт RDP (удаленного рабочего стола) в Windows Server

12 мин чтения 3 просмотров 0
Содержание

Перенос удаленного рабочего стола со стандартного TCP 3389 на другой порт — один из самых быстрых способов сократить поток автоматических попыток входа, которые получает любой публичный Windows-сервер. В этой инструкции показано, как изменить порт RDP в Windows Server 2016, 2019 и 2022 через PowerShell, заранее открыть новый порт в брандмауэре и безопасно откатиться через VNC-консоль, если что-то пойдет не так. Все шаги одинаковы для облачных серверов JUSTG в Йоханнесбурге, Москве, Токио и Сеуле и для выделенных серверов. В примере используется порт 40125 и IP 203.0.113.10.

Смена порта снижает шум от сканеров, но не заменяет надежный пароль, проверку подлинности на уровне сети (NLA) и своевременные обновления.

Шаг 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
Перезапуск TermService сразу разрывает текущий RDP-сеанс — это нормально. Выполните команду, подождите около 10 секунд и подключитесь уже на новый порт.

Шаг 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.

Помог ли вам данный ответ?

Похожие руководства

Windows PowerShell PS> Test-NetConnection -ComputerName 203.0.113.10…PS> nc -vz 203.0.113.10 3389PS> Get-Service -Name TermService Windows Server Не удается подключиться по RDP к Windows Server VPS: диагностика удаленного рабочего стола Не работает RDP на Windows Server VPS? Проверка порта 3389, брандмауэра, ошибок NLA/CredSSP и восстановление через VNC-консоль. 13 мин чтения 2 Читать Windows PowerShell PS> Get-WinSystemLocalePS> Get-WinUILanguageOverridePS> Get-WinUserLanguageList Windows Server Как сменить язык интерфейса Windows Server, системный языковой стандарт и часовой пояс Смена языка интерфейса Windows Server через Install-Language или языковой пакет, настройка языкового стандарта и часового пояса. 12 мин чтения 2 Читать Windows PowerShell PS> Update-HostStorageCachePS> Get-Disk | Select-Object Number, FriendlyName…PS> Get-Partition -DiskNumber 0 | Select-Object P… Windows Server Как расширить диск C: в Windows Server после увеличения диска и инициализировать новый диск Расширение диска C: в Windows Server после апгрейда, удаление мешающего раздела восстановления и инициализация нового диска. 12 мин чтения 2 Читать Windows PowerShell PS> Get-NetAdapterPS> Get-NetIPConfiguration -InterfaceAlias "Ether…PS> Get-NetIPInterface -InterfaceAlias "Ethernet"… Windows Server Как добавить дополнительный IPv4 и настроить IPv6 в Windows Server Добавление IPv4 и настройка IPv6 в Windows Server через GUI, PowerShell и netsh: SkipAsSource, шлюз, DNS и проверка связи. 14 мин чтения 2 Читать