Tema de Jannah La licencia no está validada. Vaya a la página de opciones del tema para validar la licencia. Necesita una sola licencia para cada nombre de dominio.

Cómo usar el comando nc en Linux para probar redes y resolver problemas de conexión

6 usos del comando nc en Linux en redes

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.

linux-mascot-terminal-multiplexer Formas de usar el comando nc en Linux para probar redes y resolver problemas de conexión

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

 

Establecer una conexión de red entre dos máquinas mediante NC

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.

Lea también:  La guía completa para administrar paquetes Snap en Ubuntu

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

Establecer una conexión de red UDP entre dos máquinas mediante NC

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

Formas de usar el comando nc en Linux para probar redes y resolver problemas de conexión

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

Transferir archivos entre máquinas usando el comando nc en Linux para probar redes y resolver problemas de conexión

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.

Lea también:  Cómo agregar un usuario a un grupo en Linux paso a paso

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

Creación de un servidor web minimalista con el comando NC en Linux para probar redes y solucionar problemas de conexión

También puedes usar el comando curl para obtener una página HTML.

rizo http://192.168.100.4:8080

Creación de un servidor web mínimo utilizando el comando nc y obteniendo el contenido mediante curl

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

Creación de una aplicación de chat simple usando el comando nc en Linux para probar redes y resolver problemas de conexión

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ó.

Lea también:  ¿Qué es Proton para Steam y cómo afecta a los juegos en Linux?

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

Creación de una aplicación de chat simple usando el comando nc en Linux para probar redes y resolver problemas de conexión

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.

Ir al botón superior