Cambiar el puerto RDP en Windows sin reiniciar el servidor

Publicado el Actualizado el 4 min de lectura

Con un script corto de PowerShell cambias el puerto RDP en Windows, creas la regla de firewall correspondiente y reinicias el servicio de Escritorio remoto, todo sin reiniciar el servidor.

En esta guía te mostramos cómo cambiar el puerto del Escritorio remoto (RDP) en Windows mediante PowerShell, por ejemplo en un Windows Server, cómo ajustar el firewall de Windows en consecuencia y cómo reiniciar el servicio de Escritorio remoto. Para ello no hace falta reiniciar todo el servidor.

¿Por qué conviene cambiar el puerto RDP?

El puerto predeterminado del Escritorio remoto es el TCP 3389, y es justo ese el que los bots automatizados escanean las 24 horas del día. Cualquier servidor Windows expuesto a Internet con el puerto 3389 abierto acumula en pocas horas cientos de intentos de inicio de sesión fallidos. Eso no solo carga el sistema: con una directiva de bloqueo de cuentas activa, acaba bloqueando también tu propia cuenta.

Un puerto distinto saca a tu servidor de esos escaneos masivos. Sin embargo, no sustituye a ninguna de las demás medidas de protección: una contraseña robusta, la autenticación a nivel de red (NLA) activada y una regla de firewall que limite RDP a tu propia dirección IP siguen siendo igual de importantes.

Requisitos

  • Un sistema Windows con el Escritorio remoto activado, por ejemplo Windows Server 2022 o Windows Server 2025
  • Permisos de administrador en ese sistema
  • Un puerto libre por encima de 1024, en el ejemplo usamos el 33445
  • Acceso a la consola KVM de tu área de cliente como vía de vuelta, por si la conexión no funciona enseguida después del cambio

Abrir PowerShell como administrador

Abre primero Windows PowerShell como administrador. Para ello haz clic con el botón derecho en "Windows PowerShell" dentro del menú Inicio y elige "Ejecutar como administrador". Sin permisos elevados, el script no puede modificar ni el registro ni el firewall.

El script de PowerShell para cambiar el puerto RDP

Pega el siguiente script en PowerShell. Antes, ajusta el número de puerto de la primera línea al puerto que quieras usar:

# El puerto 33445 es solo un ejemplo. Puedes usar cualquier puerto libre.

$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."

Qué hace el script en detalle

  1. Define el nuevo número de puerto en la variable $newPort.
  2. Aplica ese valor a la entrada de registro PortNumber en HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp.
  3. Crea en el firewall de Windows una regla que permite las conexiones TCP entrantes por el nuevo puerto. Si la regla ya existe, no se vuelve a crear.
  4. Reinicia el servicio de Escritorio remoto (TermService) para que el cambio surta efecto de inmediato.

Volver a conectarte después del cambio

El reinicio del servicio corta al instante todas las conexiones RDP activas. Es normal. Para la nueva conexión ya no indicas en el cliente RDP solo la dirección del servidor, sino la combinación de dirección y puerto:

<Dirección-IP>:<Nuevo-Puerto>

En nuestro ejemplo queda así:

192.168.1.100:33445

Comprobar el puerto RDP actual

Puedes consultar en cualquier momento el puerto configurado leyéndolo directamente del registro:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

Qué te queda por hacer después

  • Ajustar el firewall previo: si delante de tu servidor hay además un firewall externo, el nuevo puerto también tiene que estar abierto allí. De lo contrario no llegas al servidor, aunque la regla de Windows sea correcta.
  • Revisar la regla antigua del puerto 3389: la regla existente "Escritorio remoto" sigue activa. Desactívala si el puerto 3389 ya no debe estar accesible.
  • Restringir el acceso: lo más eficaz es limitar RDP en el firewall a tu propia dirección IP. Así, todos los ataques automatizados se quedan en nada.
  • ¿La cuenta ya está bloqueada? Si los intentos de ataque anteriores ya han bloqueado tu cuenta de usuario, te ayuda nuestra guía Solucionar el error RDP "cuenta bloqueada".

Preguntas frecuentes

¿Tengo que reiniciar el servidor después de cambiar el puerto RDP?
No. Basta con reiniciar el servicio TermService, y eso es justo lo que hace el script de forma automática. Eso sí, todas las sesiones RDP abiertas se desconectan.
¿Qué puerto debería elegir para RDP?
Elige un puerto libre por encima de 1024, por ejemplo el 33445. Evita los puertos que ya usan otros servicios y apunta el número, porque lo vas a necesitar en cada conexión.
¿Cómo me conecto después del cambio?
Indica en el cliente RDP la dirección del servidor junto con el nuevo puerto, es decir, en el formato dirección IP:puerto. En nuestro ejemplo sería 192.168.1.100:33445.
¿Un puerto RDP distinto protege realmente frente a los ataques?
Un puerto modificado saca a tu servidor de los escaneos masivos dirigidos al puerto 3389 y reduce mucho el número de intentos de inicio de sesión. Aun así, no sustituye a una contraseña robusta, a la autenticación a nivel de red (NLA) ni a una restricción por IP en el firewall.
Después del cambio ya no llego al servidor, ¿qué puedo hacer?
Casi siempre falta abrir el nuevo puerto en un firewall previo. Conéctate al servidor por la consola KVM de tu área de cliente y comprueba allí la regla de firewall y el valor del puerto guardado en el registro.

Windows Server Windows RDP Puerto RDP Escritorio remoto PowerShell Firewall Seguridad del servidor