Direct transfer of a file between two computers on the Internet

I'm looking for a simple but direct way to transfer a file of any kind and any size between two people. If possible, having only a web browser, without having the file stored on a third machine meanwhile.

I wish to do it without requiring the end users to connect to a third server, because that way the data will flow through the machine xyz.com, possibly slowing down the transfer, and posing security risks.

I would like to avoid setting up a whole FTP server just for occasional file transfers. So far I have discovered JetBytes, Click2Copy and PipeBytes. Those web services should make the transfer easy. However the traffic goes through their servers so they are no good to what I want.

I want the transfer to be direct between the client and me. Encryption would be a nice additional feature.

I know that doing so I have to open one port on my computer, and configure a bit port redirection on my router. However, NAT traversal would be nice addition, too.

My question is:

Is there a simple way for one single end-to-end direct file transfer between two computer, avoiding third parties? (if possible, with encryption and NAT traversal)

4

12 Answers

The dirtiest way if you use *nix is to use netcat (nc) to cat the file to the remote host. But if you want encryption, you might as well use SCP/SSH.

You have to realize that if either party is behind a NAT and you don't want to setup port forwarding, then it's impossible to make a direct connection without connecting to a third-party server first. The server does not necessarily have to relay the traffic (see ) and most of them don't as bandwidth is costly.

For example, Skype will try to use many NAT traversal methods to establish a direct connection before falling back to relaying traffic through their super nodes. (Skype is a very P2P network.)

As for the account problem. I guess it's unavoidable. All methods will require some kind of configuration or setup which are usually harder than registering an account.

3

WebRTC-based solutions give what you need, in perhaps the simplest form. You do connect to a third-party website but that is only for getting the peers connected and not the file transfer part.

Example services:

EDIT: I understand this does not meet all the requirements of the OP but there is another, very usable solution: Firefox Send. Using this, you upload your file to a third-party server in an encrypted form. The service gives you a URL, which you can share with others. The URL also contains the key to decrypt the file. They can then download the file. The file is automatically deleted after a set number of downloads or after 24 hours. The server never sees the key and so cannot decrypt the file. The advantage in using a third-party server is that the sharing party and the downloading party do not need to be online simultaneously.

2

Magic Wormhole can be used for this. On Ubuntu you can install via apt-get (it is also available via Python pip):

sudo apt install magic-wormhole

To send a file you simply tell what to send

wormhole send README.md

This will output the command line you should run on the receiving end. This includes a secret key (which is such that you can also read it over the phone). You don't specify any machine names or IP addresses. Wormhole establishes the connection automatically and encrypts the files to be transferred.

You can sync files between remote computers using a rsync. This utility is available for Windows in cygwin, or you can install it with the pre-packaged cwRsync.

I'll leave my previous answer here intact, but given recent revelations about the NSA, I would no longer recommend Skype for secure file transfers.

You can send a file directly to another person using Skype. Skype sometimes even works when both users are behind NAT. If you are saavy enough to open a port on your router, doing so will increase the likelihood of a negotiating a direct connection.

More broadly, many chat programs include a file sharing/sending mechanism. Most don't supply encryption by default like Skype. But as long as you and your recipient have the same chat client, you have a "simple tool" for sharing files.

3

If your running Linux / unix ssh is a secure way to transmit files in a client server model. port forwards needed on incoming connections if behind NAT though.

FTP. It's been around for ages. It's insecure as heck. And it's simple.

Download Filezilla, which can function as both a server and client. Make sure your firewall is set to allow it outbound. Have your destination download filezilla and connect to your filezilla server. Transfer file.

Just like that, all your bits are flung across the internet for all to see like so much laundry flipping in the breeze in the backyard.

2

A webserver that can do UPnP NAT traversal would work, the receiver would only needs a web browser. As a bonus encryption is easy with a web server, just use https.

Here is one example (payware 99USD) RaidenHTTPD

Bit torrent sync does synchronize folders over the web. Files are encrypted also. Check it out.

I once wrote a blog post about transferring files with Python’s built-in HTTP server. In short, install Python, open a command prompt, cd to the directory with files to share and execute python -m SimpleHTTPServer. Very convenient if you are on Linux or OS X because Python is installed by default (it's easy to install on Windows too).

If you are behind a NAT, then you need to setup port forwarding on your router or something (which I assume you know already).

3

You should check out It appears to do exactly what you want. Direct P2P transfer via browser(flash).

1

You may try out Folder Transfer from , which can direct transfer of a file between two computers on the Internet. It can fully meet your needs.

Why noone is mentioning IRC DCC transfer? , You get you HexChat client, install it on both computers, you enter let's say Freenode and then create a channel for both to join, then right click on the other "contact/PC" and send file. Old tech that always works, apart from Hyperterminal for dial up direct connection, circa 1995-1998, DCC was the mainstream way to download music and movies.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like