Copiar archivos en red fácilmente sin Samba ni NFS

nullEstando en el instituto me hizo falta compartir un archivo entre dos equipos de la intranet pero por desgracia ni tenía el pendrive a mano (me lo dejé en casa) ni tengo permisos para instalar (ni configurar) los servicios Samba o NFS ni el tamaño era pequeño para poder enviarlo por correo electrónico.

Por fortuna recordé a un viejo amigo (Netcat) al que muchos llaman la navaja suiza de TCP/IP. Sirve para muchísimas cosas (no todas legales) pero en esta ocasión me sirvió para solventar el problema anterior (que no es poco).

Operaciones en el equipo que tiene el fichero que nos interesa

Desde la terminal lanzaremos el comando

nc -l -p 1351 < un_fichero_cualquiera.txt -q 0

donde

  • un_fichero_cualquiera.txt es el fichero que queremos pasar al otro equipo
  • -l coloca a netcat en modo “escucha” hasta que el otro equipo retire el fichero que le estamos ofreciendo
  • -p 1351 permite indicar el puerto en el que el equipo ofrecerá el fichero (éste dato lo vas a necesitar en el otro ordenador). NOTA: los puertos por debajo de 1024 requieren privilegios de administrador.
  • -q 0 Indica el tiempo (en segundos) a esperar antes de cerrar la conexión una vez transferido el fichero

Operaciones en el equipo donde queremos obtener el fichero

Una vez realizado el proceso anterior (y anotados tanto el nombre del fichero como el puerto de escucha) lanzamos en el otro equipo un

nc servidor 1351 > otro_nombre_fichero.lst

donde:

  • 1351 es el número de puerto que definimos en el equipo que contiene el fichero que nos interesa
  • otro_nombre_fichero.lst es cómo (y dónde si indicas una ruta) queremos que se guarde el fichero del otro equipo. Observa que he cambiado el nombre pues no importa para el correcto funcionamiento (no tienen que coincidir aunque… si te hace ilusión…)

Conclusión

Un método rápido y sencillo que sin necesidad de tener permisos de administrador (root) nos permitirá intercambiar ficheros de cualquier tamaño y tipo entre equipos de una red.

El único requisito para ello es que netcat (alias la navaja suiza) esté instalado en ambos equipos.

10 comentarios hasta ahora

  1. Jaime on

    Interesante, si no te importa me lo copio para…

    Jejeje, es broma. En serio, un articulo muy curioso.

    • dektrop on

      Holaa!! Yo estoy intentando conectar 2 maquinas con linux(ubuntu) por medio de un firewire, me podrias ayudarr???

      • jasvazquez on

        Sería un auténtico placer poder ayudarte.

        Aunque no cuento con puerto firewire siempre que he querido poder hacer transferencia utilizando un simple cable (usb, parelelo, serie, rj45, …) he optado por comprar un cable “cruzado”.

        Por lo que parece para la tecnología IEEE1394 NO existe dicha posibilidad :(

        Por fortuna parace que existe una solución relativamente sencilla al problema.

        Un saludo y mucha suerte (ya nos contarás cómo te ha ido)

  2. ArturoM on

    Hola a todos,
    otra utilidad es establecer una conexión directa entre dos ordenadores a traves de internet, de esta forma se puede simular un rudimentario chat entre dos personas.

    En el primer pc se crea el “servidor”:

    netcat -l -p 5000

    En el otro ordenador se creará el “cliente”:

    netcat mi-ip 5000

    Y ya tienes funcionando un chat ligero, rápido y útil.

    Saludos

  3. jasvazquez on

    En ocasiones veo a @Jaimes por todos lados :P

    @Arturo gracias por el apunte; ya me has “fastidiado” un post :) en serio, se te agradece (trabajo que me ahorras) aunque en lugar de MI-IP deberías decir SU-IP, entendiendo por ésta la IP del equipo “servidor” ¿no?

    Un saludo y gracias a los dos

  4. ArturoM on

    Hola a todos,
    correcto, ha sido un lapsus, debe ser SU-IP. Muchas gracias por el apunte.

    Lamento haberte pisado el post, pero esta vez he sido más rápido que el rayo… 8-D

    Saludos

  5. nordri on

    ¿Por qué no usas scp? Es sobre ssh y por lo tanto encriptado. scp archivo usuario@maquina:/path/to/folder.

    Saludos.

  6. jasvazquez on

    Pues por falta de permisos básicamente y por no estar instalado en los equipos :(

    Completamente de acuerdo: es la solución ideal desde el punto de vista de la seguridad

  7. takedown on

    Porque decís que algunos usos son ilegales? :S

    el uso es 100% legal, los propósitos son otra cosa

  8. jasvazquez on

    Tienes toda la razón del mundo @takeDown: “conocimiento al poder” o como dijo el otro: “el conocimiento os hará libres”

    Un saludo compañero y gracias por la matización ;)


Replica