Direct transfer of a file between two computers on the Internet

file-transfer

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)

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 http://en.wikipedia.org/wiki/UDP_hole_punching) 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.