Cuando necesitamos verificar si un puerto está abierto en un servidor remoto, lo habitual era usar telnet, pero la alternativa moderna y más práctica es nc (netcat).
Viene instalado en la mayoría de distribuciones Linux y permite pruebas rápidas, escaneos y automatización.
Netcat es conocida como la «navaja suiza de TCP/IP». A diferencia de telnet, Netcat puede:
Soportar UDP: telnet solo funciona con TCP, mientras que Netcat maneja ambos.
Actuar como servidor: Puedes poner a la escucha un puerto (nc -l 8080).
Transferir archivos: Puedes enviar un archivo de una máquina a otra directamente.
Escaneo de puertos: Puede verificar rangos de puertos rápidamente (nc -zv).
Algunos tips para usar
Comprobar si un puerto responde
bash
nc -zv <host> <puerto>
-z→ modo scan, sin enviar datos-v→ modo verbose
Ejemplo:
bash
nc -zv google.es 80
Salida si está abierto:
Connection to google.es 80 port [tcp/http] succeeded!
Comprobar varios puertos
bash
nc -zv 192.168.1.50 22 80 443
Escanear un rango completo
bash
nc -zv 192.168.1.50 1-1024
Uso interactivo (como telnet)
bash
nc <host> <puerto>
Ejemplo probando SMTP:
bash
nc mail.example.com 25
EHLO prueba
Añadir timeout para evitar bloqueos
bash
nc -zvw 3 <host> <puerto>
-w 3→ espera sólo 3 segundos
Telnet vs Netcat
| Acción | Telnet | Netcat |
|---|---|---|
| Conectarse a un puerto | telnet host 80 | nc host 80 |
| Solo comprobar si está abierto | — | nc -zv host 80 |
Script rápido para comprobar puertos
bash
#!/bin/bash
HOST=$1
PORT=$2
if nc -zvw 2 "$HOST" "$PORT" 2>/dev/null; then
echo "$HOST:$PORT está abierto"
else
echo "$HOST:$PORT cerrado o inaccesible"
fi
Conclusión
nc es una herramienta ligera, rápida y más flexible que telnet. Permite comprobar puertos, probar servicios, automatizar comprobaciones y es perfecta para tareas de Sysadmin, DevOps, Networking o troubleshooting diario.
