mando nc En sistemas Linux, se considera una herramienta versátil que facilita la gestión de redes con facilidad y flexibilidad. Ya sea para comprobar puertos abiertos, probar la conectividad entre dos dispositivos o incluso transferir archivos rápidamente por la red, nc ofrece soluciones sencillas sin necesidad de herramientas complejas. Su principal ventaja es su simplicidad y su capacidad para realizar tareas avanzadas, tanto para administradores de red como para usuarios que buscan diagnosticar problemas de conectividad. A continuación, descubrirá sus usos prácticos más destacados y cómo puede facilitar la gestión de diversas situaciones de red.
La herramienta netcat es muy popular entre los administradores de red. Sin embargo, también puede ser útil para diversos fines como usuario habitual de Linux. Durante mi investigación, encontré algunos casos de uso interesantes para el comando nc.
6. Crear conexiones de red
Comenzaré con la función más simple e importante del comando nc: establecer una conexión TCP o UDP directa entre dos dispositivos. Esta es la base de muchos usos más avanzados.
Supongamos que tiene dos sistemas Linux. Para ilustrarlo, usaré una máquina con Ubuntu y otra con Linux Mint. Ubuntu actuará como servidor o receptor, mientras que Linux Mint actuará como cliente o conector.
Primero, enciende el oyente.
nc -l -p 12345
La opción -l se utiliza para el modo de escucha. La opción -p se utiliza para especificar el puerto. Aquí usamos el puerto 12345, pero puede usar cualquier otro puerto, a menos que ya esté en uso. Tras ejecutar este comando, su dispositivo permanecerá en espera de una conexión.
Ahora, desde el dispositivo de conexión, haga lo siguiente:
nc dirección IP número de puerto
Reemplace la dirección IP con la dirección IP de su servidor. El número de puerto será el que usó en el receptor. En mi caso, es el siguiente:
número 192.168.100.4 12345
Esto crea una conexión TCP entre los dos dispositivos. Además, no es una conexión unidireccional, ya que solo el servidor puede enviar; ambas partes pueden enviar y recibir.
Si desea establecer una conexión UDP, puede hacerlo con la opción -u. En el dispositivo de escucha, ejecute:
nc -u -l -p 12345
En la máquina cliente, ejecute:
nc -u 192.168.100.4 12345
Las conexiones UDP son menos fiables que las TCP. Sin embargo, son preferibles cuando la velocidad es crucial y la pérdida de datos es aceptable.
5. Escaneo de puertos
Además de conectarse a un solo puerto, NC puede escanear un grupo completo de puertos para ver cuáles están abiertos. Esto puede ayudar con la resolución de problemas o el inventario de servicios. Por eso, a NC a veces se le llama la "navaja suiza" de las redes.
Supongamos que desea averiguar qué puertos TCP están abiertos en el servidor desde el cliente. Cree un receptor en el servidor como antes.
nc -l -p 12345
Luego, desde el cliente ejecute:
nc -z -v 192.168.100.4 20-130
El indicador -z indica a netcat que utilice el modo de E/S cero. Esto significa que netcat solo debe comprobar si hay daemons en espera en lugar de enviar datos. El indicador -v habilita el modo verboso, que muestra mejor los resultados. También especificamos el rango de puertos de interés (20 a 130).
Advertencia
Analice únicamente sistemas de su propiedad o que tenga autorización expresa para hacerlo. El escaneo no autorizado puede ser ilegal o considerarse hostil.
En la demostración, casi todos los puertos se negaron a conectarse porque estaban cerrados, excepto el puerto 80. De la misma manera, también puede escanear los puertos UDP.
4. Transferencia de archivos
Netcat puede enviar archivos directamente por TCP o UDP sin necesidad de FTP, SCP ni carpetas compartidas. Esto lo hace ideal para transferencias rápidas, especialmente cuando no hay otros métodos disponibles. Enviemos un archivo desde Linux Mint a una máquina Ubuntu.
Tengo un archivo llamado test.txt, al que llamo "Archivo de Prueba de Transferencia de Archivos NC". Primero, crea un receptor en el dispositivo al que quieres transferir el archivo. Al hacerlo, redirige la salida de la conexión a un archivo, como se muestra a continuación.
nc -l -p 12345 > recibido.txt
Luego, en la máquina del remitente, redirija el contenido del archivo a su conexión nc de esta manera.
número 192.168.100.4 12345
Para verificar que la transferencia se realizó correctamente, use el comando ls para comprobar la existencia del archivo y luego el comando cat para leer su contenido. También puede invertir el proceso y enviar los archivos en la dirección opuesta. Solo tiene que invertir los roles con los comandos que mostré anteriormente.
3. Crear un servidor web
Netcat actúa como un servidor HTTP simple, escuchando un puerto y enviando archivos HTML sin procesar a cualquiera que se conecte. Claro que no reemplazará a Apache ni a Nginx. Sin embargo, es ideal para demostraciones rápidas, depuración o exploración de solicitudes HTTP.
Primero, crea un archivo HTML estático (lo llamo page.html) en tu servidor. En mi caso, es Ubuntu.
echo -e "HTTP/1.1 200 OK\r\nTipo de contenido: texto/html\r\n\r\n Hola desde Netcat " > página.html
En este archivo, he incluido la línea de estado HTTP, el encabezado Content-Type y algo de texto HTML simple. Las secuencias \r\n son esenciales en HTTP para separar los encabezados del cuerpo.
Ahora, ejecute el servidor web netcat en la misma máquina:
mientras sea verdadero; hacer nc -l -p 8080
Usamos un bucle while para mantener el servidor en funcionamiento incluso después de cada solicitud. Escuchamos en el puerto 8080 y enviamos un archivo HTML como respuesta. Ahora, abra un navegador web desde el equipo cliente (Linux Mint en mi caso) y visite la página HTML estática especificando la dirección IP y el puerto.
http://192.168.100.4:8080
También puedes usar el comando curl para obtener una página HTML.
rizo http://192.168.100.4:8080
2. Crea una aplicación de chat sencilla
Netcat puede conectar dos terminales, de modo que lo que escribas en una aparezca al instante en la otra. Con un sencillo truco de interfaz, puedes convertirlo en una herramienta de chat instantánea. No se necesitan aplicaciones de chat externas.
Para ello, debe crear una conexión de red como se describe en la primera sección. Cree un receptor en uno de los dispositivos:
nc -l -p 12345
Luego conéctate desde otro dispositivo.
número 192.168.100.4 12345
Una vez establecida la conexión, puedes escribir cualquier cosa en un dispositivo y aparecerá en el otro. Luego, puedes escribir cualquier cosa en el segundo dispositivo y aparecerá en el primero.
Ahora puedes escribir en la terminal para enviar mensajes de una computadora a otra. Intenté encontrar una solución para añadir los nombres de los remitentes a los mensajes correspondientes. De esta forma, sería más fácil rastrear quién los envió.
Puedes hacerlo añadiendo el nombre del remitente mediante echo y while. Aquí tienes la configuración. Ejecútalo en el servidor:
mientras lee el mensaje; hace eco de "Ubuntu: $msg"; hecho | nc -l -p 12345
Esto está en la máquina de Mosul:
mientras lee el mensaje; hace eco de "LM: $msg"; hecho | nc 192.168.100.4 12345
El comando anterior espera la entrada, le añade un prefijo y la envía. En el receptor, el prefijo aparece exactamente como si se hubiera enviado. Incluso si hay más de dos usuarios, podrá rastrear los mensajes de esta manera.
1. Solución de problemas de red
Finalmente, puede usar el comando nc para solucionar algunos problemas comunes de red. Cuando se produce un fallo de red, puede ayudar a confirmar si el problema es de conexión, de servicio o de firewall. Permite probar puertos, simular servicios y verificar respuestas iniciales.
Supongamos que una aplicación no responde, puedes usar el comando nc para ver si puedes conectarte a su puerto.
nc-zv 192.168.100.4 22
Si se bloquea o muestra un mensaje de “Conexión rechazada”, el puerto se cierra o se filtra.
Puedes comunicarte manualmente con el servicio para comprobar si responde como se espera. Por ejemplo, revisa la respuesta de un servicio HTTP local.
número 192.168.100.4 8080
Si el servicio se ejecuta correctamente, enviará un encabezado de respuesta HTTP y posiblemente código HTML. Esto es ideal para depurar aplicaciones web que no funcionan correctamente sin un navegador.
Si sospecha que una aplicación puede conectarse a un puerto, pero no envía los datos correctos, puede simular ser el servicio y capturar lo que envía la aplicación. Esto es útil para depurar protocolos cliente/servidor personalizados. Con netcat, puede ejecutar rápidamente estas pequeñas pruebas y descubrir dónde falla su red y cómo solucionarlo.
Hay muchas cosas que puedes hacer con netcat. Si te interesa, puedes consultar la página del manual. Usuario oficial de nc. Hay muchos otros comandos de red de Linux que recomendamos explorar.
El comando nc no es solo una herramienta tradicional de Linux; es una forma inteligente de diagnosticar redes y garantizar la integridad de las conexiones entre dispositivos. Su facilidad de uso y sus múltiples funciones lo convierten en la opción ideal para quienes buscan una herramienta de escaneo de red práctica y fiable. Pruébelo y descubrirá cómo puede ahorrarle mucho tiempo y esfuerzo al solucionar problemas de conectividad cotidianos.












