DevOpsintermediate

Headscale vs Tailscale

Headscale and Tailscale compared for 2026: who runs the coordination server, pricing and user limits, feature parity (Funnel, Serve, SSH, ACLs and grants, DERP, OIDC), clients, scaling, logging, upgrades and support, with a clear pick for homelabs, small teams and companies.

Quick Answer

Tailscale is a managed WireGuard mesh VPN. Its clients and DERP relay code are open source under BSD-3-Clause, but the coordination server that hands out keys, IP addresses, DNS settings and policy is a closed-source service run by Tailscale Inc. The free Personal plan covers up to 6 users with unlimited user devices for non-commercial use; Standard is $8 and Premium $18 per user per month. Headscale is an independent, BSD-3-Clause, self-hosted implementation of that coordination server, written in Go. You keep using the official Tailscale clients on Linux, Windows, macOS, iOS, Android, tvOS, FreeBSD and OpenBSD, but you point them at your own server. Headscale deliberately serves a single tailnet for personal use or small organisations. It supports MagicDNS, subnet routers, exit nodes, ACLs and grants, Tailscale SSH, Taildrop, Taildrive, OIDC login and an embedded DERP server. Funnel, Serve and network flow logs are not supported. The current release is v0.29.7 (30 October 2026), and Tailscale's client is at v1.104.5 (3 November 2026). Pick Tailscale if you want zero infrastructure, the full feature set and vendor support. Pick Headscale if you want the control plane on your own box, no user caps and no dependency on Tailscale's service, and you are happy to operate it.

Last updated November 10, 2026. Covers Headscale v0.29.7 (30 Oct 2026) and Tailscale client v1.104.5 (3 Nov 2026), with plan pricing from tailscale.com/pricing and features from headscale.net and Tailscale's docs, read in November 2026.

Feature comparison of Headscale vs Tailscale
FeatureHeadscaleTailscale
License
BSD-3-Clause (open source); built in Go
Clients (tailscaled, CLI) and DERP server BSD-3-Clause; coordination server and some GUI clients proprietary
Control Plane
Self-hosted; one tailnet per instance
Managed SaaS by Tailscale Inc.; multiple tailnets via add-on
Pricing
Free; you pay for the server and your time
10/10
Personal $0; Standard $8 and Premium $18 per user/month; Enterprise custom; extra tagged resources $1/month each
7/10
Users & Devices
No product limits on users or devices; practical limits depend on network churn
Personal up to 6 users; paid plans unlimited users; user devices unlimited on every plan
Clients
Official Tailscale clients (last 10 releases supported); v0.29.x requires Tailscale v1.80.0 or newer
Linux, Windows, macOS, iOS, Android, tvOS and more; current v1.104.5
Install & Requirements
Official binaries and DEB packages (Ubuntu 22.04+, Debian 12+); public IP, HTTPS on 443; containers built but not officially supported
Nothing to host; install the client and sign in
Data Store
SQLite recommended; PostgreSQL supported but in maintenance mode
Managed by Tailscale
Login & Identity
Web authentication, pre-auth keys, OpenID Connect with PKCE (groups not usable in ACLs)
SSO with any supported IdP on all plans; SCIM on Standard and above; user and device approval
Access Policy
Tailscale huJSON policy: ACLs, grants, tags, some autogroups, auto approvers, node attributes, policy tests (beta); no device posture or IP sets
ACLs and grants; ACL groups 3 / 10 / 300 by plan; device posture integrations on Standard+, just-in-time access on Premium
Tailscale SSH
Supported, including check mode with OIDC or CLI approval
Tailscale SSH on all plans; advanced SSH (custom check periods, localpart matching) on Premium+
MagicDNS & DNS
MagicDNS, global and split nameservers, search domains, extra DNS records
MagicDNS and split DNS on all plans
Subnet Routers & Exit Nodes
Subnet routers, exit nodes, route filtering with via, auto-approval, dual stack
Subnet routers and exit nodes on all plans; regional routing on Premium+; Mullvad exit nodes add-on ($5/month per 5 devices)
DERP & Peer Relays
Embedded DERP server (off by default, needs udp/3478); can keep or drop Tailscale's public DERP map; peer relays supported
Tailscale-operated DERP regions worldwide; peer relays; custom DERP servers possible with caveats
Funnel & Serve
Not supported (Funnel #1040, Serve #1234)
Funnel (beta) and Serve available on all plans
Taildrop & Taildrive
Taildrop and Taildrive (Taildrive configured through policy)
Taildrop and Taildrive
Logs & Telemetry
Client log submission to Tailscale disabled by default; no network flow logs
Configuration audit logs and webhooks on all plans; network flow logs and log streaming on Premium+
Admin UI & API
CLI and REST API; no built-in web UI (community projects available)
Web admin console, REST API, OAuth clients, Terraform provider
Scale
Hundreds of devices with little churn; not tuned for large, frequently changing networks
Managed service; Enterprise offers custom device quantities and limits
Support
Community (GitHub, Discord)
Customer support on all plans; support SLAs on Standard+; Silver, Gold, Platinum packages
Latest Version (Nov 2026)
v0.29.7 (30 Oct 2026)
Client v1.104.5 (3 Nov 2026)

Headscale

Open-source, self-hosted implementation of the Tailscale coordination server, written in Go and licensed BSD-3-Clause. It manages one tailnet: registering nodes, assigning IP addresses, distributing WireGuard keys, DNS settings and access policy to the official Tailscale clients, with an optional embedded DERP relay.

Pros

  • You own the control plane: keys, node list, policy and user data live on your server, and no Tailscale account is needed
  • No per-seat fees or user caps; the FAQ says it is not built for enterprises but does not prevent commercial or professional use
  • Works with the unmodified official Tailscale clients on Linux, Windows, macOS, iOS, Android, tvOS, FreeBSD and OpenBSD
  • Covers the core feature set: MagicDNS and split DNS, subnet routers, exit nodes, ACLs and grants, Tailscale SSH (including check mode), Taildrop, Taildrive, ephemeral nodes and peer relays
  • Embedded DERP server and OIDC login, so the whole stack can run on one VPS with your own identity provider
  • Tells clients to turn off log submission to Tailscale's central log service by default

Cons

  • No Funnel, no Serve and no network flow logs in the current release; OIDC groups can't be used in ACLs, and device posture and IP sets aren't supported in policy
  • Single tailnet only, no built-in web admin UI (community UIs such as Headplane fill the gap), and policy edits need a reload
  • Performance is explicitly not a design goal: the whole network map is recalculated on changes, so hundreds of low-churn devices are fine but large, busy networks can fall behind
  • You run it: public IP, HTTPS on port 443, TLS, backups and upgrades that must step through every minor version; Docker and reverse proxies are not officially supported
  • Community support only (GitHub and Discord), maintained by a small team

Best For

Homelabs, self-hosters and small technical teams who want a Tailscale-style mesh VPN with the coordination server on their own infrastructure, without user limits or a Tailscale account, and who can live without Funnel, Serve and flow logs.

Tailscale

Managed mesh VPN built on WireGuard. Open-source clients connect peer-to-peer using NAT traversal, while Tailscale's closed-source coordination server distributes keys and policy and Tailscale-run DERP relays carry traffic when direct paths fail. Plans range from a free Personal tier to per-seat Standard, Premium and Enterprise plans.

Pros

  • Nothing to host or patch: sign in with an identity provider and devices join in minutes
  • Free Personal plan with up to 6 users, unlimited user devices, 50 tagged resources and 1,000 ephemeral-resource minutes a month
  • Full feature set, including Funnel and Serve, Kubernetes operator, MDM deployment, device posture, webhooks and configuration audit logs
  • Global DERP relay network with most regions running at least three servers, plus peer relays
  • Tailnet Lock lets your own trusted nodes sign new nodes, so a compromised coordination server can't silently add devices
  • Paid plans add SCIM, advanced roles, network flow logs, log streaming and support SLAs

Cons

  • The coordination server is closed source and run by Tailscale Inc.; you can't self-host it
  • Personal plan is for non-commercial use only; business use starts at $8 per user per month (Standard) or $18 for Premium features such as flow logs
  • Clients send operational logs to log.tailscale.com by default; opting out can limit the support Tailscale can give
  • Windows, macOS and iOS GUI clients are closed source (the daemon and CLI are open source)

Best For

Individuals who want a zero-maintenance personal VPN, and teams or companies that want managed identity-based networking with SSO, SCIM, audit logs, Funnel and vendor support.

What you actually self-host

Tailscale has three parts: the client on every device, DERP relay servers, and a coordination server. Tailscale's own open-source page says the client daemon and CLI are open source everywhere, the full client is open source on open platforms such as Linux and Android, the DERP server is open source, and the coordination server is closed source. That server is the piece Headscale replaces. It is a key and policy exchange: nodes log in, upload their WireGuard public key and current endpoints, and download the keys, addresses, DNS configuration and packet filter for the peers they are allowed to reach. Data still flows peer-to-peer over WireGuard, and when a direct path fails it goes through a DERP relay, which only ever sees encrypted packets. So moving to Headscale does not change how traffic is encrypted or routed. It changes who holds the node list, who can add a device to your network, and whose uptime your logins depend on. Headscale also ships an embedded DERP server, which is off by default and needs udp/3478 for STUN. Once enabled, it is added to the list of free Tailscale-run relays unless you remove that list, and the docs warn that relying on a single self-hosted relay creates a single point of failure.

Feature parity in practice

Headscale's own feature page is the best map. Fully supported: web and pre-auth-key registration, MagicDNS with global and split nameservers and search domains, Taildrop and Taildrive, tags, subnet routers and exit nodes with route filtering via specific routers, dual stack, ephemeral nodes, the embedded DERP server and peer relays. In policy it supports ACLs, grants, some autogroups, auto approvers for routes and exit nodes, Tailscale SSH, node attributes, and policy tests, which became a beta feature in v0.29.0 alongside SSH check mode. OIDC login works, including updating the user profile from the identity provider, but OIDC groups cannot be used in ACLs. Listed as not supported: Funnel, Serve and network flow logs. The policy page adds that device posture and IP sets are not available. On the Tailscale side, the pricing table shows Funnel, Serve, peer relays, the Kubernetes operator, SSO with any identity provider, webhooks and configuration audit logs on every plan including the free one. Flow logs, log streaming, regional routing and advanced SSH need Premium. If your use is reaching home servers, SSH and a few subnet routes, Headscale covers it. If you want to publish a local service to the internet or feed flow logs into a SIEM, it does not.

Cost at different sizes

For one person or a family, both are effectively free. Tailscale's Personal plan allows up to six users, unlimited user devices, three ACL groups, 50 tagged resources and 1,000 minutes a month of ephemeral resources, but it is for non-commercial use. Headscale costs whatever the server costs, plus your time. The comparison changes for a business. Ten people on Tailscale Standard is 10 × $8 = $80 a month, or $960 a year at list price. On Premium it is 10 × $18 = $180 a month. Servers, subnet routers and other tagged devices beyond the included 50 cost $1 a month each, and a Mullvad exit-node add-on is $5 a month per five devices. Headscale has no seat pricing at all, which is why small companies look at it. The hidden cost is operations. Headscale needs a public IP, HTTPS on port 443, certificates, backups of its SQLite database and keys, and upgrades that the FAQ says must go through every minor version in order. Nobody is on call but you. If a Tailscale outage would cost you less than an engineer's afternoon each month, the subscription is usually cheaper than the self-hosting time.

Running Headscale well

The supported install path is narrow on purpose. The project recommends its DEB packages on Ubuntu 22.04 or newer and Debian 12 or newer, which create a dedicated user, a default config and a systemd unit. Standalone binaries are supported but marked advanced. Container images are built, but the FAQ says Docker deployments are not officially supported, and the README says the maintainers do not support or encourage reverse proxies. Plan on running it directly on a small VPS with ports 80 (if you use the built-in Let's Encrypt HTTP-01 client), 443 and, for embedded DERP, udp/3478 open. Use SQLite: the maintainers recommend it, develop and test on it, and consider PostgreSQL to be in maintenance mode. Policy lives in a huJSON file or the database and is applied with systemctl reload. Headscale refuses to start on an invalid stored policy, and the FAQ documents the recovery commands. Don't run Headscale on a machine that is itself in the tailnet. Keep the Tailscale clients current as well: v0.29.7 was a security release fixing findings from Anthropic's oss-scanner project and the Tailworm report, and it recommends Tailscale v1.104.4 or newer because some fixes live in tailscaled, not the server.

Scale, logging and trust

Headscale is candid about scale. Each change recalculates the network map for every node, and performance is not part of the design brief. The FAQ estimates hundreds of devices, maybe more, when nodes rarely change, and warns that many nodes changing often can leave the server permanently behind. A fleet of servers is fine. Hundreds of laptops and phones hopping between networks is the case to avoid. Tailscale's Enterprise plan instead offers custom device quantities and limits, and Premium adds network flow logs and log streaming. Logging also differs. Tailscale clients send operational logs and connection events to log.tailscale.com by default. You can opt out per device with TS_NO_LOGS_NO_SUPPORT or --no-logs-no-support, at the cost of support. Headscale instructs clients to disable that submission by default. On trust, Tailscale's answer to people who don't want to trust its control plane is Tailnet Lock: new nodes need a signature from trusted nodes before peers accept them. Tailscale's own Tailnet Lock page names Headscale as the alternative for keeping the centre of trust on your own network, and notes that you then give up its availability guarantees. Tailscale also employs one Headscale maintainer, and both projects say Tailscale does not set Headscale's direction.

Verdict

Pick Tailscale unless you have a specific reason to run the control plane yourself. For personal use the free plan covers six users and unlimited devices, and the managed service gives you the full feature set (Funnel, Serve, the Kubernetes operator, webhooks, audit logs) with nothing to patch. For a business it is the default too: Standard at $8 per user per month adds SCIM, device posture integrations and support SLAs, and Premium at $18 adds network flow logs, log streaming and just-in-time access. Tailnet Lock reduces how much you have to trust Tailscale's coordination server without making you run one. Pick Headscale when owning the coordination server is the point: a homelab that should not depend on an outside account, a small organisation that wants to avoid per-seat fees, or a setup where node lists and policy must stay on your own hardware. You keep the official Tailscale clients, MagicDNS, subnet routers, exit nodes, ACLs and grants, and Tailscale SSH. You give up Funnel, Serve and flow logs, a built-in web UI and vendor support, and you take on TLS, backups and step-by-step upgrades. Headscale is not built for large, fast-changing fleets, so for hundreds of laptops and phones moving between networks, stay on Tailscale.

All Comparisons

Headscale vs Tailscale — FAQ

Common questions answered from the comparison above

Is Headscale the same as Tailscale?

No. Headscale is an independent open-source implementation of Tailscale's coordination server only. You still use the official Tailscale clients, but they register with your Headscale server instead of Tailscale's hosted control plane. Headscale is not affiliated with Tailscale Inc., although one maintainer is employed by Tailscale and can work on it during work hours.

Is Tailscale free?

The Personal plan is free indefinitely for non-commercial use, with up to 6 users, unlimited user devices, 3 ACL groups and 50 tagged resources. Business use starts with Standard at $8 per user per month, then Premium at $18 and custom-priced Enterprise. Open-source projects with an OSI licence can use Tailscale for free through the Community on GitHub plan.

Does Headscale support Tailscale Funnel?

No. Headscale's feature list marks Funnel (issue #1040), Serve (issue #1234) and network flow logs (issue #1687) as not supported in the current release. If you need to expose a local service to the public internet, use Tailscale or a separate reverse tunnel.

Can I use the Tailscale apps on my phone with Headscale?

Yes. Headscale supports the official Tailscale clients on Android, iOS, macOS, tvOS, Windows, Linux, FreeBSD and OpenBSD. The mobile and Apple clients need you to set a custom coordination server URL; Headscale serves instructions at /apple and /windows on your server.

How many devices can Headscale handle?

It depends on churn more than size. The maintainers estimate hundreds of devices, maybe more, if nodes rarely change, because the full network map is recalculated after each change. Many devices that move between networks often, such as laptops and phones, can keep the server busy constantly.

Can I move from Tailscale to Headscale later?

Yes, but it is a re-enrolment, not an export. Each device has to log in to your Headscale server, and you rebuild users, tags, routes and DNS settings there. Headscale uses Tailscale's huJSON policy format, so most ACLs and grants carry over, except features it doesn't support such as device posture, IP sets and OIDC groups in ACLs.

Get the next comparison by email

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.