Introducción
En el mundo de la administración de Linux, a netcat (nc) se le suele llamar la «navaja suiza» de las redes. Esta utilidad, pequeña pero potente, permite enviar y recibir datos por los protocolos TCP y UDP. Aunque las funciones de netcat puedan parecer limitadas, la herramienta cumple de maravilla a la hora de probar conexiones, depurar servicios de red y realizar comunicaciones de red básicas.
¿Qué te permite hacer este comando?
Netcat es una herramienta de red universal que se usa en muchos escenarios de administración de sistemas y desarrollo. Estas son las principales posibilidades de la utilidad:
- Trabajo con TCP/UDP – crear y gestionar conexiones con ambos protocolos para probar servicios de red.
- Monitorización de puertos – escuchar puertos concretos para analizar las conexiones entrantes.
- Transferencia de datos – enviar información directamente entre sistemas a través de la red.
- Chat – montar un sistema sencillo de intercambio de mensajes de texto entre hosts.
- Escaneo de puertos – detectar servicios de red abiertos en sistemas remotos.
- Tunelización – redirigir el tráfico de red a través de puertos o hosts alternativos.
- Funciones de proxy – trabajar de forma básica a través de servidores proxy en operaciones de red.
- Servidor web de prueba – crear rápidamente puntos HTTP sencillos para hacer pruebas.
Opciones principales del comando
Para trabajar bien con netcat, es importante entender sus parámetros principales de línea de comandos:
-6– activa la compatibilidad con IPv6 (por defecto se usa -4 para IPv4)-h– muestra la ayuda sobre los parámetros disponibles-i– establece el intervalo de espera entre operaciones (en segundos)-l– activa el modo de escucha de un puerto-N– cierra la conexión automáticamente después de transferir un archivo-n– desactiva la resolución DNS para trabajar directamente con direcciones IP-P user_name– indica el usuario para la conexión a través del proxy-x address:port– configura la dirección y el puerto del proxy-p port– indica el puerto de forma explícita (normalmente se elige automáticamente)-U– usa sockets UNIX para la comunicación entre procesos-u– cambia al protocolo UDP en lugar de TCP-v– activa el modo de salida detallada-w– establece el tiempo de espera de la conexión en segundos-z– escanea sin transferir datos
Comprobar puertos
Una de las tareas principales de netcat es diagnosticar si los servicios de red están disponibles. Para comprobarlo, usa la combinación de parámetros -vz:
$ nc -vz 192.168.31.247 8080
$ nc -vz 192.168.31.247 1-1000 2>&1 | grep succeeded.png)
Captura con un ejemplo de ejecución del comando
Para comprobar puertos UDP, añade el parámetro -u:
$ nc -vzu 192.168.31.247 1-1000 2>&1 | grep succeededTen en cuenta que los puertos UDP siempre aparecen como disponibles por cómo funciona el protocolo.
Escuchar puertos
Para vigilar la actividad de red, usa el modo de escucha:
$ nc -nlv 8080.png)
Captura con un ejemplo de escucha de un puerto
WARNING
Si usas TCP, asegúrate de que el puerto esté libre – si no, te saldrá el error "Already in use". Recuerda también que los puertos bajos (< 1024) necesitan privilegios de root.
Transferir archivos
Netcat te permite montar un intercambio de datos sencillo entre sistemas. Empecemos con un ejemplo básico – un chat de texto.
En el lado que recibe:
$ nc -lp 8080.png)
En el lado que envía:
$ nc 0.0.0.0 8080Para transferir archivos, el mecanismo es parecido. En el lado que recibe:
$ nc -l 8080 > paste.txtEn el lado que envía:
$ nc -N 0.0.0.0 8080 < copy.txtServidor web sencillo
Con netcat puedes crear un servidor HTTP básico. Aunque sus funciones son limitadas, resulta útil para hacer pruebas rápidas:
$ while true; do echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l -w 1 8080; done.png)
El parámetro -w 1 hace que la conexión se cierre automáticamente si no la cierra el navegador.
Shell remota
Netcat también sirve para acceder a un sistema de forma remota. Aunque el antiguo parámetro -e se eliminó por motivos de seguridad, hay métodos alternativos:
En el lado que recibe:
$ nc -lvnp 8080En el lado que envía:
$ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | sh -i 2>&1 | nc 0.0.0.0 8080 >/tmp/f.png)
DANGER
Ten cuidado con el acceso remoto – es una posible vía de ataque. Configura siempre un cortafuegos y sigue las buenas prácticas de seguridad.
Recursos adicionales
Para ver toda la información sobre las posibilidades de netcat, usa:
man ncINFO
No te olvides de la seguridad cuando trabajes con herramientas de red. Documenta todos los cambios y revisa con regularidad los ajustes de protección de la red.
Nuestros recursos
Canal de Telegram: https://t.me/f3cloud_news
Web del hosting: https://f3cloud.com