Is this primarily for multi-user scenarios or complex setups?
Beyond that, compared to a typical hub-and-spoke WireGuard setup, the main advantage is peer-to-peer connectivity. Clients connect directly to each other when possible, which lowers latency by bypassing a central relay.
AFAIK, they also have different origins:
Pangolin started as an internet-facing reverse proxy (Traefik) combined with a WireGuard server for backend nodes. It has gradually added VPN-like features, including client device access and an internal HTTPS proxy similar to Tailscale Serve.
NetBird is a self-hostable Tailscale alternative that started as a mesh VPN focused on P2P traffic. It recently added its own reverse proxy features (Traefik-based, coincidentally), also similar to Tailscale Serve.
Pangolin is centered on endpoint and ingress management, while NetBird focuses on mesh networking, though their feature sets are increasingly converging.
For public access, similar to these cloudflare tunnels, there's Tailscale Funnel.
Here's `tailscale funnel status` on my machine:
$ tailscale funnel status
# Funnel on:
# - https://my-machine.tailXXXX.ts.net
https://my-machine.tailXXXX.ts.net (Funnel on)
|-- / proxy http://localhost:3000
|-- /foo proxy http://localhost:3001
|-- /bar proxy http://localhost:3002
|-- /baz proxy http://localhost:4004The CLI doesn't let you do as much as the go library does.
The only always-on TS service on my phone is Immich for photo backup, and I don't take enough photos for that to matter much.
My endpoint is a pretty stable (though technically dynamic) IPv4 on one end, but the other might be a cell phone with CGNAT, some random WiFi, blah blah etc. TS does that. If you don't want to use it, cool. Don't. I'm willing to make the tradeoffs to use TS for now. That could change in the future.