Verificar puertos abiertos en Windows es algo que todo usuario consciente de la red debería saber cómo hacer. Un puerto abierto significa que tu ordenador está escuchando activamente conexiones en ese número de puerto, y saber cuáles están abiertos te ayuda a detectar brechas de seguridad, resolver problemas de conexión y verificar que tus aplicaciones se ejecutan correctamente. Windows te ofrece varias formas integradas de hacerlo, además hay herramientas externas que pueden probar cómo se ven tus puertos desde el exterior.
Tabla de Contenidos
- Qué Son los Puertos Abiertos y Por Qué Importan
- Usar el Comando Netstat para Ver Puertos Abiertos
- Verificar Puertos con PowerShell
- Verificar Configuración del Firewall de Windows para Reglas de Puertos
- Usar un Escáner de Puertos en Windows
- Probar tus Puertos Abiertos desde el Exterior
- Referencia Rápida de Puertos Comunes
- Cerrar Puertos que No Necesitas
Qué Son los Puertos Abiertos y Por Qué Importan
Cada servicio de red en tu ordenador se vincula a un número de puerto entre 1 y 65535. Cuando un servicio está ejecutándose y esperando conexiones entrantes, ese puerto está "abierto". Cuando nada está escuchando ahí, el puerto está "cerrado" y los intentos de conexión entrante se rechazan o ignoran.
Aquí está por qué esto importa en la práctica:
- Auditoría de seguridad: Un puerto abierto inesperado podría significar que un proceso malicioso, malware o un servicio mal configurado está exponiendo tu máquina.
- Solución de problemas: Si tu servidor web, servidor de juegos o escritorio remoto es inaccesible, la primera pregunta es si el puerto está realmente abierto.
- Verificación del firewall: Tu Firewall de Windows podría estar bloqueando un puerto aunque el servicio esté ejecutándose, o permitiendo uno que creías que estaba cerrado.
Usar el Comando Netstat para Ver Puertos Abiertos
El comando
netstat
es la forma integrada más rápida de listar cada puerto en el que tu máquina Windows está actualmente escuchando. Abre un Símbolo del Sistema (busca "cmd" en el menú Inicio, haz clic derecho y elige "Ejecutar como administrador") y ejecuta:
netstat -ano
Las banderas se desglosan así:
-
-amuestra todas las conexiones activas y puertos escuchando. -
-nmuestra direcciones y números de puerto numéricamente en lugar de resolver nombres de host (mucho más rápido). -
-oañade el ID de Proceso (PID) para que puedas identificar qué programa es propietario de cada puerto.
Las columnas de salida son: Proto , Dirección Local , Dirección Remota , Estado , y PID . Busca filas donde la columna Estado dice ESCUCHANDO . Esos son tus puertos abiertos.
Para reducirlo solo a puertos escuchando:
netstat -ano | findstr LISTENING
Una vez que tengas un PID que quieras investigar, encuentra el nombre del proceso con:
tasklist /fi "PID eq 1234"
Reemplaza
1234
con el PID real de la salida netstat. Esto te dice exactamente qué ejecutable está escuchando en ese puerto.
Para verificar si un puerto específico está en uso, combina netstat con findstr:
netstat -ano | findstr :443
Verificar Puertos con PowerShell
PowerShell te ofrece una alternativa más limpia y scriptable a netstat. Abre PowerShell como administrador y ejecuta:
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess | Sort-Object LocalPort
Esto devuelve una lista ordenada de cada puerto TCP en estado ESCUCHANDO, incluyendo la dirección local y el PID. Para resolver el PID a un nombre de proceso en el mismo comando:
Get-NetTCPConnection -State Listen |
Select-Object LocalPort,
@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
Sort-Object LocalPort
También puedes probar si un host remoto tiene un puerto específico abierto directamente desde PowerShell usando
Test-NetConnection
:
Test-NetConnection -ComputerName example.com -Port 443
Si
TcpTestSucceeded : True
aparece en la salida, el puerto está abierto y aceptando conexiones desde tu máquina. Esto es útil para verificar la conectividad saliente desde tu PC Windows a un servidor, no solo verificar qué está abierto localmente.
Verificar Configuración del Firewall de Windows para Reglas de Puertos
El Firewall de Windows controla qué puertos se permiten dentro y fuera. Un servicio puede estar escuchando en un puerto localmente, pero si el firewall bloquea el tráfico entrante en ese puerto, los clientes externos no pueden alcanzarlo. Aquí te mostramos cómo revisar tus reglas de firewall.
Usar Windows Defender Firewall con Seguridad Avanzada
-
Presiona
Win + R
, escribe
wf.msc, y presiona Intro. - Haz clic en Reglas de Entrada en el panel izquierdo para ver reglas que controlan el tráfico que entra en tu máquina.
- Haz clic en Reglas de Salida para ver el tráfico que sale de tu máquina.
- Ordena por Habilitado para ver rápidamente qué reglas están activas.
- Cada regla muestra el protocolo (TCP/UDP), puerto local, puerto remoto y acción (Permitir/Bloquear).
Usar la Línea de Comandos
Para listar todas las reglas de firewall activas desde la línea de comandos:
netsh advfirewall firewall show rule name=all
Para verificar si un puerto específico está permitido a través del firewall:
netsh advfirewall firewall show rule name=all | findstr "LocalPort"
La documentación oficial de Microsoft sobre configurar el Firewall de Windows cubre la creación y gestión de reglas en detalle si necesitas agregar o modificar reglas.
Usar un Escáner de Puertos en Windows
Las herramientas integradas son excelentes para verificar tu propia máquina, pero a veces necesitas escanear otro host en tu red, o quieres una descripción general visual en lugar de salida de línea de comandos sin procesar. Un escáner de puertos dedicado llena ese vacío.
Nmap es el estándar de la industria para escaneo de puertos. Es gratuito, de código abierto y disponible para Windows desde la página oficial de descarga de Nmap . El instalador de Windows incluye Zenmap, una interfaz gráfica. Un escaneo básico de un host se ve así:
nmap -sV 192.168.1.1
La bandera
-sV
intenta detectar la versión del servicio ejecutándose en cada puerto abierto. Esto es útil para auditorías de seguridad de red en Windows porque puedes ver no solo qué puertos están abiertos, sino qué software hay detrás de ellos.
Probar tus Puertos Abiertos desde el Exterior
Aquí está la distinción crítica que la mayoría de guías se saltan: un puerto puede estar escuchando localmente en tu máquina Windows pero aún parecer cerrado para el mundo exterior. Esto sucede cuando tu router no ha reenviado ese puerto, o cuando tu ISP lo bloquea. Para saber qué ve realmente internet, necesitas probar desde un punto de vista externo.
Esto es exactamente lo que hace un verificador de puertos en línea. Inicia una conexión TCP a tu dirección IP desde un servidor remoto e informa si la conexión fue aceptada (Abierto), rechazada (Cerrado) o agotada (Tiempo agotado). No se necesita instalar software, y evita completamente tu firewall local para mostrar la vista externa real.
Ve Exactamente Qué Puertos Están Abiertos en tu Máquina Windows
Nuestro verificador de puertos en línea gratuito prueba conexiones TCP a cualquier IP o dominio desde un servidor externo, así que obtienes la vista verdadera del exterior al verificar puertos abiertos en Windows. Verifica un solo puerto o verifica por lotes hasta 10 a la vez, con resultados en milisegundos.
Verifica tus Puertos Abiertos →
Referencia Rápida de Puertos Comunes
Saber qué servicios usan qué puertos ahorra tiempo cuando estás solucionando problemas. Aquí están los puertos que encontrarás más a menudo en un sistema Windows:
| Puerto | Protocolo | Servicio | Uso Común en Windows |
|---|---|---|---|
| 80 | TCP | HTTP | Servidores web (IIS, Apache), servidores dev locales |
| 443 | TCP | HTTPS | Servidores web seguros, Actualización de Windows |
| 3389 | TCP | RDP | Protocolo de Escritorio Remoto, administración remota |
| 445 | TCP | SMB | Compartición de archivos, recursos compartidos de red Windows |
| 22 | TCP | SSH | OpenSSH (integrado en Windows 10/11) |
| 21 | TCP | FTP | Transferencia de archivos, servicio FTP de IIS |
| 25 | TCP | SMTP | Envío de correo, retransmisión de servidor de correo |
| 3306 | TCP | MySQL | Conexiones de base de datos MySQL/MariaDB |
| 5432 | TCP | PostgreSQL | Conexiones de base de datos PostgreSQL |
| 135 | TCP | RPC | Llamada a Procedimiento Remoto de Windows, DCOM |
Cerrar Puertos que No Necesitas
La buena monitorización de puertos de Windows no se trata solo de encontrar qué está abierto. Se trata de decidir qué debería estar abierto y cerrar todo lo demás. Aquí hay un enfoque práctico:
- Ejecuta netstat -ano y lista todos los puertos ESCUCHANDO. Asigna cada PID a un nombre de proceso usando el comando tasklist mostrado anteriormente.
-
Identifica servicios que no necesitas.
Por ejemplo, si no estás usando IIS, no hay razón para que el puerto 80 o 443 esté abierto localmente. Detén el servicio a través de
services.msc. -
Revisa las reglas de entrada del Firewall de Windows.
Abre
wf.mscy desactiva cualquier regla que permita tráfico a puertos que hayas identificado como innecesarios. - Verifica tu router. Las reglas de reenvío de puertos en tu router pueden exponer puertos incluso si el Firewall de Windows los bloquea a nivel del SO. Inicia sesión en tu panel de administración del router y audita los puertos reenviados.
- Vuelve a probar desde el exterior. Después de hacer cambios, ejecuta una verificación de puerto externa nuevamente para confirmar que los puertos ya no son alcanzables.
Los avisos de ciberseguridad de CISA publican regularmente alertas sobre puertos específicos siendo explotados en la naturaleza. Verificar esa lista periódicamente es una buena práctica si administras servidores Windows.
Un puerto abierto localmente significa que un servicio en tu máquina Windows está escuchando activamente conexiones en ese número de puerto. Un puerto abierto externamente significa que ordenadores externos en internet realmente pueden alcanzarlo. Tu router, ISP o Firewall de Windows pueden bloquear el acceso externo incluso cuando el puerto está escuchando localmente. Siempre prueba desde una herramienta externa para confirmar el estado del mundo real.
Esto casi siempre es causado por una de tres cosas: el Firewall de Windows tiene una regla de entrada bloqueando el puerto, tu router no tiene una regla de reenvío de puertos para ese puerto, o tu ISP está bloqueando el puerto a nivel de red. Verifica cada capa en orden. Los puertos comúnmente bloqueados por ISP incluyen 25 (SMTP), 80 y 443 en conexiones residenciales.
Exponer RDP directamente a internet es un riesgo de seguridad significativo. Bots automatizados escanean continuamente el puerto 3389 abierto e intentan inicios de sesión por fuerza bruta. Si necesitas acceso remoto, usa una VPN para alcanzar tu red primero, restringe el acceso RDP a direcciones IP específicas en el Firewall de Windows, o usa un puerto no estándar combinado con contraseñas fuertes y Autenticación a Nivel de Red (NLA).
Netstat sí muestra puertos UDP cuando usas la bandera
-a
. Busca filas etiquetadas
UDP
en la columna Proto. Sin embargo, UDP no tiene un apretón de manos de conexión como TCP, así que es mucho más difícil de probar remotamente. La mayoría de verificadores de puertos en línea, incluyendo herramientas basadas en TCP, solo prueban conexiones TCP. Para escaneo UDP, Nmap con la bandera
-sU
es la opción práctica, aunque requiere privilegios de administrador.
Abre
wf.msc
, haz clic en "Reglas de Entrada", luego "Nueva Regla" en la derecha. Elige "Puerto", selecciona TCP o UDP, ingresa el número de puerto, elige "Permitir la conexión", aplícalo a los perfiles apropiados (Dominio, Privado, Público) y dale a la regla un nombre. Para los amigos de la línea de comandos, usa:
netsh advfirewall firewall add rule name="MyPort" dir=in action=allow protocol=TCP localport=8080
.
Un tiempo agotado significa que el verificador de puertos envió una solicitud de conexión TCP pero no recibió respuesta dentro del período de espera (típicamente unos pocos segundos). Esto generalmente significa que un firewall está descartando silenciosamente paquetes en lugar de rechazarlos activamente. Un resultado "Cerrado" significa que el host envió una reinicialización TCP, rechazando activamente la conexión. El tiempo agotado es más común con configuraciones de firewall estrictas que descartan en lugar de rechazar tráfico.