VPNSmith
self-host-vpnCOMP

Headscale vs OpenVPN (2026): A Mesh and a Concentrator Are Not the Same Question

Headscale coordinates a peer-to-peer WireGuard mesh; OpenVPN funnels clients through one server. Comparing them is really deciding whether your traffic should hub through a box you control, or go direct - and what you lose either way.

By Eric Gerard · Founder · VPNSmith - Self-host VPN & GDPR VPS specialist4 min readPhoto: Pexels

These two are compared constantly, and the comparison is slightly mis-framed. Headscale and OpenVPN do not solve the same shape of problem. One coordinates a mesh in which your devices talk directly to each other; the other is a concentrator through which all traffic passes. Deciding between them is mostly deciding which of those two topologies you actually want — and the answer is often obvious once the question is put that way.

The structural difference, in one paragraph

With OpenVPN, clients connect to a server. That server sees every packet, and it is both the control point and the traffic path. When two of your laptops talk to each other, their traffic goes up to the server and back down.

With Headscale, the server hands out keys and network maps, then gets out of the way. Two devices that have been introduced talk directly, encrypted end to end with WireGuard. The control plane can be offline and existing tunnels keep working.

That single difference drives almost everything below.

Where the mesh wins

Traffic does not detour. Two machines in the same office reach each other across the office, not via a VPS in Frankfurt. On latency-sensitive work this is not a marginal gain.

No single traffic bottleneck. An OpenVPN server's bandwidth is a ceiling shared by everyone; a mesh has no equivalent central pipe.

Per-device identity. Every node has its own key and its own place in an ACL, rather than a certificate that grants entry to "the network".

Speed, usually. WireGuard commonly runs in the Linux kernel while OpenVPN runs in userspace, which tends to favour WireGuard on a Linux host. Treat this as a tendency, not a number: on a saturated link, or when both peers sit near the OpenVPN server anyway, the difference can vanish into the noise.

A fibre patch panel seen from an angle, rows of turquoise ports on the right with white LC connectors plugged in, aqua and yellow fibre cables curving away to the left against a dark cabinet
A fibre patch panel with turquoise ports and white LC connectors, cables curving away into a dark cabinet. A concentrator centralises paths like this on purpose; a mesh is the decision not to.

Where OpenVPN still wins, and it is not nostalgia

Getting through hostile networks. OpenVPN can run over TCP port 443, indistinguishable from ordinary HTTPS to a port-based filter. WireGuard is UDP-only, so a network that blocks UDP blocks the mesh completely — no client setting rescues it. On hotel, campus and corporate Wi-Fi, this is decisive, and it is the reason many people keep an OpenVPN endpoint alive purely as an escape hatch. When even TCP/443 is inspected rather than merely filtered, the answer stops being a transport setting and becomes obfuscation — wstunnel, which carries the tunnel inside a WebSocket, is the usual next step.

Devices that will never run WireGuard. Legacy routers, embedded industrial equipment, older NAS firmware, appliances abandoned by their vendor. A mesh that half your estate cannot join is not a mesh.

One controlled point of entry. Sometimes centralising traffic is the requirement, not the drawback — when everything must pass a single inspection point, or exit from one auditable address. A mesh is the wrong tool for that by design.

Maturity of the ecosystem. Decades of documentation, and no dependency on one company's client.

A decision table that does not hedge

Your situationPick
Connecting your own machines to each otherHeadscale
You need one controlled, auditable point of entryOpenVPN
Part of the fleet is old hardware or appliancesOpenVPN
Latency between peers mattersHeadscale
You regularly work from networks that filter UDPOpenVPN (TCP/443)
You want per-device identity and central ACLsHeadscale
You want zero dependency on a vendor's clientOpenVPN

The honest verdict

If you are building private connectivity between machines you own, Headscale is the better default in 2026 — the topology fits the problem, and the performance follows from that fit rather than from clever engineering.

Keep OpenVPN where it is genuinely irreplaceable: hostile networks that only let TCP/443 out, and hardware that cannot join a modern mesh. Those two cases are narrower than they were five years ago, and they are not going away.

Running both is a legitimate outcome, not a failure to decide. The cost is two access paths to audit instead of one — real, but usually smaller than forcing every case through a single tool that fits only some of them.

★ 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

Frequently asked questions

Is Headscale a replacement for OpenVPN?
Only if your OpenVPN setup exists to connect your own machines to each other. Headscale coordinates a peer-to-peer mesh: once two devices know about each other they talk directly, and the server carries no traffic. OpenVPN is a concentrator - every packet goes through the server, which is what you want when you need one controlled point of entry into a network, and unnecessary overhead when you do not.
Which one is faster?
In most self-hosted setups the mesh wins, for two reasons that have nothing to do with either project being better written. WireGuard, which Headscale coordinates, usually runs in the Linux kernel while OpenVPN runs in userspace; and mesh traffic goes device-to-device instead of detouring through a server that may be in another country. The gap narrows when both peers are near the OpenVPN server anyway, and disappears entirely when the bottleneck is the link rather than the CPU. Measure your own route before treating it as decided.
Can Headscale get through a restrictive firewall like OpenVPN can?
Less easily, and this is OpenVPN's strongest remaining argument. OpenVPN can run over TCP port 443, which looks like ordinary HTTPS to a port-based filter and passes almost anywhere. WireGuard is UDP-only, so a network that blocks UDP blocks the mesh outright, and no setting inside the client changes that. Headscale can relay through DERP servers you host, but that is a fallback for NAT traversal rather than a censorship-evasion feature.
What about old devices and appliances?
OpenVPN, comfortably. It has clients for hardware that will never see a WireGuard kernel module: legacy routers, embedded industrial gear, older NAS firmware, appliances whose vendor stopped shipping updates years ago. If your fleet includes machines like that, this alone can settle the question - a mesh that half your estate cannot join is not a mesh.
Which is more work to run?
Different work, not obviously more. OpenVPN asks you to manage a certificate authority and a server config, a well-documented path with decades of tutorials and a large surface to misconfigure. Headscale asks you to run a control-plane service with a database behind it, keep it available for enrolments and key rotation, and accept that the official clients are maintained by a company whose tolerance is not contractual. Neither is a weekend of pain; both are a commitment.
Can I run both?
Yes, and plenty of setups end up there for a good reason. A mesh handles the machines that support it, while an OpenVPN endpoint on TCP/443 stays available for hostile networks and for devices that cannot join the mesh. The cost is two access paths to audit instead of one, which is a real cost - but often smaller than forcing every case through a single tool that fits only some of them.