Transferencia de archivos usando Netcat
En este paso, aprenderá a usar netcat para transferir archivos entre sistemas, una aplicación práctica que demuestra la versatilidad de netcat más allá de la simple comunicación de texto.
Entendiendo Netcat para la transferencia de archivos
Netcat se puede usar para transferir archivos entre computadoras al:
- Redirigir la entrada desde un archivo en el lado del remitente
- Redirigir la salida a un archivo en el lado del receptor
Este enfoque no requiere protocolos adicionales como FTP o SCP, lo que lo hace útil en escenarios donde esas herramientas podrían no estar disponibles.
Configurando el receptor
Primero, configuremos el extremo receptor que aceptará el archivo. Abra una terminal y ejecute:
nc -l -p 7000 > received_file.txt
Este comando:
- Configura un servidor en escucha en el puerto 7000
- Redirige cualquier dato recibido a un archivo llamado
received_file.txt
Creando un archivo de prueba para enviar
Antes de enviar, creemos un archivo de muestra para transferir. En una nueva terminal, ejecute:
echo "This is a test file that will be transferred using netcat." > original_file.txt
echo "Netcat can be used for simple file transfers between systems." >> original_file.txt
echo "This demonstrates a practical use case of the nc command." >> original_file.txt
## View the file contents to confirm
cat original_file.txt
Debería ver el contenido del archivo mostrado en la terminal.
Enviando el archivo
Ahora, enviemos el archivo al receptor. En la misma terminal donde creó el archivo, ejecute:
cat original_file.txt | nc localhost 7000
Este comando:
- Lee el contenido de
original_file.txt usando cat
- Canaliza (
|) este contenido a netcat
- Netcat envía los datos a localhost en el puerto 7000
La transferencia ocurre inmediatamente. Después de que se completa la transferencia, el proceso de netcat en el lado del remitente saldrá automáticamente, pero el lado del receptor continuará esperando más datos.
Verificando la transferencia
Una vez que se ha enviado el archivo, presione Ctrl+C en la terminal del receptor para cerrar la conexión. Ahora, verifiquemos que el archivo se transfirió correctamente:
cat received_file.txt
Debería ver el mismo contenido que estaba en el archivo original, confirmando una transferencia exitosa.
Comparando los archivos
Para asegurar que la transferencia fue perfecta, puede comparar los dos archivos:
diff original_file.txt received_file.txt
Si no hay salida, significa que los archivos son idénticos y la transferencia fue exitosa.
Este método de transferencia de archivos funciona no solo en una máquina local, sino también entre diferentes computadoras en una red. Simplemente reemplazaría localhost con la dirección IP o el nombre de host de la máquina remota.
Esta técnica puede ser especialmente útil en entornos donde las herramientas tradicionales de transferencia de archivos no están disponibles o están restringidas, lo que convierte a netcat en una herramienta valiosa en el conjunto de herramientas de un administrador de sistemas.