Asking from a place of curiosity, I don't quite understand this company. I suspect it solves a lot of issues related to provisioning your own networks ... Which would explain why I don't quite get it because I've never done that.
Asking from a place of curiosity, I don't quite understand this company. I suspect it solves a lot of issues related to provisioning your own networks ... Which would explain why I don't quite get it because I've never done that.
Tailscale unfortunately uses user-space wireguard still - other than that I think it's a strict "value-add" on top of manually configuring wireguard.
The option to route traffic through an exit-node can also be useful (make your phone behave as if it connects through your corporate VPN, with the fixed IP address that your clients white-list for access, for example) - but it's not the primary usecase.
While "VPN Services" like Nord are really anonymizing internet access providers routers - and while technically using VPN-technology, they're not really enabling Virtual Private Networks in a meaningful way - it's just your computer, and their exit-node - a tiny network of two - and they don't have anything to talk about - the exit node doesn't run a web site or a service - it's just a router.
I will say, and I think this is right, the proposition here isn't a VPN like Nord which you'd use to hide your traffic from your ISP or masquerade into a different geolocation, but rather a VPN for connecting to your own devices.
Can you really not see the difference between this[0] and this[1]?
This really feels like a "What's the value in Dropbox when everyone has access to rsync and bash?" situation.
I think it's more like... "What's the value in Dropbox when I'm already running Nextcloud?"
I won't talk much about ACLs since if you're the only user on your VPN, they don't matter. E.g. I use Tailscale but I don't use ACLs because who am I going to block from connecting to what? Am I concerned about my server trying to compromise my Raspberry Pi? (Maybe I should be, but life's too short so I don't bother.)
Automatic peer configuration is a pretty killer feature, though. If you're just running plain vanilla Wireguard, then you have to manually copy keys between every pair of devices that need to be able to talk to each other. That's fine if you only have a few devices, or if you have a large number of devices but you're happy to use a hub-and-spoke model where each "client" only talks to the hub, and the hub routes all traffic. But once your number of devices starts to grow, or you decide you want direct links instead of hub-and-spoke, it can start to get unpleasant.
NAT holepunching may seem unnecessary if you're used to having a VPN hub and just port-forwarding to it. But it opens up a whole set of possibilities that would just be non-starters without it. Just off the top of my head, here are some things that I would consider easy with Tailscale but cumbersome-to-impossible without:
1. Not having to worry about static IP assignments on my LAN. Admittedly, this is more of a convenience than a true barrier to anything, but with vanilla wireguard one of the devices needs to be able to initiate the connection, meaning that the other has to be able to receive unsolicted traffic on some port. Normally I'd do that with port forwarding, but all of the port forwarding I've ever done requires a fixed internal IP to which to forward the port. Instead, with Tailscale, you can just plug in your server/RPi/whatever and forget about it.
2. Similarly, you can take advantage of this to get a window into a network that you don't control. (It sounds bad when I put it that way.) Say you've got a relative a long ways away, and they're constantly calling you for help with their network and you're constantly walking them through how to fiddle with their router settings or something - with Tailscale, you could just preconfigure a Raspberry Pi, ship it over, and not have to worry about being able to connect to it once they plug it in. Voila, you have an entrypoint into Grandma's network or whatever.
3. Self-hosting afficionados like myself tend to turn to "can I put a thing on a server somewhere" as a solution to many problems involving cross-device communication: file synchronization is an obvious example. But what if all the devices could seamlessly talk to each other, anywhere and anytime? Then you could pop, say, Syncthing on each device and not have to worry about having a server up.
Tailscale also has some extra goodies like being able to share a device to someone else's Tailnet, so if you run (say) a Plex server and you want to let someone else talk to it without exposing it to the greater internet that's pretty easy.
Their "Magic DNS" feature is also quite convenient - I used to pride myself on being able to remember all the IPs I had assigned to all my network-connected stuff and therefore not needing DNS, but since I've started using Tailscale I've found myself defaulting to DNS names more and more without ever even consciously deciding on it. Words are just more memorable than numbers, there's no need to fight it.
All that said, if none of those use cases seem compelling to you then maybe Tailscale just isn't for you. Different strokes for different folks.
Tailscale is also deceptively powerful, and that's why people love it. In particular: getting WireGuard deployed across a whole team with a single source of authentication truth and role-based default-deny ACLs is not, in fact, very easy to do. The massively more common pattern in tech companies with access VPNs is something like OpenVPN, with separately-managed credential stores (that get desynced and lock people out --- or accidentally retain access for separated team members) and default-allow network policy that gives anyone with access to the VPN direct access to Redis, databases, staging instances, and stuff like that.
I don't just like Tailscale. I fucking hate Tailscale for how simple they've made one of the larger problems in corpsec. It's maddening.
I have a Synology on my home network which I use for Time Machine backups among other things. My Mac has a Tailscale client and I can backup to my Synology from anywhere.
I have a number of random servers I keep for hobby stuff, a mix of hosted bare metal, VMs and VPS. None of them have SSH open to the internet. My access is all over Tailscale. It was super easy to setup, and now I never have to touch it. Occasionally I'll see that the Tailscale daemon was updated on some host.
If I were starting a company today, as soon as I had any resources that needed any kind of remote access for the team, I'd use Tailscale to provide that access.
I have been pondering setting up Tailscale just to get remote access but I haven’t found good examples of people doing this.
Thanks!
Then I can check experiments from wherever without worrying about a lot of the fiddly details.
So let's say the local government blocks access to certain content, you can connect to a VPN provider's network, select an exit point (a server) and your traffic is routed through them. But this can be monitored by that provider and I read an article recently that highlighted a lot of free VPN providers cannot be tracked down to companies, so you couldn't say who is running those servers. Which means, you don't know if all your traffic isn't actually recorded in the end and sold on to someone.
This brings me to the first difference - you can setup your own server (at home or more likely through an infrastructure as a service provider like Hetzner, Ovh, DigitalOcean, etc) and install Tailscale on it and on your device(s). This way your connection is secured to the server and the server is the exit point now. Your provider in this case, cannot see what your server is serving you. The added control here is that the server IS YOURS, so you can clear logs, take it down and setup another one and so on.
The second difference is that a VPN in most canonical cases has a client-server construction. But this means that there is a hierarchy and that all your devices use that server as a gateway of sorts. If I understand it correctly, Tailscale acts as a mesh that is laid on top of your existing connections, but it means that devices that you connect to the same mesh, behave as if they were on the same LAN network, but over the internet. So let's say you're on holiday, you can connect to your home computer (assuming your device and your home system have Tailscale, an internet connection and are running ofc) as if it was on the same network. Because it is. It's on a virtual network where Tailscale creates these connections and manages the IPs on the network. So you can view your movies, copy over your pictures from your phone to your home computer and so on.
You could also maybe have a home server which might be running a number of services. Enabling SSH over the internet has it's risks, but Tailscale could alleviate a lot of these risks because you would have a fixed IP on this virtual network and so does your server. So suddenly, you can define a rule on your server firewall that says "hey, block everyone, except THIS ip".
Lastly, you could maybe even just share pictures, documents and whatever else with friends, family or anyone else who is running on the same Tailscale network.
I really hope I haven't completely misunderstood the service and I'd be happy to get more clarity or some better examples. These are SOME of the use cases I can think of, but there are probably more! Btw, I don't use Tailscale, I am considering it after having considered other mesh networks like Yggdrasil as that's the part I'd be interested in...