Leer y escribir son las operaciones básicas que se pueden aplicar a los datos en todos los sistemas. TCP se abrevia como Protocolo de control de transmisión y es un protocolo de comunicación orientado a la conexión que facilita que las computadoras en una red envíen y reciban mensajes. Es el protocolo más utilizado en las redes que emplean el Protocolo de Internet (IP); a veces se le denomina TCP/IP cuando se usa de forma conjunta. UDP, abreviado como User Datagram Protocol, es un protocolo de comunicación utilizado para construir conexiones de baja latencia y tolerancia a pérdidas entre aplicaciones en Internet. En este artículo, analizaremos el comando "Netcat", que se usa para leer y escribir discos a través de redes que usan los protocolos TCP y UDP en Ubuntu 20.04 (SO Linux).
La aplicación de utilidad Netcat incluye varias instrucciones para administrar redes y monitorear el nivel de datos entre sistemas. Los protocolos TCP y UDP son la base de las redes informáticas, como Internet. Se considera la navaja suiza de las herramientas de red y se encuentra entre las herramientas más eficaces en el arsenal de los administradores de redes y sistemas. Netcat es un programa multiplataforma que se ejecuta en Linux, Windows, Mac OS X y BSD. Netcat se puede utilizar para depurar y analizar problemas de conectividad, así como para buscar puertos abiertos, transferir datos y actuar como proxy.
Uso de Netcat para leer y escribir datos en la red
En macOS y distribuciones comunes de Linux como Ubuntu y Debian, el paquete Netcat viene preinstalado. Algunas de las utilidades de "Netcat" se mencionan a continuación.
- Realizar escaneo de puertos a través de Netcat
- Enviar archivos a través de Netcat
- Cree un servidor web a través de Netcat
Sintaxis:
$ nc [options] host port |
En los sistemas Ubuntu se usa "nc" o "netcat".
Se establecerá una conexión TCP para proporcionar host/hosts y puerto/puertos por parte de Netcat de forma predeterminada. Utilice la opción -u si desea crear una conexión UDP.
$ nc -u host port |
Realizar escaneo de puertos a través de Netcat
Una de las aplicaciones más frecuentes de Netcat es el escaneo de puertos. Tiene la opción de escanear un solo puerto o un rango de puertos.
TCP:
Buscar puertos abiertos:
Para escanear los puertos abiertos en el rango de 30 a 60 usando Netcat, ejecute el comando que se menciona a continuación:
$ nc -z -v 10.0.2.15 30-60 |

-z le indicará a NC que solo busque puertos abiertos y que no les envíe ningún dato.
-v dice la información sobre detallada.
Filtre el resultado usando el comando grep:
$ nc -z -v 10.0.2.15 2>&1 | grep succeeded |

Ninguna conexión fue exitosa en este rango.
UDP:
Simplemente agregue el parámetro -u a la secuencia de comandos para verificar los puertos UDP en el comando mencionado a continuación:
$ nc -z -v -u 10.0.2.15 30-60 |

No hay puerto UDP en este rango.
Envío de archivos a través de Netcat
Al establecer un modelo básico de cliente o servidor, Netcat puede usarse para transportar datos de un host a otro. Esto se logra usando la opción -l en el host receptor para configurar Netcat para escuchar en un puerto determinado, luego creando una conexión TCP estándar desde varias computadoras y transfiriendo el archivo a través de ella.
Ejecute el comando mencionado a continuación en el extremo receptor, que abre el puerto 6666 para las conexiones entrantes y desvía el resultado de salida al archivo:
$ nc -l 6666 > linux1.txt |

Linux1.txt es el nombre de archivo que se abrirá para escribir, y puede cambiar el nombre de archivo de acuerdo con sus requisitos.
Ahora el host receptor se conectará al host emisor y enviará el archivo:
$ nc google.com 6666 < linux2.txt |

Creación de servidor web a través de Netcat
En primer lugar, cree un archivo HTML simple "linux, html" usando el comando nano:
$ nano linux.html |

Escriba el contenido mencionado a continuación o puede agregar contenido de acuerdo con sus requisitos siguiendo las reglas del archivo html.
<html>
<head>
<title> Linux<title>
<head>
<html> |

Guarde con "Ctrl+S" y cierre el archivo con "Ctrl+X".
$ printf 'HTTP/1.1 200 OK\n\n%s' "$(cat linux.html)" | netcat -l 8888 |

Ahora en el navegador, puede acceder al archivo mediante el enlace mencionado a continuación:
http://server-ip:8888 |
Conclusión:
Netcat es una utilidad básica de Linux que utiliza los protocolos TCP/UDP para leer y escribir datos a través de conexiones de red. Está destinado a ser una herramienta de back-end confiable que puede ser operada directamente o simplemente por otras aplicaciones y programas. Este artículo brinda información sobre el uso de Netcat con el protocolo TCP y UDP y algunos otros usos, como escanear puertos, enviar archivos y crear un servidor web.