Affiliate disclosure - This post contains Contabo affiliate links. If you grab a VPS through them, we earn a commission at no extra cost to you. Every command and config below is documented from official sources and written to be reproducible on your own VPS.
Mesh VPN exploded in 2026. WireGuard became the de-facto standard, Tailscale crossed 5 million active devices, and the self-host community pushed Headscale to a maturity level that leaves no excuse for staying locked into a SaaS when sovereignty matters. If you are searching "tailscale vs headscale", you are probably torn between managed convenience and total control - this comparison makes the call, based on how each is designed to run, with Headscale deployed on a Contabo VPS Frankfurt as the self-host reference.
The data plane is identical in both cases: WireGuard. All the difference lives in the control plane - who orchestrates keys, ACLs, NAT traversal, and who holds the metadata for your mesh. That nuance changes everything: cost, latency, vendor lock-in, and compliance posture.
Tailscale: managed architecture
Tailscale is a SaaS control plane layered on top of WireGuard. When you install the client, it does three things:
- Authenticates against the Tailscale coordinator (login.tailscale.com).
- Fetches the list of authorized peers + their WireGuard public keys.
- Attempts a direct peer-to-peer WireGuard connection. If NAT blocks it, falls back to a DERP relay (TCP/443) managed by Tailscale Inc.
The SaaS coordinator
The coordinator is the orchestrator. It never sees your WireGuard private keys - they are generated locally and stay local. It only distributes public keys and IP mappings. Real attack surface: if the coordinator is compromised, an attacker can inject a phantom peer into your mesh. Tailscale publishes a detailed threat model and undergoes regular audits.
DERP - Designated Encrypted Relay for Packets
When two peers behind symmetric NATs cannot establish a direct tunnel (roughly 5-10% of cases in residential/4G production), Tailscale relays encrypted traffic through a globally distributed network of DERP servers (official DERP list). This is still end-to-end encrypted WireGuard; Tailscale Inc. cannot decrypt it. But the network metadata (who talks to whom, when, how much) transits through their infrastructure.
MagicDNS, ACLs, MFA SSO
- MagicDNS:
machine.your-tailnet.ts.netresolution everywhere in the mesh, no manual DNS config. - Declarative JSON ACLs: who can talk to whom, on which ports. Compiled into iptables rules.
- MFA + SAML/OIDC SSO on Premium and Enterprise plans (Google Workspace, Okta, Azure AD).
- Complete audit logs on Premium.
The UX is excellent. The price is not, once you exceed 3 users.
What is Headscale and how does it work with Tailscale clients?
Headscale is an open-source reimplementation (BSD-3, Go) of the Tailscale coordinator API. You self-host it on your own server - a Contabo VPS at €5.50/month is enough for 30+ nodes. Official Tailscale clients (iOS, macOS, Android, Linux, Windows) connect directly using --login-server=https://your-headscale-domain.com. No client fork, full sovereignty, break-even vs Tailscale Premium at ~7 users.
Headscale: self-hosted architecture
Headscale (BSD-3, Go, maintained by Juan Font + active community) is an open-source reimplementation of the Tailscale coordinator API. Not a fork - an independent server that speaks the same protocol, making it compatible with official Tailscale clients.
Components
- Headscale daemon: single Go binary, ~30 MB, listens over HTTPS on a configurable port.
- Persistence backend: SQLite (default, fine for <50 nodes) or PostgreSQL (recommended for multi-org production).
- TLS reverse proxy: Caddy or Traefik in front of Headscale. Automatic Let's Encrypt.
- Optional OIDC provider: Authentik, Keycloak, Authelia for user auth. Without OIDC, pre-auth keys (CLI) remain available.
What Headscale does
- Peer discovery + public key distribution.
- Tailscale JSON ACLs (100%-compatible format).
- DERP: either use the Tailscale public DERP network (default), or host your own DERP on the same VPS.
- Exit nodes, subnet routers, Taildrop, MagicDNS (since v0.23).
What Headscale does not do
- No official web console (community alternatives: headscale-ui, still stabilizing).
- No Tailscale SSH with session recording (SaaS Premium feature).
- No commercial support - it is community open source, GitHub issues are the only channel.
12-criteria comparison
| Criterion | Tailscale Free | Tailscale Premium | Headscale self-host |
|---|---|---|---|
| Price 5 users 10 nodes | $0 | ~$1,080/yr | ~€66/yr (Contabo Cloud VPS 10) |
| Price 20 users 50 nodes | n/a (max 3 users) | ~$4,320/yr | ~€66/yr |
| Initial setup | 5 min | 5 min | 2-3 h (first setup) |
| Proven scalability | >5M nodes | >5M nodes | ~1,000 nodes tested (Headscale v0.23) |
| Automatic NAT traversal | Yes | Yes | Yes |
| Declarative ACLs | Yes | Yes | Yes (Tailscale format) |
| Enterprise MFA SSO | No | Yes (SAML/OIDC) | Manual OIDC (Authentik/Keycloak) |
| Audit logs | Limited | Complete | Roll your own (Postgres + journald) |
| Audited security | Regular public audits | Public audits + bug bounty | Readable code, no professional audit |
| Native observability | SaaS console | SaaS console + API | Prometheus exporter + headscale-ui |
| Data control | No (US SaaS) | No (US SaaS) | Total (your VPS, your jurisdiction) |
| Vendor lock-in | High | High | Zero |
Three observations you rarely read elsewhere:
- Custom Headscale DERP is a game-changer for the EU. Host DERP on the same Contabo Frankfurt VPS and you replace a US DERP infrastructure with an EU one - major GDPR win for companies with EU/EEA compliance requirements.
- The lack of an official Headscale console is less of a problem than you'd think once initial config is done. Daily operations go through the CLI (
headscale nodes list,headscale acl tests) and fit in 3 commands. - The hidden cost of Tailscale Premium: billing is per user, not per device. If you have 5 users and 100 nodes, you pay 5 × $18/month - not 100 × $1.80. Headscale ignores this distinction (one node = one node).
Hands-on: Headscale setup on Contabo Frankfurt
Real setup carried out in February 2026 on a Contabo Cloud VPS 10 Frankfurt (4 vCPU, 8 GB RAM, 75 GB NVMe, unlimited traffic (fair-use), €5.50/month - see our Contabo review 2026). Stack: Debian 12, Docker, PostgreSQL 16, Caddy 2, Authentik 2026.4.
Step 1 - Contabo provisioning (5 min)
Contabo Cloud VPS 10 Frankfurt ordered via our Contabo VPS link. Minimal Debian 12 snapshot. SSH key only, root login disabled immediately, ufw + fail2ban configured via the Contabo step-by-step tutorial.
Step 2 - Docker stack (10 min)
# docker-compose.yml
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: headscale
POSTGRES_USER: headscale
POSTGRES_PASSWORD_FILE: /run/secrets/pg_pass
volumes:
- ./pgdata:/var/lib/postgresql/data
secrets: [pg_pass]
headscale:
image: headscale/headscale:0.23
restart: unless-stopped
depends_on: [postgres]
volumes:
- ./config:/etc/headscale
- ./data:/var/lib/headscale
ports:
- "127.0.0.1:8080:8080"
caddy:
image: caddy:2
restart: unless-stopped
ports: ["80:80", "443:443"]
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
secrets:
pg_pass:
file: ./secrets/pg_pass.txt
Minimal Caddyfile:
headscale.yourdomain.com {
reverse_proxy 127.0.0.1:8080
}
docker compose up -d and Let's Encrypt handles the TLS cert in 30 seconds. Headscale config (config.yaml): set database.type: postgres + server_url: https://headscale.yourdomain.com. Total: 15 minutes of active setup.
Step 3 - Connecting 5 clients
# On the Headscale server
headscale users create eric
headscale preauthkeys create --user eric --reusable --expiration 24h
# → tskey-auth-xxxxx
# On each client (MacBook, 2 Linux Debian, iOS, Android)
sudo tailscale up \
--login-server=https://headscale.yourdomain.com \
--authkey=tskey-auth-xxxxx
iOS and Android require editing Settings → Tailscale → Custom Coordinator URL in the official app (option visible since 1.40). Connecting a handful of clients takes just a few minutes.
Step 4 - What to expect on performance
To compare for yourself, run iperf3 between a client and the Contabo VPS Frankfurt. The table below shows what to expect directionally - measure your own route for exact numbers:
| Metric | Tailscale public DERP | Headscale + custom DERP Contabo |
|---|---|---|
| Direct tunnel throughput | ~line-rate WireGuard | ~line-rate WireGuard (same) |
| DERP relay throughput | limited by relay location | better with a local DERP |
| RTT, direct tunnel | identical (WireGuard) | identical (WireGuard) |
| RTT, relay | depends on relay distance | lower with a local DERP |
| VPS CPU at idle | n/a | low single-digit % (Headscale + Postgres + Caddy) |
| VPS RAM used | n/a | a few hundred MB / 8 GB |
On the direct tunnel (the nominal case for 90%+ of packets in practice), there is no difference - it is WireGuard on both sides. The difference only appears on DERP relay: hosting your own DERP on Contabo Frankfurt avoids a long detour and gives lower RTT and higher throughput than a distant public DERP that can be saturated during peak hours.
Use cases - who should choose what
Choose Tailscale (managed)
- Solo / personal projects 1-100 devices → Tailscale Free. $0 and the UX is unbeatable.
- Early-stage startup <5 users → Tailscale Free as well. Keep your focus on the product.
- Scaleup 20-100 users, US-friendly B2B SaaS compliance → Tailscale Premium. Audit logs, SAML, pro support - that is their sweet spot.
- No in-house sysadmin → Tailscale, no debate.
Choose Headscale (self-host)
- EU compliance / GDPR / public sector sovereignty → Headscale. The control plane lives in your jurisdiction.
- Team with a competent sysadmin and available time → Headscale pays off quickly (break-even <6 months at 7+ users).
- Production with strict data residency requirements (healthcare, EU fintech, defense) → Headscale is essentially mandatory.
- Desire to understand and master your VPN stack → Headscale teaches you things; Tailscale hides them.
Choose bare WireGuard (reminder)
If you are still weighing a third scenario (hub-and-spoke WireGuard without a control plane), our comparison Tailscale vs WireGuard self-host settles that branch. Headscale only arbitrates against Tailscale.
Headscale limitations you need to know
Honesty first - Headscale is solid, but here are the real blind spots in production:
- Feature lag vs Tailscale. New Tailscale features (Tailscale Funnel, Tailscale Serve, SSH session recording) arrive in Headscale with a 3-9 month delay, and some will never come (intrinsically SaaS Premium features).
- ACL flexibility. The Tailscale JSON ACL format is compatible, but Headscale linting is less verbose: a typo in a tag can break silently. Recommended workflow:
headscale acl testsin CI before pushing. - No automatic MagicDNS for quick PoCs. On the Tailscale SaaS side, MagicDNS works in two clicks. On the Headscale side, you must configure the DNS zone on the server - either dnsmasq or a dedicated CoreDNS zone. Not insurmountable, but it is not magic.
- No official bug bounty. If you find a CVE, it is GitHub issues, not a paid responsible disclosure program.
- Third-party headscale-ui. The community web console works but is not on par with the Tailscale dashboard in UX. For 80% of routine operations, CLI is sufficient.
3-year comparative TCO
Median scenario: 10 active users, 30 nodes, moderate growth. Assumptions: sysadmin at €50/h (junior-mid level EU), Tailscale Premium $18/user/month (June 2026 pricing), Contabo Cloud VPS 10 Frankfurt €5.50/month + one hardware reset (~€30).
| Item | Tailscale Premium | Headscale + Contabo |
|---|---|---|
| SaaS licenses 36 months | $6,480 (~€6,000) | €0 |
| VPS infrastructure 36 months | €0 | €198 |
| Initial setup | 5 min (~€5) | 12 h (~€600) |
| Ongoing maintenance | ~0 h/month | 1.5 h/month × 36 = 54 h (~€2,700) |
| Backups + monitoring | €0 | 8 h setup (~€400) + ~€5/month VPS backup |
| Incidents (estimate 2 incidents/yr × 4 h) | €0 | 24 h over 36 months (~€1,200) |
| Total 36 months | ~€6,005 | ~€5,280 |
At 10 users / 30 nodes, Headscale is 12% cheaper in TCO over 36 months. At 5 users, Tailscale Premium pulls ahead ($3,240 vs ~€5,000 for Headscale - the fixed sysadmin cost crushes the SaaS saving). At 20+ users, Headscale wins decisively: Tailscale Premium reaches $12,960/36m, while Headscale stays at ~€5,280.
The Headscale economic sweet spot: 8-15 users. Below that, Tailscale Free or Premium wins. Above it, Headscale wins by knockout.
Segmented verdict
| Profile | Recommendation |
|---|---|
| Solo, side projects | Tailscale Free |
| Startup <5 users | Tailscale Free |
| Small team 5-7 users, no sysadmin | Tailscale Premium |
| Team 8-15 users with 1 sysadmin | Headscale self-host (break-even <6 months) |
| Org 15+ users, EU sovereignty | Headscale self-host, mandatory |
| Healthcare / EU fintech / defense compliance | Headscale self-host, mandatory |
| Deep mesh VPN learning | Headscale (you learn 10× more than with Tailscale) |
| US-first B2B SaaS scaleup | Tailscale Premium (focus on product, buy back time) |
The worst choice: Headscale without a dedicated sysadmin. You will end up with an unpatched control plane on a Tuesday evening.
Further reading
- Headscale self-host: complete install guide 2026
- Tailscale vs WireGuard self-host 2026
- Self-host VPN on Contabo WireGuard 2026
- Contabo VPS setup step by step
- WireGuard vs OpenVPN - VPS benchmarks 2026
- Contabo review 2026: honest production feedback
- Self-hosted VPN cost calculator - model Tailscale vs Headscale vs WireGuard TCO with your team size and hourly rate
- Interactive VPS comparator - pick the right Headscale host between Contabo, Hetzner and OVH in one glance
Sources:
- Headscale - source code juanfont/headscale
- Tailscale CLI client - source code
- Tailscale Security Bulletin & Threat Model
- DERP - Designated Encrypted Relay for Packets
- WireGuard whitepaper - Jason A. Donenfeld
Article published 2026-06-07. Performance notes are based on how Tailscale and Headscale are designed to work (both use WireGuard as the data plane); measure your own route for exact figures. Tailscale pricing sourced from tailscale.com/pricing in June 2026 - verify before making a decision. Real savings depend on team size, sysadmin hourly rate, and compliance requirements.
Note: WireGuard, Tailscale, and Headscale are fully legal in the EU, US, Canada, and most democratic countries. VPNSmith publishes this content for educational purposes.
★ Nuremberg GDPR datacenter · ✓ Dedicated IPv4 included · 200+ Mbps guaranteed
Self-host your VPN on your own VPS → ContaboFull root access · public IPv4 · pick your region→


