IP & Network

Comprobador de puertos TCP

Comprueba disponibilidad de puertos TCP, uno o en lote.

Sobre esta herramienta

Una comprobación de puerto es la pregunta más simple que puede hacer a la internet pública del tipo «¿está realmente escuchando el servicio?». Nuestro comprobador de puertos abre una conexión TCP real desde nuestro servidor de Frankfurt hacia el host y los puertos que indique, con un tiempo de espera de 3 segundos por puerto. Si el handshake se completa, el puerto está abierto; si el host rechaza activamente, el puerto está cerrado; si hay silencio, el puerto está filtrado — normalmente un cortafuegos que descarta el paquete SYN sin respuesta.

Puede sondear hasta 100 puertos por ejecución — un solo puerto (80), una lista separada por comas (80,443,22) o un rango pequeño (20-25). Cada resultado muestra el número de puerto, nuestro veredicto, el tiempo de la conexión y una estimación del nombre del servicio basada en asignaciones de estilo IANA (22 → ssh, 5432 → postgresql, etc.). El veredicto se actualiza fila a fila a medida que conectamos — no hay que esperar al puerto más lento para conocer los rápidos.

Para qué sirve

  • Verificar un despliegue sin entrar por SSH. Si su servicio debería estar en el puerto 5432 y el comprobador dice filtered, el listener no se ha enlazado o el cortafuegos lo bloquea — soluciones distintas, pero la comprobación de puerto le dice cuál.
  • Auditar la exposición externa. Ejecute el preset de puertos populares contra su servidor. Cualquier puerto open que no reconozca es tarea suya. closed y filtered son ambos adecuados para la internet pública.
  • Diagnosticar discusiones del tipo «el cortafuegos debe estar mal». filtered en todos los puertos desde nuestro lado — pero alcanzable desde su portátil — es prueba concreta de que el cortafuegos del host tiene una lista blanca por IP de origen, no un problema de puertos.

Lectura del resultado

«Open» es inequívoco: un listener TCP nos aceptó. «Closed» significa que el host está vivo y el kernel envió RST; el puerto no está en uso. «Filtered» es el caso interesante: un cortafuegos descartó nuestro paquete sin respuesta, la ruta está rota o el listener está saturado. La columna de tiempo de marcado ayuda a desambiguar — abiertos y cerrados responden en milisegundos de un dígito; los filtrados siempre se quedan en el tiempo de espera completo de 3 segundos. Muchos servicios basados en UDP (DNS en 53, SNMP en 161) aceptan TCP también, pero si no lo hacen, espere filtered — eso es normal, no un fallo.

Preguntas frecuentes

¿Cuál es la diferencia entre «closed» y «filtered»?

Closed significa que el kernel del host respondió activamente con un RST TCP — el host es alcanzable, no hay listener en ese puerto. Filtered significa que no obtuvimos nada en 3 segundos — normalmente un cortafuegos descartando nuestro SYN, ocasionalmente un host saturado. Ambos son comunes; solo «open» garantiza que hay un servicio real escuchando.

¿Por qué todo está «filtered» desde su servidor pero a mí me funciona?

Una lista blanca por IP de origen en el cortafuegos del host. El servicio funciona y es alcanzable desde la IP de su portátil, pero la IP de nuestro servidor de Frankfurt no está en la lista. Es el resultado esperado para hosts de salto, paneles de administración internos y cualquier servicio que no deba estar expuesto a la internet pública — exactamente lo que se configura a propósito.

¿Puedo escanear IP privadas o mi propia LAN?

No. Los rangos privados RFC 1918, loopback, link-local (169.254/16), CGN (100.64/10) y endpoints de metadatos en la nube están rechazados — misma política SSRF que el resto de nuestras herramientas. Para escanear su LAN use nmap o una herramienta local similar. Los servicios públicos solo deben sondear la internet pública.

¿Cuántos puertos puedo comprobar en una ejecución?

Hasta 100 puertos únicos por ejecución. Un rango como 1-100 cuenta como 100; las listas se deduplican antes de contar. Entradas por encima del límite devuelven un 422 — divida su escaneo en lotes. Elegimos 100 porque el peor caso (todos los puertos filtrados) tarda 100 × 3 s = 5 minutos; permitir más bloquearía al worker más allá del tiempo de respuesta razonable.

¿Por qué el nombre del «servicio» es una suposición?

Los números de puerto TCP no identifican realmente servicios — cualquiera puede ejecutar cualquier cosa en cualquier puerto. Mapeamos las asignaciones IANA conocidas (22 → ssh, 443 → https) para que el resultado sea legible en el caso común, pero si alguien ejecuta PostgreSQL en el puerto 80 seguirá diciendo «http». Para saber qué habla realmente en un puerto, nuestra herramienta Server Check captura el banner real desde el handshake.