Transferir archivos de manera fácil y rápida entre computadoras Linux

Hace un tiempo me vi en la necesidad de transferir archivos desde mi computadora de pruebas, que por entonces tenía Ubuntu 11.10, hacia la principal, en la que usaba Ubuntu 10.04 LTS, para poder hacer algunos cambios en las particiones de la primera. Luego de experimentar con muchos métodos, algunos que no funcionaban y otros que sí lo hacían pero muy lentamente, logré encontrar una solución que me convenció por ser sencilla, infalible y que permite alcanzar velocidades realmente tremendas.

Para este método habremos de recurrir a una utilidad pequeña, gratuita y libre llamada UDP Cast. Ésta se encuentra en los repositorios oficiales de la mayoría de las distribuciones (excepto en los de Arch Linux, pero se puede descargar desde AUR) por lo que simplemente la instalamos desde ahí. Para poder utilizarla deberemos tenerla instalada tanto en la computadora que habrá de enviar los archivos (servidor) como en la que los recibirá (cliente).

UDP Cast no cuenta con interfaz gráfica (y no he investigado si hay algún software que la proporcione) de modo que se utiliza desde la consola, pero su uso es bastante sencillo así que incluso si no te gusta la línea de comandos seguramente no tendrás problemas para utilizarla.

Empezando

Primeramente deberemos asegurarnos de que ambas computadoras están conectadas a la red local. Luego abrimos una consola en la computadora servidor y entramos al directorio que contiene el archivo o carpeta que vamos a enviar. Después hacemos lo mismo en la computadora cliente, accesando al directorio en donde se guardarán los archivos que van a recibirse (por defecto se guardan en la carpeta de usuario). En ambos casos el comando a utilizar será parecido a éste:

cd /directorio/cualquiera

A partir de aquí los comandos varían dependiendo de si vamos a enviar un archivo individual o un directorio completo.

Enviar archivos individuales

Para enviar un archivo individual escribiremos esto en la consola de la computadora servidor:

udp-sender -f archivo.zip

En donde archivo.zip lo sustituiremos por el nombre del archivo a enviar junto con su extensión, que en este caso sería un archivo comprimido en ZIP.

Posteriormente, desde la computadora cliente escribimos esto:

udp-receiver -f archivo.zip

Sustituyendo, por supuesto, el nombre una vez más. Al hacer eso veremos que la consola nos responderá con el mensaje Press any key to start receiving data!; que traducido sería Presiona cualquier tecla para comenzar a recibir los datos. Presionamos la tecla que sea y el archivo comenzará a transferirse.

Enviar directorios

Para enviar directorios completos debemos hacer uso de este comando:

tar cf - directorio | udp-sender

En donde directorio lo sustituiremos por el nombre del directorio que vamos a enviar. Luego, en la computadora cliente copiamos y pegamos este comando tal cual (aquí no es necesario sustituir nada):

udp-receiver | tar xf -

Entonces aparecerá el mismo mensaje que en el caso anterior y presionamos una tecla cualquiera para comenzar la transferencia.

Conclusiones

Como dije al inicio de la entrada, UDP Cast permite hacer transferencias de archivos a una velocidad realmente enorme, pues aprovecha al máximo todo el potencial de transferencia que es capaz de desarrollar la red local. Hasta donde he podido comprobar, las mayores velocidades se alcanzan cuando ambas computadoras se encuentran conectadas a la red mediante cable Ethernet, y para muestra les presento las siguientes capturas:

En este caso estoy transfiriendo una carpeta llamada ISOS (que, como se puede deducir, contiene los archivos .iso de las distros que descargo para probar) que se encontraba en el directorio Descargas de mi laptop con Arch Linux, hacia el directorio Descargas de la PC de mi madre que usa Debian.

A más de 25 Mbps obviamente la transferencia terminó en muy poco tiempo, por lo que ya habrán podido comprobar que este método es ideal para cuando se necesita transferir archivos o carpetas de gran tamaño.

Por último, cabe señalar que UDP Cast es una herramienta muy potente y con funciones que van mucho más allá de las mostradas aquí, Si quieren conocer más acerca de esta interesante utilidad les aconsejo visitar su sitio oficial.


28 comentarios

  1.   keopety dijo

    y digo yo desde mi ignorancia, no seria mas fácil y cómodo con samba ?

    1.    Manuel de la Fuente dijo

      Probé Samba y ni de lejos alcanzaba estas velocidades. Recuerdo haberlo dejado funcionando toda la noche y para la mañana siguiente no iba ni a la mitad.

      1.    msx dijo

        Exacto.
        Buen post!

    2.    Gaspar Marquez dijo

      Lo usé para transferir 3.5 GB, lo hizo a una velocidad de 82.24 Mb/s terminó en aproximadamente 7 minutos. ¡Impresionante!
      Gracias por compartir el software

  2.   nonamed dijo

    transferencia fácil con cualquiera usando simplemente el navegador

    http://jetbytes.com

    mas info:

    http://www.visualbeta.es/9010/aplicaciones-web/jetbytes-transferir-archivos-de-manera-sencilla-incluso-a-traves-de-un-firewall/

    1.    Manuel de la Fuente dijo

      Este no lo conocía, tendré que probarlo. 🙂

  3.   elrengo dijo

    Interesante aplicación, por ahí sirva cuando algún servicio común se encuentre bloqueado por algún fw. Habría que conocer sus puertos. Pero me parece más fácil con NFS.

    1.    Manuel de la Fuente dijo

      Con NFS la mayor velocidad que he alcanzado ronda los 4 Mbps. Como ves, éste alcanza alrededor de 6 veces más.

  4.   Martin dijo

    Puede que sea lo que estoy necesitando. Tengo que mover varios GiB de la laptop a la PC de escritorio para formatear completamente la laptop.

    Vamos a probar.

    PD: ¿El programa comprime lo enviado en origen y descomprime en destino?

    1.    rogertux dijo

      El programa en si no comprime ni descomprime. Lo que ha hecho él es encadenar comandos.
      tar cf - directorio | udp-sender
      De esta manera primero comprime el directorio con “tar” y después lo envia.

      1.    Martin dijo

        Genial, muchas gracias, ya lo estoy probando, primero con pocas cantidades y cosas no muy importantes y funciona excelente!

      2.    proper dijo

        Con tar solo empaquetas, no comprime.

        Para comprimir podrías usar -z para tar.gz o -j para tar.bz2 o incluso -J para tar.xz… Los dos últimos comprimen mejor que gzip

  5.   sombralibre dijo

    Ok , la herramienta es una buena opción , pero me parece mas eficiente y seguro sshfs.

    1.    msx dijo

      sshfs es la última opción que deberías usar para intercambiar archivos y sólo limitarte a usarlo si las operaciones que debés realizar ameritan estar encriptadas ya que el overhead con el que sobrecarga a la máquina en que se está esjecutando es DEMENCIAL.

      La misma función la obtenés usando NFSv4 y si querés podés combinarlo con AutoFS para que te monte los recursos compartidos sólamente cuando accedas a dicho recurso.

  6.   santi dijo

    Pues es interesante esta utilidad, no por la tasa de transferencia lograda (80 Mbps/s), sino por lo sencilla…

    En cuanto a al tasa de transferencia no he notado nada fuera de lo común… Teniendo en cuenta que la velocidad máxima de transferencia de en una red de 100 Mbps/s es justamente 100 Mbps/s, lo que equivaldría a unos 12 Mb/s. Veo normal que se alcancen con udpcast tasas de transferencias del orden de los 85 o 90 Mbps/s, al igual que se alcanza con Samba. Aunque depende del sistema operativo que utilicemos (y la calidad de la red física), por ejemplo en Debian Lenny con Samba no llego a 5 o 6 Mb/s en cambio con SystemRescuecd llego a 8 o 9 Mb/s.

  7.   FLaque dijo

    Está bueno el aporte, pero para esto existe el mítico ‘scp’ que vendría a ser un ‘cp’ (sí, copy) seguro usando ssh.

    Además, dado el nombre de dicho software, imagino que usa el protocolo UDP. Si bien mis conocimientos de redes no son super avanzados, el mismo es orientado a la no-conexión (en contrapartida con TCP), y se me hace que puede generar corrupciones en los archivos si algunos paquetes se perdieran por X motivo. Es como para investigarlo mejor.

    Te recomiendo scp, es mucho más sencillo y viene preinstalado en cualquier distro.

    1.    msx dijo

      Claor, UDP es mucho más rápido que TCP porque no realiza comprobación de datos, por eso se obtienen esas tasas de transferencias.
      Para comprobar que el archivo llegó correctamente podés hacer un md5sum o cualquier otro hash…

      1.    Joaquin dijo

        El problema sería que si hay un error en la transferencia, se tienen que volver a enviar los datos. Para archivos importantes (como copias de seguridad) es mejor usar otro método por medio de TCP.

        Igualmente no deja de ser interesante.

  8.   alx741 dijo

    y…. nfs segun entiendo es el mecanismo nativo de transferencia de archivo en red entre maquinas GNU/Linux

  9.   jiko dijo

    no me funciono, gracias de igual forma,…

  10.   lucho dijo

    pero ami me llega solo a 9.03 mbps :’c

  11.   MoDeM dijo

    No me funciona, raro, solo se queda recibiendo y eso q pobre con un archivo pdf

  12. Linux tiene muchas ventajas y servicios como servidor, es muy común ver servidores en empresas con este sistema Operativo, por el costo, la estabilidad y los beneficios que tiene el software libre contra algunos Sistemas pagos que tienen desventajas en esta área de las tecnologías.

  13.   RudaMacho dijo

    Otra forma muy conocida para compartir archivos de forma simple es con el modulo de servidor web de Python, en la carpeta donde esta lo que queremos compartir escribimos: $ python -m SimpleHTTPServer 8080 , en la maquina que va a recibir los archivos solo abrimos el navegador y colocamos la ip+el puerto, P.ej: 192.168.0.3:8080 y vuala!!

  14.   mama21mama dijo

    hace poco use dropy para esta tarea.

    no conocia este metodo

  15.   Azureus dijo

    Joder, logré 52Mb por segundo con este metodo, transfiriendo desde una raspberry Pi modelo B D:
    Muchas gracias, me encantó.
    ¿Saben cómo puedo colgar fotos aquí?

  16.   Juan David dijo

    Deberia hacer un post donde indique como se instala updcats en unix, que buen post este

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.