Envíe datos a través de computadoras en red con Netcat usando la línea de comandos

Anonim

Netcat es una poderosa herramienta de línea de comandos que puede leer y escribir datos a través de una conexión de red usando TCP/IP, se usa comúnmente para retransmisiones, transferencia de archivos, escaneo de puertos, entre otras cosas. Aunque los orígenes de netcat son de los mundos de unix y linux, netcat también está integrado en Mac OS X, y vamos a utilizar la utilidad nc como una manera fácil de enviar datos y otros textos a través de dos computadoras en red.Al usar netcat para enviar datos con una relación de cliente y servidor bastante simple, ofrece una alternativa potencialmente más rápida al uso compartido de archivos tradicional cuando los usuarios prefieren permanecer en la línea de comando mientras envían y reciben datos, y cuando no es posible conectarse a través de SSH o SFTP. t práctico.

Tenga en cuenta que netcat no requiere inicios de sesión ni autenticación, el único requisito es que el cliente conozca la dirección IP del servidor y el número de puerto de escucha. Obviamente, eso genera cierto potencial de mal uso de la seguridad, por lo que el uso de netcat para enviar datos y texto generalmente se reserva mejor para usuarios avanzados, o para uso exclusivo detrás de una red local protegida donde hay poco riesgo. Situaciones en las que es importante enfatizar la seguridad, sería mejor usar SSH.

Para simplificar, nos referiremos a la computadora 1 que está escuchando con netcat como "Servidor", y nos referiremos a la computadora 2 que envía los datos a la computadora 1 como "cliente".

Configurar Netcat para escuchar en el servidor (computadora 1) y puerto

Iniciaremos netcat y lo haremos escuchar en el puerto 2999, y luego redirigiremos cualquiera de los datos recibidos a un archivo llamado "received.txt" con la siguiente cadena de comando:

nc -l 2999 > recibido.txt

Antes de llamarlo hecho y pasar al cliente, querrá tener la dirección IP de Mac en la red local. Puede obtenerlo desde el panel de control de Red, o como ya está en la Terminal, a través de la línea de comando con la siguiente sintaxis:

ipconfig getifaddr en0

Las Mac modernas con Wi-Fi solo usarán en0, las Mac con ethernet y wifi pueden usar en1. Si no aparece nada, pruebe con la otra interfaz para obtener la IP de la LAN. Supongamos que esta IP de Mac se informa como "192.168.1.101", por supuesto, es probable que la suya varíe. Necesitará esto en la computadora del cliente para enviar datos, que veremos a continuación.

Transferir datos del cliente (computadora 2) al servidor de escucha

Ahora en el cliente desde donde desea enviar datos, puede usar un comando como el siguiente. Usaremos cat para volcar un archivo de texto a través de la red al servidor netcat de escucha, pero puede canalizar casi cualquier cosa que desee:

cat envía estos datos sobre.txt | nc 192.168.1.101 2999

Para que esto funcione correctamente, asegúrese de completar su propia dirección IP del servidor y de buscar el archivo o texto apropiado que desea enviar.

Suponiendo que la red local sea mínimamente rápida, los datos deberían llegar bastante rápido, si no instantáneamente. Una vez que se complete la transferencia de datos, ambos lados de la conexión cesarán y el servidor dejará de escuchar, luego cerrará el puerto. Esto lo hace efectivo para el envío único de datos como archivos de registro o un documento de texto grande, pero no es necesariamente práctico para mover muchos archivos.

Como ya se mencionó, puede canalizar casi cualquier dato, ya sea la salida de otra aplicación, tail, cat o incluso descargada directamente desde el portapapeles con pbcopy y pbpaste, se transferirá a través de netcat.

Debe tenerse en cuenta que hay formas más convenientes de compartir un portapapeles entre Mac o entre una Mac y una máquina Linux o Windows, y en esas situaciones es mejor usar herramientas gratuitas como Teleport para Mac. uso compartido de entrada a Mac, o la utilidad gratuita Synergy si vas a usar una plataforma cruzada entre Mac y PC. Ambos permiten a un usuario compartir datos del portapapeles, así como dispositivos de entrada como un mouse y un teclado.

Para que conste, aunque esta demostración se muestra en dos Mac con OS X, no hay ninguna razón por la que no pueda usar netcat para enviar datos entre una máquina Mac y Linux, o viceversa.

Hay toneladas de otros usos geniales para netcat, si tiene alguno favorito, ¡háganoslo saber en los comentarios!

Envíe datos a través de computadoras en red con Netcat usando la línea de comandos