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

Best Answer

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.