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

No hay escasez de soluciones de software que puedan ayudarlo a transferir archivos entre computadoras. Sin embargo, si hace esto muy raramente, las soluciones típicas como NFS y SFTP (a través de OpenSSH) pueden ser excesivas. Además, estos servicios están permanentemente abiertos para recibir y procesar las comunicaciones entrantes. Si se configura 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 dedicada para transferir archivos a través de redes locales o Internet. También es útil para mover datos hacia/desde máquinas virtuales o contenedores cuando no se incluye en la característica. Incluso puede usarlo como un mecanismo de copiar y pegar entre dos dispositivos.

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

Cómo instalar netcat en diferentes distribuciones de Linux

La mayoría de los sistemas operativos Linux vienen preinstalados con netcat. Abra la Terminal y escriba:

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

Si no encuentra el comando, instale el paquete que contiene netcat, que es la variante BSD. También hay una versión GNU de netcat que tiene 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:

sudo apt install netcat-openbsd

Con openSUSE, siga las instrucciones en Esta página precisamente para su distribución.

En Arch Linux, ingrese el siguiente comando:

sudo pacman -S openbsd-netcat

Desafortunadamente, la familia RedHat no incluye variantes BSD o GNU de netcat. Por alguna extraña razón, decidieron optar por nmap-ncat. Aunque algunas opciones de la línea de comandos son similares, 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.

instalar ncat En RedHat:

sudo yum install nmap-ncat

Y en Fedora:

sudo dnf install nmap-ncat

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.

ip route get 8.8.8.8

distancia "srcVerá la dirección IP de la red interna del dispositivo. Si, por alguna razón, los resultados no son relevantes, también puedes intentar:

ip address
Cómo usar Netcat para transferir archivos rápidamente entre computadoras con Linux - Linux

En la captura de pantalla que se muestra como ejemplo, la dirección IP es 10.11.12.10.

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

nc -vl 44444 > pick_desired_name_for_received_file
Cómo usar Netcat para transferir archivos rápidamente entre computadoras con Linux - Linux

Y en la computadora que enviará el archivo, escriba esto y reemplace el número 10.11.12.10 Con la IP que descubriste antes:

nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
Cómo usar Netcat para transferir archivos rápidamente entre computadoras con Linux - Linux

Las rutas de directorios y archivos pueden ser absolutas o relativas. El camino absoluto es/home/usuario/Imágenes/archivo.png. Pero si ya estás en Usuario doméstico“Puedes usar la ruta relativa”Imágenes / archivo.png”, como se muestra en la imagen de arriba.

En el primer comando se utilizaron dos parámetros: -v و - l، -v El detallado hace que la salida se imprima para obtener más detalles, para que pueda ver lo que está sucediendo. -l Hace que la herramienta "escuche" en el puerto 44444, esencialmente abriendo un canal de comunicación en el receptor. Si las reglas del firewall están activas, asegúrese de que no estén bloqueando la conexión.

En el segundo asunto, -N Marcas netcat Se cierra cuando finaliza la transferencia.

Normalmente, producirá netcat En Terminal que todos recibieron. > 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 está utilizando los comandos anteriores sin redireccionamientos, por ejemplo, nc -vl 44444 y nc -N 10.11.12.10 44444 Luego, puede crear un "chat" rudimentario entre los dos dispositivos. Si escribe algo en una Terminal y presiona Entrar, aparecerá en la otra computadora. Así es como puede copiar y pegar texto de un dispositivo a otro. Haga clic en Ctrl + D (en el remitente) o Ctrl + C (en cualquier lugar) para cerrar la conexión.

Transferencia de archivos mejorada

Al enviar archivos grandes, puede comprimirlos fácilmente para aumentar la velocidad de transferencia.

En el extremo receptor ingrese:

nc -vl 44444 | gunzip> pick_desired_name_for_file

Y en el dispositivo emisor, ingrese lo siguiente y reemplace el número 10.11.12.10 La dirección IP de su receptor:

gzip -c /path/to/file/you/want/to/send | nc -N 10.11.12.10 44444

Enviar y recibir carpetas

Obviamente, a veces es posible que desee enviar varios archivos a la vez, por ejemplo, una carpeta completa. La siguiente pulsación también lo comprimirá antes de enviarlo a través de la red.

En el extremo receptor, use este comando:

nc -vl 44444 | tar zxv

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

En el transmisor, utilice:

tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
Cómo usar Netcat para transferir archivos rápidamente entre computadoras con Linux - Linux

Conclusión

Preferiblemente, solo usará esto en su red local. La razón principal es que el tráfico de la red no está encriptado. Si está enviando esto a un servidor, a través de Internet, sus paquetes de datos pueden 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 generalmente vienen con SSH preinstalado para aceptar conexiones FTP seguras, y puede usar SFTP en su lugar para transferir archivos.

Ir al botón superior