Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I needed to send a file between two computers which both have firewalls. A server, which is contactable, is available to coordinate the transfer. I know the server can act as a "proxy" between the peers i.e. file is uploaded to the server and then downloaded by the other peer. However is it possible to arrange direct communication, without using the servers bandwidth? Is this what a vpn can do?

alt text

share|improve this question
+1 to Lee B and Nissan Fan, and to further answer your question, a VPN with the "Server" there as the end-point will still use its bandwidth. – Charles Hooper Oct 6 '09 at 23:02
up vote 1 down vote accepted

You have a couple of options other than staging the file on the middle server, both of which will require use of the server in the middle's bandwidth as the other two can not directly talk to each other.

1) Set up a proxy server on the middle server, this is a software installation / copnfiguration. This can be done clear text or encrypted if required. 2) Setup the middle server to offer VPN services for one or both machines to see each other's networks. This is also a software installation / configuration. VPN's are encrypted.

You did not say why the two are firewalled from each other, and modifying the firewall configuration is not an option. It would be more efficient, and probably more secure to do as mentioned above and open up the firewalls on both sides for a specific port for specific hosts to directly transfer the files and not require the middle server.

share|improve this answer

VPN (virtual private network) is for ALLOWING communication over public (untrusted, NOT private) networks. Not what you want here, if this is all on private networks. If it's over the internet, then yes, a VPN for EACH machine is a reasonable solution, but that would only allow you the machines to talk to the central server privately. Then you still have to arrange file sharing. That too should be easy enough, using the file sharing built into windows, or using Samba.

Assuming the machines AREN'T on private networks:

The big question is: WHY have a firewall between two machines, if you want them to be able to talk to each other. Unless the third-party machine is going to add security, then it's senseless to have the extra overhead. Just allow the first machine (or both) to contact the other, and transfer designated files.

If you really want to use the third-party machine (and don't have a hardware router that can do it), the easiest solution would be use the third machine as a router, so it's simply passing the communications data around, but not storing it.

share|improve this answer

A VPN could be used to solve these types of problems, but it's not the best appproach. A VPN is used to give access from a client on one network to the resources on another network via a host. The problem is, a VPN will effectively make the client act as if it's sitting on the very same network it's being given access to so any printers, fileshares, etc. would also be available to it unless confirgured not to be.

An easier solution would be to open up certain ports between the machines and use solutions like scp or webdav (if you're limited to port 80). I'm not sure what ports are open/closed and the network structure/security restrictions. There are many variables to consider.

share|improve this answer

One word: Hamachi.

It's a small program you install on the two individual machines, and then it uses a central server to INITIATE the connection, but tunnels directly between the two machines. It appears as another network interface on the computer, as a VPN would.

It runs on a variety of platforms, some easier to use than others (Windows = uber easy, *nix = easy for a *nix expert, OSX = difficult for average user). It has trouble behind proxies, but for a NATted connection it should be fine.

share|improve this answer

Your Answer


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.