Start typing to search across invoices, services, domains, tickets, and more...
Cuando un sitio web, una base de datos, un servidor de juegos o una aplicación propia en su VPS Windows no es accesible desde internet, la causa habitual es un puerto cerrado en el Firewall de Windows. Esta guía muestra cómo abrir y cerrar puertos en el Firewall de Windows en Windows Server 2016/2019/2022 tanto con la interfaz gráfica como con PowerShell (New-NetFirewallRule / Remove-NetFirewallRule), cómo restringir un puerto a IPs de origen concretas, permitir el ping, comprobar que un puerto está a la escucha y probarlo desde fuera.
Conéctese por Escritorio remoto (RDP), pulse Win+R y ejecute el comando siguiente para abrir Windows Defender Firewall with Advanced Security (Firewall de Windows Defender con seguridad avanzada). Haga clic en Inbound Rules (Reglas de entrada) y luego en New Rule (Nueva regla), elija Port (Puerto), seleccione TCP o UDP e introduzca los puertos locales específicos (por ejemplo, 8080 o 80,443). Elija Allow the connection (Permitir la conexión), deje marcados Domain, Private y Public (Dominio, Privado y Público) y asigne a la regla un nombre descriptivo.
wf.mscEn una ventana de PowerShell con privilegios de administrador, un solo comando abre un puerto, lo que resulta ideal para scripts e implementaciones repetidas. -LocalPort acepta un solo puerto, una lista separada por comas o un rango, y -Protocol puede ser TCP o UDP.
# Permitir TCP 8080 entrante (todos los perfiles)
New-NetFirewallRule -DisplayName "Allow TCP 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Any
# Varios puertos / un rango, y UDP
New-NetFirewallRule -DisplayName "Allow Web 80,443" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow
New-NetFirewallRule -DisplayName "Allow UDP 27015-27020" -Direction Inbound -Protocol UDP -LocalPort 27015-27020 -Action AllowLos puertos de bases de datos (1433, 3306) y de administración no deberían estar abiertos a todo internet. Añada -RemoteAddress con las IPs o subredes de confianza; todo lo demás se descarta según la política de entrada predeterminada. Para cambiar los orígenes permitidos más adelante, edite la regla con Set-NetFirewallRule en lugar de volver a crearla.
# Permitir SQL Server 1433 solo desde la IP de su oficina y una subred
New-NetFirewallRule -DisplayName "MSSQL from office" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 203.0.113.10,198.51.100.0/24 -Action Allow
# Cambiar más adelante la lista de orígenes de una regla existente
Set-NetFirewallRule -DisplayName "MSSQL from office" -RemoteAddress 203.0.113.10,203.0.113.20Puede cerrar un puerto desactivando la regla temporalmente, eliminándola con Remove-NetFirewallRule o creando una regla Block explícita. En el Firewall de Windows, una regla Block siempre prevalece sobre una regla Allow, por lo que una regla Block es la forma más segura de garantizar que un puerto permanezca cerrado.
# Listar las reglas que creó
Get-NetFirewallRule -Direction Inbound | Where-Object DisplayName -like "Allow*" | Format-Table DisplayName,Enabled,Action
# Desactivar temporalmente o eliminar de forma permanente
Disable-NetFirewallRule -DisplayName "Allow TCP 8080"
Remove-NetFirewallRule -DisplayName "Allow TCP 8080"
# Bloquear un puerto de forma explícita (las reglas Block prevalecen sobre las Allow)
New-NetFirewallRule -DisplayName "Block TCP 445" -Direction Inbound -Protocol TCP -LocalPort 445 -Action BlockWindows Server ignora el ping de forma predeterminada. Esto no afecta a los sitios web, pero las herramientas de monitoreo y las pruebas de latencia pueden indicar que el servidor está caído. Las reglas siguientes solo permiten ICMP Echo Request y mantienen bloqueados los demás tipos de ICMP.
# Permitir ping (ICMPv4 Echo Request) y eco ICMPv6
New-NetFirewallRule -DisplayName "Allow ICMPv4 Ping" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow
New-NetFirewallRule -DisplayName "Allow ICMPv6 Ping" -Direction Inbound -Protocol ICMPv6 -IcmpType 128 -Action Allow
# Lo mismo con la sintaxis clásica de netsh
netsh advfirewall firewall add rule name="Allow ICMPv4 Ping" dir=in action=allow protocol=icmpv4:8,anyUna regla de firewall no sirve de nada si ningún programa escucha en el puerto. Use netstat o Get-NetTCPConnection para ver la dirección de escucha y el ID del proceso. Si la dirección es 127.0.0.1, la aplicación solo acepta conexiones locales y debe configurarse para escuchar en 0.0.0.0 o en la IP pública del servidor.
netstat -ano | findstr :8080
Get-NetTCPConnection -State Listen -LocalPort 8080 | Select-Object LocalAddress,LocalPort,OwningProcess
Get-Process -Id (Get-NetTCPConnection -State Listen -LocalPort 8080).OwningProcessHaga siempre la prueba desde otro equipo; probar en el propio servidor omite el firewall y da resultados engañosos. TcpTestSucceeded : True, o "succeeded" en nc, significa que el puerto es accesible.
# Desde otro equipo con Windows
Test-NetConnection 203.0.113.50 -Port 8080
# Desde un equipo con Linux / macOS
nc -zv 203.0.113.50 8080
ping 203.0.113.50Compruebe que el programa está a la escucha (paso 6), que no está vinculado a 127.0.0.1, que ninguna regla Block cubre el mismo puerto, que está probando el protocolo correcto (TCP o UDP) y que su propia red no filtra el puerto. Nuestra guía de "solución de problemas de red en Windows" incluye más comprobaciones.
No lo recomendamos. Desactivar el firewall expone SMB, RPC y otros servicios del sistema a los escáneres de internet. Manténgalo activado y abra solo los puertos que necesite.
Sí. Permita primero el nuevo puerto y luego reinicie el servicio de Escritorio remoto. Consulte nuestra guía "cambiar el puerto RDP de Windows" para ver el procedimiento completo.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión del sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.