How can I transfer files between two Ubuntu computers on a LAN without installing additional software?

15,162

Solution 1

You can move to a given directory with cd, then serve the current directory as a web server with the command:

python -m SimpleHTTPServer

On the other machine go to the address http://server-ip:8000/

where "server-ip" is what you see when you do "ifconfig" on the source computer, under "inet addr:". For example, if the output of ifconfig on the source computer starts like this:

eth0      Link encap:Ethernet  HWaddr 00:30:67:d5:a7:a4  
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
          ...

then on the target computer, you should point the browser to:

 http://10.0.0.3:8000/

Solution 2

if you want something faster that python's SimpleHTTPServer module (which is awesome and is most simple way imho), you can use netcat (nc utility) - it's using raw TCP so you won't be having overhead that comes with HTTP protocol.

For example if you are trying to copy file config.xml from host germany.local to host france.local (both running ubuntu), you need to follow these steps:

  1. on target host france.local run:

    nc -l -p 7000 > copied_config.xml
    

    (it will start nc process that listens on the port 7000 for incoming data and writes said data to file copied_config.xml)

  2. on source host germany.local run:

    nc -q 0 france.local 7000 < config.xml
    

That's all!

Also, you can check this helpful howto for more in depth instructions

Share:
15,162

Related videos on Youtube

BlitZz
Author by

BlitZz

A computer engineer and Linux expert / advocate. Over 15 years of experience installing/configuring Linux servers and daemon software for web, email, databases and whatnot. Ubuntu user since 2009, Debian user before that. I'm really not in it for the "money" so I won't spam all my answers with this request, but please remember to "accept" answers that solve your questions, it benefits those providing the answers. Read more about it here.

Updated on September 18, 2022

Comments

  • BlitZz
    BlitZz over 1 year

    I know I can install Samba or openssh-server to be able to share files between two Ubuntu computers. Is there a way to share files without installing additional packages?

    I installed Ubuntu on two systems on the same LAN, but without Internet connectivity. I found that my usual way of transferring files (scp) failed because openssh-server was not installed on either system. Using Personal File Sharing was impossible without installing extra packages. I ended up using netcat to transfer, which is suboptimal and not intuitive for the average user.

    So I'd like to know if anyone knows of a way to do this with out-of-the-box Ubuntu installations (or at least, with packages available in the Ubuntu desktop CD).

    Thanks!

  • BlitZz
    BlitZz over 8 years
    Thanks! If you read the question you'll notice it's what I did back then, and my comment was that it's suboptimal and not intuitive for the average user. I still prefer SimpleHTTPServer as it implies one command on the sending end and a browser on the "client" end which is super easy to use.
  • asmeurer
    asmeurer over 8 years
    Beware that in Python 3 SimpleHTTPServer has been renamed to http.server.