Skip to main content

VPN

Cloudflare Tunnel

I use Cloudflare Tunnel to securely expose my local services to the outside world. All services are protected by Cloudflare Access, which only allows access from my personal email address.

Tailscale

Tailscale has become my go-to VPN because it's straightforward to set up on both my phone and local machines.

For my infrastructure, I use Terraform and cloud-init to provision dedicated VMs as exit nodes. Since installing Tailscale on every VM isn't practical, I leverage the subnet router feature to selectively expose local subnets.

This setup gives me access to my entire local infrastructure (router, PVE, and all services) when I'm away from home.

# cloud-init config for exit node
runcmd:
- curl -fsSL https://tailscale.com/install.sh | sh
- sysctl -p /etc/sysctl.d/99-tailscale.conf
- tailscale up --auth-key=${tailscale_token}
- tailscale set --ssh
- tailscale set --advertise-exit-node
- tailscale set --advertise-routes=192.168.0.1/32
- tailscale up