Cómo abrir puertos en el Firewall de una VPS Windows: guía paso a paso
Aprende a abrir puertos en el Firewall de Windows Server con pasos claros, comandos listos para usar y verificación de funcionamiento real.
Cuando instalas una aplicación en tu VPS Windows —un servidor web, una base de datos, un panel de administración o un servidor de juegos— esta se ejecuta en un puerto específico. Por defecto, el Firewall de Windows Server bloquea las conexiones externas en puertos que no han sido explícitamente habilitados. Sin esa autorización, el servicio solo es accesible localmente, aunque esté funcionando correctamente.
Este tutorial está dirigido a quienes acaban de contratar una VPS Windows y necesitan abrir un puerto concreto para que el servicio sea accesible desde internet. No se requieren conocimientos previos de redes — veremos dos métodos: la interfaz gráfica (más visual) y PowerShell (más rápido, ideal cuando ya conoces el número de puerto).
Requisitos previos
Necesitas una VPS con Windows Server (2019, 2022 o 2025) con acceso administrativo mediante Escritorio Remoto (RDP). Ten a mano el número de puerto que quieres abrir y comprueba si el servicio usa TCP o UDP (en caso de duda, la mayoría de servicios web usan TCP).
Algunos puertos habituales que suelen requerir apertura manual:
80 (TCP) 443 (TCP) 3306 (TCP) 25565 (TCP) El puerto 3389 (RDP) ya viene abierto por defecto — es el que usas para acceder al servidor. No cierres ese puerto sin haber configurado antes un acceso alternativo, o perderás el control remoto de la máquina.
Qué es un puerto y cómo funciona el firewall
Un puerto es un número del 1 al 65535 que identifica qué servicio debe recibir una conexión de red. Cuando alguien accede a http://tuservidor.com, el navegador se conecta al puerto 80 de tu IP. Si el Firewall de Windows no permite tráfico entrante en ese puerto, la conexión se descarta antes de llegar al servidor web.
El Firewall de Windows funciona mediante reglas. Cada regla define: protocolo (TCP o UDP), puerto (o rango), dirección (entrada o salida) y acción (permitir o bloquear). Para abrir un puerto, creas una regla de entrada (inbound) que permita el tráfico en ese puerto específico.
Método 1: Abrir un puerto desde la interfaz gráfica
Este es el camino recomendado si prefieres ver lo que estás haciendo. Todos los pasos se realizan dentro de la VPS, conectado por RDP.
Abre el menú Inicio, escribe wf.msc y pulsa Enter. Se abrirá la consola “Firewall de Windows con seguridad avanzada”.
Este es el panel completo de reglas. No lo confundas con el “Firewall de Windows Defender” simplificado del Panel de Control — en servidores, usa siempre wf.msc.
En el panel izquierdo, haz clic en Reglas de entrada (Inbound Rules). Verás la lista de todas las reglas existentes.
En el panel derecho, haz clic en Nueva regla… (New Rule). Se abrirá el asistente de creación de reglas.
En la primera pantalla del asistente, selecciona Puerto (Port) y haz clic en Siguiente.
La opción “Programa” libera todo el tráfico de un ejecutable concreto — útil en algunos casos, pero menos preciso. “Puerto” es lo que necesitamos cuando conocemos exactamente el número.
Elige TCP o UDP según el protocolo de tu servicio. En “Puertos locales específicos”, escribe el número del puerto — por ejemplo, 8080. Para abrir varios puertos a la vez, sepáralos por coma: 8080,8081,9000. Para un rango, usa guión: 7000-7010.
Haz clic en Siguiente.
Deja seleccionado Permitir la conexión (Allow the connection) y haz clic en Siguiente.
Las otras opciones son para conexiones con IPSec, un escenario que no aplica aquí.
En la pantalla de perfiles, marca Dominio, Privado y Público. En una VPS expuesta a internet, el perfil activo suele ser Público — pero marcar los tres garantiza que la regla funcione en cualquier escenario.
Haz clic en Siguiente.
Asigna un nombre descriptivo a la regla, por ejemplo: Aplicación Web - Puerto 8080. Añade una descripción opcional indicando para qué sirve. Haz clic en Finalizar.
La regla aparece inmediatamente en la lista y ya está activa. No es necesario reiniciar el servidor.
Dentro de seis meses no recordarás para qué sirve el puerto 8743. Incluye siempre en el nombre de la regla qué aplicación usa ese puerto — facilita la auditoría y la eliminación de reglas obsoletas.
Método 2: Abrir un puerto con PowerShell
Cuando ya sabes lo que necesitas, PowerShell lo resuelve en una línea. Abre PowerShell como administrador (clic derecho en el menú Inicio > Windows PowerShell (Administrador)).
Usa el comando New-NetFirewallRule para crear la regla. Ejemplo para abrir el puerto 8080 TCP:
New-NetFirewallRule -DisplayName "Aplicacion Web 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action AllowEl comando devuelve los detalles de la regla creada. Si ves Enabled: True en la salida, está funcionando.
Para abrir un puerto UDP, cambia el protocolo:
New-NetFirewallRule -DisplayName "Servidor Juego 27015" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action AllowPara abrir un rango de puertos:
New-NetFirewallRule -DisplayName "Rango Aplicacion" -Direction Inbound -Protocol TCP -LocalPort 7000-7010 -Action AllowPara varios puertos no consecutivos, pasa un array:
New-NetFirewallRule -DisplayName "Puertos Web" -Direction Inbound -Protocol TCP -LocalPort 80,443,8080 -Action AllowVerificación: ¿el puerto está realmente abierto?
Crear la regla no garantiza que el servicio esté respondiendo — solo significa que el Firewall de Windows no lo bloqueará. La verificación tiene dos partes: confirmar la regla y probar la conexión.
Lista la regla creada para confirmar que está activa:
Get-NetFirewallRule -DisplayName "Aplicacion Web 8080" | Format-List DisplayName,Enabled,Direction,ActionLa salida debe mostrar Enabled: True, Direction: Inbound y Action: Allow.
Comprueba si algún servicio está realmente escuchando en el puerto dentro de la VPS:
Get-NetTCPConnection -LocalPort 8080 -State ListenSi la salida está vacía, ningún programa está escuchando en el puerto 8080 — necesitas iniciar tu aplicación primero. Si aparece una línea con la dirección local, el servicio está listo para recibir conexiones.
Desde un equipo externo (tu PC local, no la VPS), prueba la conexión. En Windows, usa PowerShell:
Test-NetConnection -ComputerName IP_DE_TU_VPS -Port 8080El resultado relevante es TcpTestSucceeded: True. Si aparece False, el puerto sigue bloqueado en algún punto — puede ser el propio Firewall de Windows, la aplicación que no está en ejecución, o un filtro de red externo.
Resolución de problemas
La regla existe pero la conexión no funciona
Verifica que la aplicación esté en ejecución y escuchando en el puerto correcto con Get-NetTCPConnection. En muchos casos el servicio escucha solo en 127.0.0.1 (localhost) y necesita configurarse para escuchar en 0.0.0.0 (todas las interfaces). Consulta la documentación de la aplicación.
Funciona internamente pero no desde fuera
Si Test-NetConnection dentro de la VPS devuelve True pero desde fuera devuelve False, el problema está en capas de red por encima de Windows. Tu VPS puede tener un firewall adicional en el panel del proveedor o un grupo de seguridad que bloquee el tráfico.
Muchos proveedores aplican filtros de red además del Firewall de Windows. Si abriste el puerto en Windows y aún no conectas desde fuera, comprueba si existen reglas adicionales en el panel de control del proveedor.
Cómo eliminar una regla
Si la creaste de forma incorrecta, elimínala con PowerShell:
Remove-NetFirewallRule -DisplayName "Aplicacion Web 8080"
O desde wf.msc: localiza la regla en la lista, haz clic derecho y selecciona Eliminar.
Próximos pasos
Una vez abiertas las puertas necesarias, considera estos temas:
- Restringir la regla por IP de origen (parámetro
-RemoteAddress) — útil para puertos administrativos como 3389 o bases de datos, que no necesitan estar accesibles para todo internet. - Configurar un certificado SSL en tu aplicación web antes de exponer el puerto 443 públicamente.
- Documentar todas las reglas creadas en un archivo de texto dentro de la propia VPS — tu yo del futuro te lo agradecerá.
- Habilitar el registro del Firewall para auditar los intentos de conexión bloqueados.
Si vas a poner una aplicación en producción, una VPS Hostini Windows ya viene con acceso administrativo completo y filtro de red en capa de borde — gestionas el Firewall de Windows con normalidad, con protección adicional en la infraestructura.
Preguntas frecuentes
¿Necesito reiniciar la VPS Windows después de abrir un puerto en el Firewall?
No. Las reglas del Firewall de Windows se activan de inmediato tras ser creadas, tanto desde la interfaz gráfica como desde PowerShell. Si la conexión sigue sin funcionar, el problema está en otro punto: la aplicación no iniciada, escucha en la dirección incorrecta o un filtro externo.
¿Cómo saber si un puerto usa TCP o UDP?
La mayoría de servicios usan TCP: HTTP, HTTPS, RDP, MySQL, SQL Server y prácticamente todas las aplicaciones web. UDP es habitual en servidores de juegos, VoIP, DNS y streaming. En caso de duda, consulta la documentación de la aplicación — algunas requieren que se abran ambos protocolos.
¿Puedo abrir todos los puertos a la vez para resolverlo más rápido?
Técnicamente sí, pero es una práctica muy poco recomendable. Deshabilitar el Firewall o crear una regla que lo permita todo expone todos los servicios en ejecución en la VPS, incluidos aquellos que quizás ni sabes que están activos. Abre únicamente los puertos que cada aplicación necesita.
El puerto está abierto en el Firewall de Windows pero el sitio web no carga. ¿Qué puede estar pasando?
Las causas más comunes son: la aplicación web no está en ejecución, está escuchando solo en 127.0.0.1 en lugar de 0.0.0.0, hay un filtro de red del proveedor bloqueando el tráfico, o el DNS del dominio aún no apunta a la IP correcta. Usa Test-NetConnection desde otra máquina para aislar dónde se produce el bloqueo.
¿Cuál es la diferencia entre Firewall de Windows Defender y Firewall de Windows con seguridad avanzada?
Son el mismo motor, pero con interfaces distintas. El del Panel de Control es simplificado y adecuado para equipos de escritorio. El wf.msc (Seguridad avanzada) expone todas las opciones: reglas por puerto, rango, IP de origen, perfiles y registros. En servidores, usa siempre el wf.msc.
¿Cómo abrir un puerto solo para mi IP y no para todo internet?
Usa el parámetro -RemoteAddress en PowerShell. Ejemplo: New-NetFirewallRule -DisplayName "MySQL Restringido" -Direction Inbound -Protocol TCP -LocalPort 3306 -RemoteAddress 200.x.x.x -Action Allow. Desde la interfaz gráfica, en la pestaña "Ámbito" de la regla, define las direcciones IP remotas permitidas.