Cuando montas un servidor de juego en un VPS Windows y nadie consigue conectarse, el culpable casi siempre es el mismo: el cortafuegos de Windows está bloqueando el puerto. Aquí va cómo abrirlo con comandos, que es más rápido que ir por los menús y, sobre todo, se puede copiar y pegar sin equivocarse.
En un VPS no hay router que configurar. Olvídate del «port forwarding» que verás en los tutoriales: eso es para servidores en casa. Tu VPS tiene IP pública propia, así que lo único que hay entre tus jugadores y tu servidor es el cortafuegos de Windows.
Abre PowerShell como administrador
Conéctate a tu VPS por Escritorio Remoto (aquí explicamos cómo), haz clic derecho en el botón de Inicio y elige Terminal (Administrador) o Windows PowerShell (Administrador). Si no pone «administrador», los comandos fallarán con un error de permisos.
Abrir un puerto, TCP y UDP, entrada y salida
Este ejemplo abre el 30120; cambia el número y el nombre por los tuyos. Pega el bloque entero de una vez:
$puerto = 30120
$nombre = "Servidor de juego"
New-NetFirewallRule -DisplayName "$nombre TCP $puerto (entrada)" -Direction Inbound -Protocol TCP -LocalPort $puerto -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nombre UDP $puerto (entrada)" -Direction Inbound -Protocol UDP -LocalPort $puerto -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nombre TCP $puerto (salida)" -Direction Outbound -Protocol TCP -LocalPort $puerto -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nombre UDP $puerto (salida)" -Direction Outbound -Protocol UDP -LocalPort $puerto -Action Allow -Profile Any
Qué hace cada parte, por si quieres adaptarlo:
-Direction Inboundes lo que llega de fuera (lo que de verdad necesitas) yOutboundlo que sale.-ProtocolTCP o UDP. No son intercambiables. Si tu juego usa UDP y solo abres TCP, no entra nadie: es el error más repetido.-LocalPortes el puerto en el que escucha tu servidor.-Profile Anyaplica la regla a los tres perfiles de red (dominio, privada y pública). En un VPS la conexión suele estar en «pública», así que es importante.
¿Hacen falta las de salida? En Windows Server el tráfico saliente está permitido por defecto, así que normalmente no. Están incluidas porque no molestan y porque, si alguien endureció el cortafuegos antes, serán justo lo que faltaba.
Para un rango de puertos
New-NetFirewallRule -DisplayName "Juego UDP 7777-7778 (entrada)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any
También vale una lista separada por comas: -LocalPort 27015,27020.
Comprobar que han quedado bien
Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
$f = $_ | Get-NetFirewallPortFilter
[pscustomobject]@{
Regla = $_.DisplayName
Activa = $_.Enabled
Sentido = $_.Direction
Accion = $_.Action
Protocolo= $f.Protocol
Puerto = $f.LocalPort
}
} | Format-Table -AutoSize
Tienen que salir las cuatro reglas, con Enabled en True y Action en Allow.
Comprobar que tu servidor está escuchando
Abrir el puerto no sirve de nada si detrás no hay nada escuchando. Con el servidor de juego arrancado:
Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint -LocalPort 30120
Si no devuelven nada, el problema no es el cortafuegos: tu servidor no ha arrancado, se ha caído o está configurado en otro puerto. Mira la consola del juego antes de seguir tocando reglas.
Borrar una regla
Remove-NetFirewallRule -DisplayName "Servidor de juego TCP 30120 (entrada)"
Si prefieres hacerlo con el ratón
Pulsa Win + R, escribe wf.msc y Enter. En el panel izquierdo elige Reglas de entrada → Nueva regla… en la columna derecha → Puerto → elige TCP o UDP y escribe el número en Puertos locales específicos → Permitir la conexión → deja marcados los tres perfiles → ponle nombre y finaliza. Repite el proceso para el otro protocolo: una regla solo cubre TCP o UDP, nunca los dos.
Sigue sin funcionar
Repasa en este orden, que es el que descarta antes:
- ¿Está el servidor escuchando? Los dos comandos de arriba. Es el fallo más común con diferencia.
- ¿Has abierto el protocolo correcto? La mitad de los juegos van por UDP. Abre TCP y UDP y te quitas la duda.
- ¿Lo estás probando desde el propio servidor? Desde dentro siempre funciona. Prueba desde otra conexión o pídele a alguien que entre.
- Filtrado AntiDDoS. En la ficha de tu servicio, pestaña Seguridad, están los filtros de la red. Si tienes filtros creados a mano, asegúrate de que incluyen el puerto y el protocolo de tu juego.
Nunca desactives el cortafuegos entero para «probar». Un VPS con IP pública recibe escaneos automáticos a los pocos minutos de encenderse. Abre los puertos que necesitas y deja cerrado el resto.