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.

12 comentarios en “Copiar archivos en red fácilmente sin Samba ni NFS

      • 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)

  1. ArturoM dijo:

    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

  2. En ocasiones veo a @Jaimes por todos lados 😛

    @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

  3. ArturoM dijo:

    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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s