cross-posted from: https://lemmy.blahaj.zone/post/2728889
From the article:
Since Tailscale was founded in 2019, customers have been forced to choose between either Tailscale or Mullvad without the ability for them to co-exist.
Today we announce a partnership with Tailscale that allows you to use both in conjunction through the Tailscale app. This functionality is not available through the Mullvad VPN app. This partnership allows customers of Tailscale to make use of our WireGuard VPN servers as “exit nodes”. This means that whilst connected to Tailscale, you can access your devices across Tailscale’s mesh network, whilst still connecting outbound through Mullvad VPN WireGuard servers in any location.Announcement also on Tailscale blog.
If anyone wants to achieve something similar without using Tailscale or with alternative VPN providers, the setup outlined in this LSIO guide is pretty neat: https://www.linuxserver.io/blog/advanced-wireguard-container-routing
Edit: Don’t be intimidated by the word “advanced”. I struggled with this a bit at first (was also adapting it to use at home instead of on a VPS that’s tunneling to home) but I got it working eventually and learned a lot in the process. Willing to assist folks who want to set it up.
As an aside, I wish technical documents like this would stop saying “Wireguard client” and “Wireguard server”. Wireguard doesn’t have clients and servers - everyone is a peer, and whether you can route through the peer or not is just based on the routing table and nftables/iptables rules.
You can also achieve this with any VPN by using two Docker containers:
Set Gluetun up to connect to your VPN (they support a huge number of providers) and then set the Tailscale container to use the Gluetun’s network. Then, use that Tailscale container as your exit node.
You can also combine this with a self-hosted Headscale (https://github.com/juanfont/headscale) instance.