I have a ~ 250/25 mb home connection and an Oracle Cloud always free VM with a ~ 480/480 mb connection that I use as a tailscale exit node. The problem is that my speed through the cloud connection is much slower than I think it should be.
I’m using just straight WireGuard, but wasn’t able to get much above 50Mbit forwarding either using the VM.Standard.E2.1.Micro (x86) shape. Try spinning up an ARM based Ampere instance. With just 1vCPU I get over 500Mbit forwarding without pegging the CPU.
I noticed the Ampere shape config is much more generous. But I went with x86 for compatibility. Since I’m allowed two instances I’ll give Ampere a shot and let you know how it goes.
On the free plan you’re actually able to run two VM.Standard.E2.1.Micro instances and divide up 4 vCPU/24GB RAM for Ampere however you see fit… with the 200GB storage allowance being what limits you to 4 total VM’s (minimum size of 50GB per volume). So you could run 4 Ampere VM’s configured with 1vCPU/6GB RAM/50GB each. Or make a 3vCPU/23GB/150GB Nextcloud server to go along with your 1vCPU/1GB/50GB VPN.
I notice though that CPU time and network throughput aren’t unlimited for the Ampere instances. This doesn’t quite suit my purposes. I need something I can set and forget that will never cost me a cent. This is just a hobby setup. I can’t justify spending money on it.
Also, I tried tailscale and though i get better speed with the Ampere instance (double what I got before actually) , it still doesn’t max out my connection. So I don’t think this is my solution yet.
Even if I were to follow your example and roll my own wireguard for possibly improved performance, the pricing is a non starter.
I forget the exact commands for Tailscale, but you should know that Tailscale automatically goes into relay mode (data routed across Tailscale service) if no firewall hole punching strategy worked, typically around 20-30-50Mbps for me.