Cómo cambiar el puerto de Escritorio remoto (RDP) en Windows Server

12 min de lectura 6 vistas 0
Contenido

Sacar el Escritorio remoto del puerto TCP 3389 por defecto es una de las formas más rápidas de reducir la avalancha de intentos de inicio de sesión automáticos que recibe cualquier servidor Windows público. Esta guía explica cómo cambiar el puerto RDP en Windows Server 2016, 2019 y 2022 con PowerShell, abrir el nuevo puerto en el firewall antes del cambio y volver atrás con seguridad desde la consola VNC si algo falla. Los pasos son iguales en los servidores cloud de JUSTG en Johannesburgo, Moscú, Tokio y Seúl y en los servidores dedicados. El ejemplo usa el puerto 40125 y la IP 203.0.113.10.

Cambiar el puerto reduce el ruido de los escáneres, pero no sustituye una contraseña fuerte, la autenticación NLA ni las actualizaciones.

Paso 1: Elige un puerto libre para Escritorio remoto

Escoge un número entre 1025 y 49151 que no use ninguna otra aplicación. Evita el rango 49152-65535, que Windows reserva como rango dinámico para conexiones salientes. Comprueba el puerto RDP actual y que el elegido está libre (el segundo comando no debe devolver nada):

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
Get-NetTCPConnection -LocalPort 40125 -ErrorAction SilentlyContinue

Antes de empezar, abre en otra pestaña la consola VNC desde el área de clientes (Mis productos y servicios → tu servidor → panel de gestión). Si el nuevo puerto no funciona, por ahí podrás volver a entrar.

Paso 2: Abre primero el nuevo puerto RDP en el Firewall de Windows

Permite siempre el nuevo puerto antes de tocar el registro; si no, al reiniciar el servicio te quedarás fuera. RDP usa TCP para la sesión y UDP para mejorar la experiencia en enlaces con mucha latencia, así que crea las dos reglas:

$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

Si hay otro firewall delante del servidor (por ejemplo, uno físico ante un servidor dedicado), abre también allí el mismo puerto.

Paso 3: Cambia PortNumber en el registro y reinicia TermService

El puerto de escucha de RDP se guarda en el valor PortNumber de la clave RDP-Tcp. Modifícalo y reinicia el servicio Remote Desktop Services. Hace falta -Force porque el servicio UmRdpService depende de él:

$port = 40125
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value $port
Restart-Service -Name TermService -Force
Al reiniciar TermService se corta al instante tu sesión RDP actual; es lo esperado. Ejecuta el comando, espera unos 10 segundos y vuelve a conectar al nuevo puerto.

Paso 4: Conecta con IP:puerto y verifica

En el cliente de Escritorio remoto escribe la dirección del servidor, dos puntos y el puerto. Desde PowerShell puedes probar el puerto y abrir el cliente de una vez:

# 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

Con IPv6, pon la dirección entre corchetes: [2001:db8::10]:40125. Recuerda actualizar los archivos .rdp guardados, tu gestor de contraseñas y la configuración de tus compañeros.

Paso 5: Cierra el puerto 3389 y limita el acceso

Cuando hayas entrado correctamente por el nuevo puerto, desactiva las reglas predeterminadas de Escritorio remoto para que el 3389 deje de estar accesible y, si quieres, limita la nueva regla al rango de IP de tu oficina:

# 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

Paso 6: Revierte desde la consola VNC si te quedas fuera

Si no consigues conectar por el nuevo puerto, abre la consola VNC, inicia sesión y restaura la configuración por defecto:

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

En pocos segundos el Escritorio remoto volverá al 3389. Después repite con calma los pasos 2 a 4, revisando errores en el número de puerto y cualquier firewall externo.

Preguntas frecuentes

¿Hay que reiniciar Windows Server después de cambiar el puerto RDP?

No, basta con reiniciar el servicio TermService. Si el servicio no se deja reiniciar, un reinicio completo también sirve.

Cambié el puerto pero RDP sigue escuchando en el 3389.

Comprueba que ninguna directiva de grupo o herramienta de administración remota sobrescriba el valor y que editaste la clave RDP-Tcp. Luego vuelve a ejecutar los comandos de verificación del paso 4.

¿Un puerto RDP personalizado afecta al rendimiento desde China o África?

No. La latencia depende del enrutamiento, no del número de puerto. Los servidores de JUSTG en Moscú y Johannesburgo usan China Telecom CN2 GIA y los de Tokio el enrutamiento premium de China Telecom, sea cual sea el puerto de RDP.

Si tras cambiar el puerto sigues sin poder acceder por Escritorio remoto, abre un ticket con el soporte técnico de JUSTG indicando el puerto elegido y la salida del paso 4.

¿Fue útil la respuesta?

Tutoriales relacionados

Windows PowerShell PS> Test-NetConnection -ComputerName 203.0.113.10…PS> nc -vz 203.0.113.10 3389PS> Get-Service -Name TermService Windows Server Escritorio remoto no conecta a un VPS Windows Server: solución de problemas RDP Soluciona fallos de Escritorio remoto (RDP) en un VPS Windows Server: puerto 3389, firewall, errores NLA/CredSSP y consola VNC. 14 min de lectura 2 Leer Windows PowerShell PS> Get-WinSystemLocalePS> Get-WinUILanguageOverridePS> Get-WinUserLanguageList Windows Server Cambiar el idioma de Windows Server, la configuración regional y la zona horaria Cambia el idioma de Windows Server con Install-Language o un paquete de idioma y ajusta configuración regional y zona horaria. 13 min de lectura 2 Leer Windows PowerShell PS> Update-HostStorageCachePS> Get-Disk | Select-Object Number, FriendlyName…PS> Get-Partition -DiskNumber 0 | Select-Object P… Windows Server Ampliar la unidad C: en Windows Server tras aumentar el disco e inicializar un disco de datos nuevo Amplía C: en Windows Server tras aumentar el disco, resuelve la partición de recuperación e inicializa un disco de datos nuevo. 13 min de lectura 2 Leer Windows PowerShell PS> Get-NetAdapterPS> Get-NetIPConfiguration -InterfaceAlias "Ether…PS> Get-NetIPInterface -InterfaceAlias "Ethernet"… Windows Server Añadir una IPv4 adicional y configurar IPv6 en Windows Server Añade una IPv4 extra y configura IPv6 en Windows Server con GUI, PowerShell o netsh: SkipAsSource, puerta de enlace, DNS y pruebas. 15 min de lectura 2 Leer