I recently came across Tailscale while looking for a better VPN solution. Primarily, I wanted a solution that I could leverage with my existing VPS hosting and dynamically add/remove proxy nodes. I was previously using AlgoVPN, which met the requirement, but had such a large overhead associated with provisioning a new host and distributing the configurations that I didn’t update and cycle them as often as I would have liked.

Enter Tailscale, which promises secure connections between servers with no config files — and it really delivers! Specifically, it creates a point-to-point network between all of your devices communicating over the WireGuard protocol. In addition, devices that are added to your network can be designated as an exit-node which allows you to route all internet traffic through that node. The real cherry on top is that all of this is offered for free (up to 20 devices)!

Is that all?

In addition to supporting my base requirements above, it also greatly simplified my workflows in other ways:

  • Pushing arbitrary files to and from any of my devices through Taildrop.
    • Sharing files across devices has been a hassle for so long that I’ve long given up hope for a better solution other than uploading the file to a filehosting site. It is amazing being able to seamlessly push photos from my iPhone to my Windows desktop as well as push several GB packages from my mac to my linux box without opening a terminal.
  • Accessing my devices with hostnames instead of IPs via MagicDNS.
    • Managing IPs is messy, and although tailscale gives you an easy way to copy the internal address, referencing a device by a hostname is way easier to remember.
  • HTTPS support through provided private domain alias
    • Connections between your devices over Tailscale are secured with end-to-end encryption, but some tooling may (correctly) view an HTTP URL as unencrypted and subsequently restrict functionality. I’ll go into more detail on this in a subsequent post.

Get setup

I’ve only been using Tailscale for a little while, but am already a huge fan. If you want to get started, there’s really only 2 steps:

  1. Sign up with a supported identity provider (Google, Microsoft, or Github)
  2. Install the software on the devices you want to add to your network. That’s it!