Cómo usar Netcat para transferir archivos rápidamente entre computadoras Linux

No hay escasez de soluciones de software que puedan ayudarlo a transferir archivos entre computadoras. Sin embargo, si hace esto muy pocas veces, las soluciones típicas como NFS y SFTP (a través de OpenSSH) pueden resultar excesivas. Además, estos servicios están permanentemente abiertos a recibir y gestionar conexiones entrantes. Configurado incorrectamente, esto podría hacer que su dispositivo sea vulnerable a ciertos ataques.

netcat, la llamada “navaja suiza TCP / IP”, se puede utilizar como una solución ad-hoc para transferir archivos a través de redes locales o Internet. También es útil para transferir datos hacia / desde sus máquinas virtuales o contenedores cuando no incluyen la función lista para usar. Incluso puede usarlo como un mecanismo de copiar y pegar entre dos dispositivos.

Cómo instalar netcat en varias distribuciones de Linux

La mayoría de los sistemas operativos basados ​​en Linux vienen con este preinstalado. Abra una terminal y escriba:

netcat-command-not-found

Si no se encuentra el comando, instale el paquete que contiene netcat, una variante de BSD. También existe la versión GNU de netcat que contiene menos funciones. Necesita netcat tanto en la computadora que recibe el archivo como en la que lo envía.

En distribuciones basadas en Debian como Ubuntu o Linux Mint, instale la utilidad con:

Con openSUSE, siga las instrucciones de esta página, específico para su distribución exacta.

En Arch Linux ingrese el siguiente comando:

Desafortunadamente, la familia RedHat no incluye las variantes BSD o GNU de netcat. Por alguna extraña razón, decidieron optar por nmap-ncat. Si bien son similares, algunas opciones de la línea de comandos no están disponibles, por ejemplo -N. Esto significa que tendrá que reemplazar una línea como nc -vlN 1234 > nc con nc -vl 1234 > nc para que funcione en RedHat / Fedora.

Para instalar ncat en RedHat:

Y en Fedora:

Cómo usar netcat para transferir archivos entre computadoras Linux

En la computadora que recibirá el archivo, busque la dirección IP utilizada en su red interna.

Después de “src”, verá la dirección IP de red interna del dispositivo. Si, por alguna razón, los resultados son irrelevantes, también puede probar:

netcat-find-ip-address

En la captura de pantalla que se ofrece como ejemplo, la IP es 10.11.12.10.

En la misma computadora, la que recibirá el archivo, ingrese este comando:

archivo-receptor-netcat

Y en la computadora que enviará el archivo, escriba esto, reemplazando 10.11.12.10 con la IP que descubrió anteriormente:

archivo-de-envío-netcat

Las rutas de directorio y archivo pueden ser absolutas o relativas. Una ruta absoluta es “/home/user/Pictures/file.png”. Pero si ya está en “/ home / user”, puede usar la ruta relativa, “Pictures / file.png”, como se ve en la captura de pantalla anterior.

En el primer comando se utilizaron dos parámetros: -v y -l. -v hace que la salida sea más detallada, imprimiendo más detalles, para que pueda ver lo que está sucediendo. -l hace que la utilidad “escuche” en el puerto 44444, esencialmente abriendo un canal de comunicación en el dispositivo receptor. Si tiene reglas de firewall activas, asegúrese de que no bloqueen la conexión.

En el segundo comando, -N hace que netcat se cierre cuando se realiza la transferencia.

Normalmente, netcat daría salida al terminal todo lo que recibe. > crea una redirección para esta salida. En lugar de imprimirlo en la pantalla, envía toda la salida al archivo especificado después >. < funciona a la inversa, tomando la entrada del archivo especificado en lugar de esperar la entrada del teclado.

Si usa los comandos anteriores sin redirecciones, por ejemplo, nc -vl 44444 y nc -N 10.11.12.10 44444, crea un “chat” rudimentario entre los dos dispositivos. Si escribe algo en una terminal y presiona Enter, aparecerá en la otra computadora. Así es como puede copiar y pegar texto de un dispositivo a otro. prensa Ctrl + re (en el remitente) o Ctrl + C (en cualquier lugar) para cerrar la conexión.

Optimizar las transferencias de archivos

Cuando envía archivos grandes, puede comprimirlos sobre la marcha para acelerar la transferencia.

En el extremo de recepción ingrese:

Y en el remitente, ingrese lo siguiente, reemplazando 10.11.12.10 con la dirección IP de su dispositivo receptor:

Enviar y recibir directorios

Obviamente, a veces es posible que desee enviar varios archivos a la vez, por ejemplo, un directorio completo. Lo siguiente también los comprimirá antes de enviarlos a través de la red.

En el extremo receptor, use este comando:

netcat-recibiendo-tar-gzip-directorio

En el dispositivo de envío, use:

netcat-enviando-tar-gzip-directorio

Conclusión

Preferiblemente, solo usaría esto en su red de área local. La razón principal es que el tráfico de la red no está encriptado. Si envía esto a un servidor, a través de Internet, sus paquetes de datos podrían ser interceptados a lo largo de la ruta de la red. Pero si los archivos que transfiere no contienen datos confidenciales, no es un problema real. Sin embargo, los servidores suelen tener SSH preconfigurado para aceptar conexiones FTP seguras, y puede utilizar SFTP en su lugar para transferencias de archivos.

¿Es útil este artículo?

Puedes compartirlo con algun conocido(a) que le pueda interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *