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 have discovered JetBytes, Click2Copy and PipeBytes.
Those web services should make it simple to transfer a file of any kind and any size between two people that have only a web browser, without having the file stored on a third machine meanwhile.

However since the end users must connect to a third server, the data will flow through the machine xyz.com, possibly slowing down the transfer.

So the question is:

Is there a simple tool that would behave as a server on my machine, as a client on another machine, for one single file transfer?

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. But I would like to avoid setting up a whole FTP server just for occasional file transfers.

Thank you.

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
add comment

closed as off-topic by Kevin Panko, Tog, random Feb 25 at 1:55

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product, service, or learning material recommendations are off-topic because they become outdated quickly and attract opinion-based answers. Instead, describe your situation and the specific problem you're trying to solve. Share your research. Here are a few suggestions on how to properly ask this type of question." – Kevin Panko, Tog, random
If this question can be reworded to fit the rules in the help center, please edit the question.

9 Answers

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
2  
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

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