Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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)

share|improve this question
    
are you looking for a solution that transfers only through HTTP or what? –  Pacerier Jul 29 '11 at 17:29
    
Personally I use a chroot jailed web server with autoindexing turned on to share files with other people. Then I have a jailed ftp anonymous account that people can use to send files directly to me. The Skype solution is something I'd tell my mom if she wanted to share a file with someone. It's better than using email attachments at least. –  briankb Mar 12 '12 at 1:31
    
maybe direct file transfer program sourceforge.net/projects/file-transfer - open source, drag and drop, promises optionally upnp (on xp?), teredo, secure connections and automatic discovery, (optional stuff needs ticks in settings page) –  naxa Jun 20 at 17:33
    
Can we reopen this? I reworded this to implement the suggestions –  naxa Jun 20 at 18:36
add comment

9 Answers 9

up vote 6 down vote accepted

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.

share|improve this answer
3  
cryptcat is netcat with encryption –  Journeyman Geek Jul 27 '11 at 0:05
    
netcat is also available for Windows. I like this way. –  Benoit Jul 29 '11 at 22:46
add comment

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.

share|improve this answer
    
Thank you for this answer. The problem here is that I always have to rely on a third company, create an account specifically for that, and that service may disrupt or terms of service may change. If possible I would like to avoid that. However I did not know that Skype can negotiate a direct connection. Still from your answer I can infer that this is not always the case? –  Benoit Jul 24 '11 at 8:40
    
@Benoit - I have never had skype fail to be able to send a file. The only traffic that goes to the skype servers is that to set up the connection. All data goes between you and your recipient. As for the terms of service that is very unlightly as file sharing is a central part of skype. –  Nifle Jul 24 '11 at 9:22
    
@Benoit Skype always uses direct connections; even the database of Skype users is distributed. The benefit to Skype is its end-to-end encryption; Skype can't see the data you're transmitting. (+1 btw) –  squircle Jul 26 '11 at 22:19
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
1  
What are the benefits of the solution you suggest? –  Johan Karlsson Nov 8 '12 at 8:20
add comment

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

share|improve this answer
add comment

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

http://www.bittorrent.com/sync

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.