Skip to main content
Self-Hosting & Privacy

WireGuard vs OpenVPN: Which to Self-Host?

WireGuard wins on speed, simplicity, and battery; OpenVPN wins on firewall-bypass over TCP 443 — and OpenVPN's kernel-space DCO has largely closed the old throughput gap. A first-hand decision table and a real WireGuard config to help you pick the right protocol for a self-hosted VPN.

milanbuha00July 31, 20266 min read
ShareXin
WireGuard vs OpenVPN: Which to Self-Host?

You're about to open a hole in your home network so you can reach your NAS, Jellyfin, or Home Assistant from your phone — and the setup screen asks you to pick a protocol. WireGuard or OpenVPN? Get it wrong and you'll be tearing down configs and regenerating keys next weekend. The good news: for most self-hosters the answer is clear once you know the one question that actually decides it — whether your networks will let the fast option through.

I run both into a Proxmox homelab, so this is about what each costs you to set up and live with, not a marketing spec sheet.

TL;DR

  • WireGuard is faster, simpler, and kinder to your phone's battery — the default pick for most home setups.
  • OpenVPN wins when you connect from restrictive networks: it can run over TCP port 443 and look like ordinary HTTPS.
  • The classic "WireGuard is 3–5× faster" line is now dated: OpenVPN DCO moves its data path into the kernel and largely closes the speed gap.
  • WireGuard's whole codebase is tiny (~4,000 lines), which makes it far easier to audit than OpenVPN's sprawling one.
  • Pragmatic move: run WireGuard by default, keep an OpenVPN/TCP-443 fallback for hostile networks.

KEY-STAT: ~4,000 lines — WireGuard's entire codebase — versus hundreds of thousands for OpenVPN, which is why it's so much easier to audit

You have to pick one before you configure anything

Both protocols do the same core job: they build an encrypted tunnel from your device to your home network so you can reach private services safely. The difference is in how they get there, and that shapes your speed, your setup time, and whether the tunnel even connects from a locked-down café or hotel Wi-Fi.

The 30-second difference

WireGuard is modern and lean. It runs in the Linux kernel, speaks only UDP, uses the ChaCha20 cipher, and its configuration is barely more than a key pair and a list of peers.

OpenVPN is the mature veteran. It's endlessly flexible, runs over UDP or TCP (including TCP port 443, so it blends in with normal web traffic), and has decades of client support behind it — at the cost of a much larger configuration surface.

The real trade-off is speed and simplicity versus flexibility and firewall-evasion.

Speed: why WireGuard wins — and why the gap is closing

WireGuard is fast for concrete reasons. It runs in kernel space, so packets don't pay the memory-copy tax of a userspace VPN. Its ChaCha20 cipher is quick even on phones that lack AES hardware acceleration. And there's simply less code touching each packet. On the same hardware, WireGuard has historically delivered roughly 2–5× the throughput of OpenVPN, often saturating a gigabit link where OpenVPN stalls on CPU.

But 2026 changed the story. OpenVPN Data Channel Offload (DCO) pushes OpenVPN's data channel into the kernel too, and it's now mainline in the Linux kernel (6.16) when you run OpenVPN 2.6 or later with modern AEAD ciphers. With DCO enabled, the raw throughput gap largely closes — so "WireGuard is 3× faster" is no longer a safe assumption.

Warning

Don't trust a specific Mbps number from a random listicle. Real throughput depends on your CPU, your MTU, and whether DCO is switched on. If speed matters to you, measure it on your own hardware.

The decision table: WireGuard vs OpenVPN

Here's how they compare as I actually experience running both:

DimensionWireGuardOpenVPN
Raw throughputVery high, saturates gigabitLower — unless DCO is enabled
CPU overheadVery lowHigher; much better with DCO
Setup effortMinimal (key pair + peers)More (certificates / PKI)
TransportUDP onlyUDP or TCP, including port 443
Firewall / censorship bypassWeaker — fixed UDP portStronger — TCP/443 looks like HTTPS
Mobile roaming & batteryExcellent — silent roamingHeavier, reconnects more
Codebase / auditability~4,000 linesVery large
Best forFast access to your own LANRestrictive or censored networks

Read the table and the split is clean: WireGuard optimises for speed and simplicity on friendly networks; OpenVPN optimises for getting through unfriendly ones.

Setup reality: what self-hosting each takes

This is where the difference is felt most. WireGuard setup is generating a key pair per device, listing each peer with its allowed IP range, and opening a single UDP port — minutes of work. Helpers like `wg-easy`, or an overlay such as Tailscale or Headscale, make it even easier.

OpenVPN asks more: a small certificate authority / PKI, separate server and client configs, and extras like TLS auth. It's well-trodden — plenty of Docker images script it for you — but there are simply more moving parts to get right.

A WireGuard peer config looks like this

[Interface]
PrivateKey = <your-device-private-key>
Address    = 10.0.0.2/32
DNS        = 10.0.0.1

[Peer]
PublicKey  = <server-public-key>
Endpoint   = vpn.example.com:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

That's the whole client side. Where you run the endpoint is a homelab decision in itself — our Proxmox homelab guide covers standing up the VM or container that hosts it. And if your real goal is exposing a single web service rather than your whole LAN, a reverse proxy is the alternative worth weighing against a full VPN.

Tip

Start with WireGuard and only reach for OpenVPN if a network you actually use blocks it. Most people never hit that wall — and running both is easy to add later.

Which should you self-host?

There's no universal winner — there's one for your situation.

Pick WireGuard if…

You want the fastest, simplest always-on tunnel to your own network from devices you trust, you care about mobile battery and seamless roaming, and the networks you use don't block arbitrary UDP. For the typical homelab, this is the right default.

Pick OpenVPN if…

You regularly connect from restrictive networks — corporate, hotel, or censored — where only TCP port 443 reliably gets out, you need broad legacy client support, or you want maximum configuration flexibility. With DCO on OpenVPN 2.6+, you no longer sacrifice much speed to get it.

A VPN is only half of staying private, of course — the browser and accounts on the other end matter just as much, which is the ground our browser privacy guide covers. Pick the tunnel that fits your networks, and you'll set it once and forget it.

FAQ

Is WireGuard faster than OpenVPN?

Historically yes — often 2–5× the throughput on the same hardware. But with OpenVPN's Data Channel Offload (DCO), now mainline in the Linux kernel, the gap largely closes when you run OpenVPN 2.6+ with AEAD ciphers.

Is WireGuard less secure because it's simpler?

No. Its small (~4,000-line) codebase is a security advantage — there's far less to audit and fewer places for bugs to hide. Both protocols are strong when configured correctly.

Can OpenVPN match WireGuard's speed now?

Close to it, with DCO enabled on OpenVPN 2.6 or later. DCO moves the data channel into kernel space, removing most of the CPU overhead that made classic OpenVPN slower.

Which is better for getting through a firewall?

OpenVPN. It can run over TCP port 443, so it looks like ordinary HTTPS traffic and slips through networks that block VPN-shaped UDP. WireGuard's fixed UDP port is easier for a network to block.

Which is easier to set up for self-hosting?

WireGuard, by a wide margin — a key pair, a peer list, and one open UDP port. OpenVPN needs a certificate authority and more configuration, though Docker images ease the work.

Is WireGuard better for mobile battery life?

Generally yes. Its stateless design roams silently between Wi-Fi and mobile data without heavy reconnections, which is easier on battery than OpenVPN's chattier behaviour.

Related stories

More from Self-Hosting & Privacy

Stay in the loop

Get the latest articles delivered to your inbox. No spam, unsubscribe anytime.

Read next

Jellyfin vs Plex in 2026: Which to Run?

Plex's 2025-2026 price hikes put remote streaming and hardware transcoding behind a paywall — and tripled the Lifetime Pass to $749.99. Running both on a Proxmox homelab, here's a first-hand decision table on cost, transcoding, privacy, and which media server actually fits your setup.

Continue Reading