WindowsPublicado el 22 de mayo de 2026Lectura de 8 min

Cómo abrir un puerto en el firewall de un VPS Windows

Para abrir un puerto en un VPS Windows, todo pasa por el firewall del propio Windows Server, Windows Defender Firewall: el área de cliente de OuiHeberg no tiene firewall de red para los VPS. Esta guía te muestra cómo comprobar el firewall, abrir un puerto con la interfaz o con PowerShell, limitar el Escritorio remoto a tu dirección y leer los registros. Ejecuta los comandos en PowerShell como administrador, en una sesión RDP.

Comprobar el estado del firewall de Windows Server

Windows aplica uno de sus tres perfiles según la red. En un VPS suele ser el perfil Public.

PerfilCuándo se aplica
DomainMáquina unida a un dominio de Active Directory
PrivateRed marcada como de confianza
PublicRed desconocida, el caso de un VPS expuesto a Internet

Muestra el estado de los tres perfiles y su acción por defecto.

Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Cada perfil debe mostrar Enabled en True. Si alguno está en False, vuelve a activar el firewall en los tres.

Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True

Lo correcto es bloquear todo el tráfico entrante salvo lo que autorices, y dejar pasar el saliente.

Set-NetFirewallProfile -Profile Domain,Private,Public `
  -DefaultInboundAction Block `
  -DefaultOutboundAction Allow

Los textos de Windows se citan en inglés, el idioma del sistema entregado. La consola del firewall se abre con wf.msc. Su página de inicio resume los tres perfiles e indica cuál está activo.

Consola Windows Defender Firewall with Advanced Security con los perfiles Domain, Private y Public


Abrir un puerto con la interfaz

  1. Pulsa la tecla Windows, escribe wf.msc y pulsa Intro.

  2. Haz clic derecho en Inbound Rules y luego en New Rule….

  3. En el paso Rule Type, elige Port y haz clic en Next.

  4. Elige TCP o UDP y escribe el puerto en Specific local ports, por ejemplo 443.

  5. Deja Allow the connection.

  6. Deja marcados los tres perfiles.

  7. Pon a la regla un nombre claro, por ejemplo Allow-HTTPS-443-Inbound, y haz clic en Finish.

La regla se aplica al momento, sin reiniciar.

Asistente New Inbound Rule Wizard en el paso Rule Type con la opción Port marcada

El paso Rule Type ofrece cuatro tipos de regla.

TipoUso
ProgramPermitir o bloquear un ejecutable (.exe)
PortAbrir o bloquear un puerto TCP o UDP
PredefinedActivar un grupo de reglas incluido en Windows (Escritorio remoto, uso compartido de archivos…)
CustomCombinar puerto, programa y direcciones IP de origen o destino

Una regla de salida se crea igual desde Outbound Rules. Sirve sobre todo para impedir que un programa o el servidor contacte con una dirección o un puerto concretos.

Lista Outbound Rules del firewall con la acción New Rule en el panel Actions


Abrir un puerto con PowerShell

PowerShell es más rápido y se repite tal cual en otro servidor. Basta una línea para abrir un puerto TCP. Sustituye 8080 por el tuyo.

New-NetFirewallRule -DisplayName "Allow-Port-8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Any

Para una regla de salida, cambia Inbound por Outbound. Para bloquear, cambia Allow por Block. Este es el mismo comando en varias líneas, para los puertos web 80 y 443.

New-NetFirewallRule `
  -DisplayName "Allow-HTTP-HTTPS-Inbound" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort @(80, 443) `
  -Action Allow `
  -Profile Any

Limitar un puerto a ciertas direcciones

Un servicio de administración o una base de datos no debe quedar abierto a todo Internet. El parámetro -RemoteAddress reserva la regla a una dirección o a un rango. Ejemplo con SQL Server (puerto 1433) limitado a una subred, y WinRM (5985 y 5986) limitado a una dirección de administración.

# SQL Server, solo desde una subred
New-NetFirewallRule `
  -DisplayName "Allow-SQLServer-LAN" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 1433 `
  -RemoteAddress "10.0.0.0/24" `
  -Action Allow `
  -Profile Any
# WinRM HTTP (5985) y HTTPS (5986), solo desde una dirección
New-NetFirewallRule `
  -DisplayName "Allow-WinRM-Management" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort @(5985, 5986) `
  -RemoteAddress "203.0.113.10" `
  -Action Allow `
  -Profile Any

Para conectar tus VPS entre sí sin pasar por Internet, la guía Cómo conectar dos VPS con una red privada explica cómo activar la red privada.


Reservar el Escritorio remoto a tu dirección IP

Los robots barren el puerto 3389 sin parar. Si tu conexión tiene una dirección fija, resérvale el Escritorio remoto.

  1. Crea una regla que permita el puerto 3389 desde tu dirección. Sustituye 203.0.113.10 por la tuya.

    New-NetFirewallRule `
      -DisplayName "Allow-RDP-MyIP" `
      -Direction Inbound `
      -Protocol TCP `
      -LocalPort 3389 `
      -RemoteAddress "203.0.113.10" `
      -Action Allow `
      -Profile Any
    
  2. Abre una segunda sesión RDP para comprobar que sigues entrando. Mantén abierta la primera.

  3. Desactiva las reglas originales del Escritorio remoto, que aceptan cualquier dirección.

    Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
    

Como el tráfico entrante está bloqueado por defecto, ahora solo pasa tu dirección.

No crees una regla Block en el puerto 3389. En Windows, una regla de bloqueo gana a una regla de permiso, así que también cortaría tu dirección. Si pierdes el acceso, abre la consola desde la ficha del VPS en el área de cliente y corrige la regla.

Si tu dirección cambia a menudo, pasa por una VPN y permite su rango. Para cambiar el puerto del Escritorio remoto, sigue la guía Cambiar el puerto RDP en un VPS Windows Server.


Bloquear un puerto o una dirección IP

# Bloquear un puerto de entrada
New-NetFirewallRule `
  -DisplayName "Block-Port-8080-Inbound" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 8080 `
  -Action Block `
  -Profile Any
# Bloquear una dirección de origen (entrada)
New-NetFirewallRule `
  -DisplayName "Block-IP-Suspect" `
  -Direction Inbound `
  -RemoteAddress "198.51.100.42" `
  -Action Block `
  -Profile Any
# Bloquear las conexiones salientes hacia una dirección
New-NetFirewallRule `
  -DisplayName "Block-Outbound-IP" `
  -Direction Outbound `
  -RemoteAddress "198.51.100.42" `
  -Action Block `
  -Profile Any

Una regla de bloqueo pasa por delante de todas las reglas de permiso que afectan al mismo tráfico.


Activar las reglas predefinidas de Windows

Windows Server trae grupos de reglas listos para usar. Actívalos por grupo en lugar de uno a uno.

GrupoUso
Remote DesktopConexiones de Escritorio remoto
File and Printer SharingUso compartido de archivos SMB
Windows Management Instrumentation (WMI)Administración remota por WMI
Windows Remote ManagementPowerShell remoto (WinRM)
Core NetworkingTráfico de red básico (DNS, DHCP, ICMP)
Network DiscoveryDetección de redes

Con netsh o con PowerShell, como prefieras.

netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
netsh advfirewall firewall set rule group="Windows Remote Management" new enable=Yes
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Enable-NetFirewallRule -DisplayGroup "Windows Remote Management"

Para permitir el ping, la guía Cómo permitir el ping en un VPS Windows Server detalla las reglas ICMP.


Registrar el tráfico bloqueado

El registro del firewall muestra qué conexión se rechazó y deja ver los escaneos de puertos. Actívalo para los tres perfiles.

Set-NetFirewallProfile -Profile Domain,Private,Public `
  -LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log" `
  -LogMaxSizeKilobytes 4096 `
  -LogAllowed True `
  -LogBlocked True

El mismo ajuste se puede hacer con netsh.

netsh advfirewall set allprofiles logging filename "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log"
netsh advfirewall set allprofiles logging maxfilesize 4096
netsh advfirewall set allprofiles logging droppedconnections enable
netsh advfirewall set allprofiles logging allowedconnections enable

El registro está en C:\Windows\System32\LogFiles\Firewall\pfirewall.log. Estas son sus columnas útiles.

ColumnaContenido
date, timeFecha y hora del evento
actionALLOW o DROP
src-ip, dst-ipDirecciones de origen y destino
src-port, dst-portPuertos de origen y destino
pathRECEIVE para la entrada, SEND para la salida

Este comando muestra los 50 últimos bloqueos.

Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
  Where-Object { $_ -match "DROP" } |
  Select-Object -Last 50

Gestionar y guardar las reglas

Lista las reglas activas, ordenadas por dirección.

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
  Select-Object DisplayName, Direction, Action, Profile |
  Sort-Object Direction

El mismo inventario puede mostrar el protocolo y el puerto de cada regla.

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
  ForEach-Object {
    $rule = $_
    $portFilter = $rule | Get-NetFirewallPortFilter
    [PSCustomObject]@{
      Name      = $rule.DisplayName
      Direction = $rule.Direction
      Action    = $rule.Action
      Protocol  = $portFilter.Protocol
      LocalPort = $portFilter.LocalPort
    }
  } | Format-Table -AutoSize

Desactiva una regla en vez de borrarla: así podrás reactivarla.

# Desactivar
Disable-NetFirewallRule -DisplayName "Allow-Port-8080"
# Reactivar
Enable-NetFirewallRule -DisplayName "Allow-Port-8080"
# Borrar definitivamente
Remove-NetFirewallRule -DisplayName "Allow-Port-8080"

Exporta todas las reglas antes de un cambio importante. La importación restaura la configuración exportada.

netsh advfirewall export "C:\Backup\firewall-backup.wfw"
netsh advfirewall import "C:\Backup\firewall-backup.wfw"

Para guardar cada mes una foto de las reglas activas, expórtalas a CSV.

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
  Export-Csv "C:\Audit\firewall-rules-$(Get-Date -Format 'yyyy-MM').csv" -NoTypeInformation

Diagnosticar una conexión rechazada

¿La regla existe y está activa, pero la conexión falla? Revisa estos puntos en orden.

¿El servicio escucha en el puerto?

# En el servidor: ¿hay un programa escuchando en el puerto 443?
Get-NetTCPConnection -LocalPort 443 -State Listen
Test-NetConnection -ComputerName localhost -Port 443
# Desde tu PC con Windows (sustituye la dirección por la del VPS)
Test-NetConnection -ComputerName 203.0.113.50 -Port 443 -InformationLevel Detailed

Si TcpTestSucceeded vale True en el servidor y False desde tu PC, bloquea el firewall. Si vale False también en el servidor, el servicio no escucha y el problema está en la aplicación.

¿Pasa antes una regla de bloqueo?

Una regla Block más amplia se impone a tu regla Allow. Lista las reglas de bloqueo activas.

Get-NetFirewallRule -Direction Inbound -Action Block -Enabled True |
  Select-Object DisplayName, Profile

¿La regla apunta al perfil correcto?

Una regla creada para el perfil Private no se aplica si el VPS está en el perfil Public. Muestra el perfil activo y el nombre de la interfaz.

Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory

Lo más sencillo es ampliar la regla a todos los perfiles. Pasar la interfaz al perfil Private también funciona, pero le aplica todas las reglas de ese perfil.

# Ampliar la regla a todos los perfiles
Set-NetFirewallRule -DisplayName "Allow-Port-8080" -Profile Any
# O pasar la interfaz al perfil Private (nombre leído en InterfaceAlias)
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private

¿Qué dice el registro?

# Bloqueos en el puerto 8080
Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
  Where-Object { $_ -match "DROP" -and $_ -match "8080" }

La columna path confirma la dirección del bloqueo, de entrada o de salida.


¿Necesitas ayuda?

Abre un ticket desde Tickets › Abrir un ticket, o desde el recuadro Contactar con el soporte al pie de la ficha del VPS. En el campo Servicio afectado, elige el VPS para que el equipo gane tiempo. También puedes preguntar en el Discord de OuiHeberg.

¿Te ha sido útil este artículo?

323 vistas
Compartir este artículo
VPS Windows
¿Necesitas un VPS Windows?

Windows Server 2025 con licencia incluida, Escritorio remoto y gestión desde el área de cliente.

Ver ofertas →

Artículos relacionados

¿No encontraste lo que buscabas?

El equipo de soporte responde 7 días a la semana.

Abrir un ticketDesde tu área de clienteDiscord de la comunidadAyuda y anunciosEstado de los serviciosstatus.ouiheberg.com