Смена RDP-порта в Windows без перезагрузки сервера
Короткий скрипт PowerShell меняет RDP-порт в Windows, создаёт нужное правило в брандмауэре и перезапускает службу удалённых рабочих столов, причём без перезагрузки сервера.
В этом руководстве показано, как через PowerShell изменить порт удалённого рабочего стола (RDP) в Windows, например на Windows Server, как соответствующим образом настроить брандмауэр Windows и перезапустить службу удалённых рабочих столов. Перезагружать весь сервер для этого не нужно.
Зачем менять RDP-порт?
Стандартный порт для удалённого рабочего стола — TCP 3389, и именно его круглосуточно сканируют автоматические боты. Любой сервер Windows, который стоит в интернете с открытым портом 3389, за считаные часы набирает сотни неудачных попыток входа. Это не только нагружает систему: при активной политике блокировки учётных записей из-за таких попыток блокируется и ваша собственная учётная запись.
Изменённый порт выводит сервер из этих массовых сканирований. Однако он не заменяет остальные меры защиты: надёжный пароль, включённая проверка подлинности на уровне сети (NLA) и правило файрвола, ограничивающее RDP вашим собственным IP-адресом, остаются такими же важными.
Что потребуется
- Система Windows с включённым удалённым рабочим столом, например Windows Server 2022 или Windows Server 2025
- Права администратора в этой системе
- Свободный порт выше 1024, в примере используется 33445
- Доступ к KVM-консоли в личном кабинете как запасной путь на случай, если соединение после изменения заработает не сразу
Запуск PowerShell от имени администратора
Сначала откройте Windows PowerShell от имени администратора. Для этого щёлкните в меню «Пуск» правой кнопкой мыши по пункту «Windows PowerShell» и выберите «Запуск от имени администратора». Без повышенных прав скрипт не сможет изменить ни реестр, ни правила брандмауэра.
Скрипт PowerShell для смены RDP-порта
Вставьте следующий скрипт в PowerShell. Номер порта в первой строке заранее замените на нужный вам:
# Порт 33445 приведён только как пример. Вы можете использовать любой свободный порт.
$newPort = 33445
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Set-ItemProperty -Path $regPath -Name 'PortNumber' -Value $newPort
if (-not (Get-NetFirewallRule -DisplayName "RDP Port $newPort" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule `
-DisplayName "RDP Port $newPort" `
-Direction Inbound `
-Protocol TCP `
-LocalPort $newPort `
-Action Allow
}
Restart-Service -Name TermService -Force
Write-Host "The RDP port has been changed."
Что делает скрипт по шагам
- Задаёт новый номер порта в переменной
$newPort. - Записывает это значение в параметр реестра
PortNumberв разделеHKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. - Создаёт в брандмауэре Windows подходящее правило, которое разрешает входящие TCP-соединения на новом порту. Если правило уже существует, повторно оно не создаётся.
- Перезапускает службу удалённых рабочих столов (
TermService), чтобы изменение вступило в силу сразу.
Подключение после изменения
При перезапуске службы все текущие RDP-соединения немедленно разрываются. Это нормально. Для нового подключения в RDP-клиенте указывают уже не только адрес сервера, а сочетание адреса и порта:
<IP-адрес>:<новый-порт>
Для нашего примера это выглядит так:
192.168.1.100:33445
Проверка текущего RDP-порта
Какой порт задан сейчас, в любой момент можно прочитать прямо из реестра:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
Что стоит сделать после этого
- Настроить внешний файрвол: Если перед сервером стоит ещё один, внешний файрвол, новый порт нужно открыть и там. Иначе сервер останется недоступным, несмотря на корректное правило Windows.
- Проверить старое правило для порта 3389: Существующее правило «Удаленный рабочий стол» остаётся активным. Отключите его, если порт 3389 больше не должен быть доступен.
- Ограничить доступ: Эффективнее всего ограничить RDP в файрволе вашим собственным IP-адресом. Тогда все автоматизированные атаки уходят в никуда.
- Учётная запись уже заблокирована? Если ваша учётная запись оказалась заблокирована из-за предыдущих попыток взлома, поможет наше руководство Устранение ошибки RDP «Учётная запись заблокирована».
Частые вопросы
Нужно ли перезагружать сервер после смены RDP-порта?
Какой порт выбрать для RDP?
Как подключиться после изменения?
Действительно ли другой RDP-порт защищает от атак?
После изменения сервер стал недоступен, что делать?
2026 KernelHost GmbH. Все права защищены. Эта инструкция охраняется авторским правом. Публикация на других сайтах, в том числе частично или в изменённом виде, без нашего письменного согласия не разрешается. Цитирование с указанием источника и активной ссылкой мы приветствуем.

