I'm looking secure way to one-way mirror directory between windows hosts over the internet.

Host A - Has directory with files. Should run some sort of server on single open port X. Everything else is blocked at firewall level that I don't have access to. (Tried to use Filezilla FTPS server but passive mode data-connection would not initialize, because everything else is blocked).

Host B - Windows Scheduled task should run every 5 mins some sort of client program to connect Host A and download new files (and changed files). (First thought was to use lftp.exe with mirror option)

Files are small log files. What would be most stable and preferably freeware/opensource solution for this?

  • Is this in a corporate network in which you are an administrator? How come you have the limitation of the single port? – MDMarra Aug 16 '13 at 20:26
  • Host A is embedded device somewhere in remote outpost. – Lauri Aug 18 '13 at 19:06

VPN tunnel between the servers to create a secure connection.

Use SyncToy to synchronise the files, using an Echo relationship. This can be ran as a scheduled task.

  • Having no previous experience with VPN tunnels - are they stable and do they auto establish, in case tunnel disconnects? – Lauri Aug 16 '13 at 19:06
  • Yes they are stable and yes they can auto reconnect. – chewbakka Aug 16 '13 at 19:33

I believe you mean something like rsync.

Usually you call it like

rsync -a --delete src destination

(careful with --delete: it removes all files from the destination no longer found in src)

In this case you'd put a scheduled task on host A to update the destination B. But you can also use B and pull files from a using this method I guess.

I believe there are rsync ports for Windows.

Run like this to do a simulation

rsync -avn --delete src destination

For Windows, GoodSync would do this quite well (it now have a server option), but it is not free (and you would probably need two licenses in this case).

Another relatively easy to understand solution is to setup a webserver and configure it to serve on that port. You can use IIS if your Windows version have it or Apache/nginx if you're able to configure it. There are many client options for this, you can use web-archievers or some scripting with wget/curl. Alternatively, you can install WebDAV on the web server and mount a drive over http(s). Most sync tools (or similar) will be able to work with the web mount like normal local drive.

A third-option is to run OpenVPN and you'll have a full-access connection via VPN; however, OpenVPN is most fiddly to configure.

Another option is SSTP VPN which requires a copy of Windows Server 2008: you just need to setup the system HTTPS listener to be on that specific port. (This configuration is however not supported by M$.) All other VPN types requires other ports and protocols to pass through the firewall.

If you're courageous, you can also look at IPv6 NAT-traversal solutions, but additional security consideration will be necessary.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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