The Computer Oracle

Direct transfer of a file between two computers on the Internet

--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Lost Civilization

--

Chapters
00:00 Direct Transfer Of A File Between Two Computers On The Internet
01:13 Answer 1 Score 8
02:03 Answer 2 Score 5
02:17 Accepted Answer Score 15
03:12 Answer 4 Score 20
04:09 Thank you

--

Full question
https://superuser.com/questions/314325/d...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#filetransfer

#avk47



ANSWER 1

Score 20


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:
https://www.justbeamit.com/
https://www.sharedrop.io/

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.




ACCEPTED ANSWER

Score 15


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.




ANSWER 3

Score 8


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.




ANSWER 4

Score 5


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.