Ir al contenido
HexaTransfer
Volver al blog
Transferencia de archivos

Herramientas de transferencia de archivos Linux: CLI y web

Explora las mejores herramientas de transferencia de archivos para Linux. Desde utilidades CLI hasta servicios web para enviar archivos.

En Linux, la mejor herramienta de transferencia depende de si mueves archivos entre tus propias máquinas (rsync, scp, sftp) o envías a alguien que no controlas (servicios por navegador como HexaTransfer). Para copias masivas de servidor a servidor, rsync -avP --partial es el caballo de batalla. Para entregas puntuales a un destinatario no técnico, una URL de un servicio por navegador gana a pedirle que instale un cliente SSH. Los entornos de escritorio Linux (GNOME, KDE) también soportan SMB, WebDAV y SFTP de forma nativa desde el gestor de archivos.

Los clásicos de la CLI

scp: copia segura sobre SSH. Sencillísimo:

scp bigfile.tar.gz user@server:/home/user/
scp -r folder/ user@server:/path/

Sin reanudación ante fallo. Bien para redes fiables, molesto en redes inestables. OpenSSH 9.0 (2022) cambió el protocolo por defecto de SCP-sobre-SSH a SFTP: el comportamiento es similar pero hay diferencias en los casos límite.

rsync: sincronización incremental con reanudación:

rsync -avP --partial source/ user@server:/dest/

Flags: -a modo archive (preserva permisos, tiempos, enlaces simbólicos), -v verbose, -P progreso + --partial (mantiene el archivo parcial al fallar). --bwlimit=50000 limita el ancho de banda a 50 MB/s si estás en un enlace compartido.

Con raíces de origen y destino idénticas, rsync solo transfiere los bytes cambiados en ejecuciones posteriores: un enorme ahorro de tiempo en transferencias repetidas.

sftp: transferencia interactiva basada en SSH. Úsalo como un viejo cliente FTP:

sftp user@server
> put bigfile.tar.gz
> get somefile.txt

rclone: como rsync pero para proveedores de nube. Soporta S3, Google Drive, Dropbox, OneDrive, Backblaze B2 y docenas más. Genial para subidas scriptadas a object storage:

rclone copy local/folder remote:bucket/path -P

Opciones por navegador para destinatarios no técnicos

No todo destinatario tiene claves SSH. Para enviar a periodistas, clientes o familiares, lo que funciona es la URL de un servicio de transferencia:

| Servicio | Máx. gratis | Cifrado | Amigable con Linux | |---|---|---|---| | HexaTransfer | 10 GB | AES-256-GCM extremo a extremo | Sí (cualquier navegador) | | WeTransfer | 2 GB | TLS | Sí | | SwissTransfer | 50 GB | TLS | Sí | | Proton Drive Share | 1 GB | Extremo a extremo | Sí | | Tresorit Send | 5 GB | Extremo a extremo | Sí |

Firefox y Chromium en Linux gestionan subidas grandes con solvencia. El rendimiento de subida suele depender del hardware y del enlace, no del navegador.

Herramientas en la misma red desde el escritorio

GNOME Files (Nautilus): Conectar al servidor > smb://, sftp://, ftp://, dav://. Monta el remoto como si fuera local. Bueno para navegación ocasional.

KDE Dolphin: misma capacidad, UX ligeramente distinta. Soporta los mismos protocolos.

smbclient: SMB en línea de comandos para scripts:

smbclient //server/share -U user

sshfs: monta un sistema de archivos remoto por SSH:

sshfs user@server:/remote/path ~/mnt/remote

Útil cuando una app espera una ruta local.

Ajuste de velocidad de transferencia en Linux

El escalado de ventana TCP por defecto de Linux maneja bien las transferencias de alto ancho de banda, pero algunas distros traen ajustes conservadores. Para transferencias en enlaces de larga distancia (alta latencia, alto ancho de banda):

sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

Activa el control de congestión BBR para mejor throughput en enlaces con pérdidas:

sysctl -w net.ipv4.tcp_congestion_control=bbr

No hacen falta en redes domésticas normales, pero si mueves datos entre centros de datos o entre continentes, la diferencia entre CUBIC por defecto y BBR puede ser de 2-3x.

Archivado: variantes de tar

tar -czf archive.tar.gz folder/          # gzip, rápido, compresión moderada
tar -cjf archive.tar.bz2 folder/         # bzip2, más lento, mejor compresión
tar -cJf archive.tar.xz folder/          # xz, el más lento, la mejor compresión
tar --use-compress-program=zstd -cf archive.tar.zst folder/   # zstd, rápido y buen ratio

Para Linux moderno, zstd supera a gzip en velocidad y ratio. Para distribuir a destinatarios no Linux, quédate con .zip: usa zip -r archive.zip folder/.

Para dividir un archivo enorme en trozos:

tar -czf - folder/ | split -b 2G - archive.tar.gz.part_

Reensamblar con cat archive.tar.gz.part_* | tar -xzf -.

Object storage como medio de transferencia

Para cargas que generan muchos archivos o archivos enormes, tratar un bucket en la nube como capa de transferencia es más limpio que un servicio puntual:

AWS S3: aws s3 cp file s3://bucket/path y luego genera una URL prefirmada con aws s3 presign s3://bucket/path --expires-in 3600. El destinatario recibe una descarga directa con límite de tiempo.

Cloudflare R2: API compatible con S3, sin tarifas de egress. Usa el mismo CLI aws con un endpoint personalizado.

Backblaze B2: b2 upload-file bucket file key y luego b2 get-download-url-with-auth bucket key 3600.

MinIO: autoaloja un servidor compatible con S3, emite URLs prefirmadas desde tu propio dominio.

Para desarrolladores que envían artefactos de build, logs o dumps, estas son mejores que un servicio de transferencia genérico.

Servidores HTTP improvisados

Para envíos rápidos en la misma LAN:

python3 -m http.server 8000

Sirve el directorio actual en http://tu-ip:8000/. El destinatario entra a la URL y descarga. Útil entre tu portátil y una VM o un móvil en el mismo Wi-Fi. Sin cifrar: vale para interno, no para externo.

Para HTTPS con un certificado autofirmado:

python3 -c "import http.server, ssl; httpd = http.server.HTTPServer(('0.0.0.0', 8443), http.server.SimpleHTTPRequestHandler); httpd.socket = ssl.wrap_socket(httpd.socket, certfile='cert.pem', server_side=True); httpd.serve_forever()"

caddy file-server hace esto limpiamente con HTTPS automático si tienes un dominio real.

Herramientas P2P

Magic Wormhole (wormhole):

wormhole send bigfile.tar.gz
# imprime un código tipo 7-crossover-clockwork
# el destinatario ejecuta: wormhole receive 7-crossover-clockwork

Cifrado de extremo a extremo, funciona a través de NAT gracias a un servidor de rendezvous. Genial para envíos directos puntuales.

croc (de schollz): similar a wormhole, binario único, multiplataforma. Popular en la comunidad homelab.

Son peer-to-peer pero siguen pasando por servidores de rendezvous para atravesar NAT: el cifrado es E2E, la ruta no es directa.

Cifrado en reposo antes de subir

Para flujos más paranoicos, cifra el archivo antes de enviarlo por cualquier servicio:

gpg --symmetric --cipher-algo AES256 bigfile.tar.gz

Produce bigfile.tar.gz.gpg. El destinatario descifra con gpg --decrypt. Comparte la frase de paso por fuera.

O usa age, una alternativa moderna:

age -p -o encrypted.age plaintext.tar.gz

Con servicios de transferencia con cifrado E2E como HexaTransfer, este doble envoltorio suele ser innecesario, pero para modelos de amenaza a nivel de Estado-nación, cinturón y tirantes tiene sentido.

Pruébalo en hexatransfer.com — gratis, sin cuenta, hasta 10 GB.

Envía archivos grandes de forma segura con cifrado de extremo a extremo

Transfiere archivos de hasta 10 GB gratis con cifrado de extremo a extremo. Sin necesidad de cuenta. Tus archivos se cifran en tu navegador antes de subirlos: nadie más puede leerlos.

Enviar un archivo