Linux / Comando nc: conexiones TCP y pruebas UDP con Netcat

nc (Netcat) permite establecer o aceptar conexiones TCP e intercambiar datagramas UDP. También sirve para comprobar la accesibilidad de puertos en equipos autorizados, pero una prueba de transporte no demuestra que la aplicación funcione correctamente.

Distintas implementaciones, como OpenBSD netcat o Nmap Ncat, pueden proporcionar el comando nc. En pruebas TCP, -z comprueba la conexión sin intercambiar datos de aplicación y -v muestra mensajes de diagnóstico. La sintaxis de escucha, los tiempos de espera y otras opciones deben comprobarse en la implementación instalada.

Sintaxis básica

nc [opciones] host puerto

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man nc en el sistema actual.

Ejemplos de uso

Verificación del puerto SSH local

Verifique si el puerto TCP 22 en su computadora puede recibir conexiones.

nc -vz 127.0.0.1 22

Límite de tiempo de conexión

Limita la espera prolongada en puertos locales que no responden.

nc -w 3 -vz 127.0.0.1 80

Conexión directa

Observe los datos enviados por los servicios de su computadora. Termínelo con Ctrl+C.

nc -v 127.0.0.1 22

Interpretación de los resultados de la prueba de conexión de puertos

En una prueba TCP, nc -vz intenta establecer la conexión sin intercambiar datos de aplicación. Los mensajes de salida y las opciones disponibles dependen de la implementación de Netcat.

nc -vz example.com 443

Ejemplo de salida posible cuando la conexión es exitosa:

Connection to example.com 443 port [tcp/https] succeeded!

El éxito de la conexión solo significa que el puerto aceptó la conexión TCP, no que el certificado TLS o la respuesta HTTP sean correctos. Si hay un tiempo de espera, revise el firewall, la ruta o el estado de escucha del servidor; si se rechaza de inmediato, verifique si el destino no acepta conexiones. Envíe paquetes de prueba solo a destinos autorizados.

Opciones y formatos principales

Opciones·Formato Descripción
-z En TCP, comprueba la conexión sin intercambiar datos de aplicación.
-v Muestra la salida de diagnóstico en detalle.
-w segundos Establece el tiempo límite de conexión y E/S. El significado puede variar según la implementación.
-u Se utiliza en modo UDP.
-l Activa el modo de escucha. Confirme la sintaxis y el protocolo en la implementación instalada.

Precauciones al usar

Que el puerto esté abierto no garantiza que la aplicación funcione correctamente ni que la autenticación sea segura. Los resultados de UDP de -z son especialmente difíciles de interpretar debido a la falta de respuesta. Realice la verificación de host externo únicamente dentro del alcance autorizado por el propietario. Verifique las opciones de la implementación actual con nc -h.

Preguntas frecuentes

¿Son la misma herramienta nc y ncat?

Ambos pertenecen a la familia Netcat, pero la implementación puede variar. Verifique el paquete instalado y la salida de nc -h para diferenciar las opciones.

Documentación oficial

El comportamiento exacto de las opciones y las diferencias según la implementación se pueden consultar en la documentación oficial de nc.