Tunnel with least overhead

Solution 1:

I'd expect gzip in ssh and stunnel to be faster than lzo in openvpn, but..

Given that your bandwidth is so precious, I'd recommend you test your particular application and your particular data against ssh, openvpn and stunnel.

ssh, stunnel and openvpn all have support for compression. If your data is highly compressible, you may be able to trade CPU time in order to save some bandwidth, but this assumes you have sufficient CPU resources available at both ends.

On some systems, ssh makes it easier to configure strong, mutual authentication than stunnel and openvpn.

However, stunnel and openvpn might be much easier to run unattended and reliably (monitoring, reconnects, etc) which may influence your decision as well.

Finally, there's always the option of moving as much data as you can when nothing else is using your network, or make use of bandwidth throttling, if your environment allows it.

Solution 2:

Your OS's integrated SSH is your best option. OpenVPN normally ads overheads compare to 'built-in' SSH

Make sure your firewall(s) and router give your SSH tunnel priority.