WireGuard, the Lean VPN Protocol: Cryptography, Speed and the IP Privacy Catch
Of 543 consumer VPNs in our data, 103 say they do not offer it. Below: the services that rank highest for it.
WireGuard is an open-source VPN protocol: free software that wraps traffic in an encrypted tunnel between two computers. It is not a subscription service. Its code is small enough for one person to audit, its crypto is a single fixed modern suite, and it reconnects across network changes without asking you to log in again. Two caveats before using it: the server keeps some address data by default, and censors can fingerprint its traffic.
How the protocol is built
The Linux kernel implementation fits into roughly 4,000 lines. Older VPN stacks are far too large for that kind of audit. The design came from Jason A. Donenfeld, and the whitepaper names the exact construction: Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s. In plain terms, the handshake uses the Noise framework, keys are agreed over Curve25519, data is sealed with ChaCha20 and authenticated with Poly1305, and BLAKE2s handles hashing.
There is no cipher menu. One fixed suite, no negotiation, no legacy fallback an attacker could force you into. Should a primitive ever break, the fix arrives as a new protocol version. The handshake itself completes in one round trip, and session keys rotate with a fresh handshake about every two minutes.
Logins are gone too. Each side holds a private key and knows the peer's public key, which is bound to the tunnel addresses it may use (cryptokey routing). One wrong character in the key and the connection is dead: a peer without a valid key receives silence, so a port scan turns up empty. Traffic always travels over UDP on port 51820 by default, though providers often move it. There is no TCP mode, because TCP inside TCP collapses throughput.
In the Linux kernel since 5.6
WireGuard was merged into Linux 5.6 in March 2020. Kernel-level drivers also exist for Windows, FreeBSD, OpenBSD and Android kernels, with apps for macOS and iOS. Living in the kernel matters: packets avoid the user-space detours that weigh down older tunnels.
Speed and roaming
Speed follows directly from the design. Little per-packet overhead, a handshake done in a single exchange, and ChaCha20, which runs quickly in software on phones and routers without AES hardware acceleration.
Roaming is built in rather than bolted on. The server learns the client's address from the last authenticated packet, so switching from home Wi-Fi to mobile data keeps the tunnel alive without a new login. When the device's IP address changes, the next valid packet updates the endpoint, and the client never reconnects or re-enters anything.
The privacy catch, and how providers fix it
Out of the box, each peer has a fixed internal tunnel IP written in its config, and the server keeps that peer's most recent public IP address and port in memory while the interface runs. On a shared VPN server, that pairing can tie your sessions together.
Providers patch this in a few ways. Double NAT replaces the fixed internal address with a random per-session one; NordVPN's NordLynx is built on this approach. Key rotation regenerates keys so one key cannot link many sessions, and some apps clear the stored peer addresses once a session ends. Before trusting a no-logs promise, ask which of these the service actually does.
What WireGuard leaves out
No obfuscation. Fixed message types and fixed handshake sizes (148 bytes for initiation, 92 for the response) give DPI an easy fingerprint, and the project deliberately leaves disguise to a layer on top. Networks that pass only TCP break the UDP-only transport entirely.
If your network filters VPNs, options include AmneziaWG, a fork that alters the packet shape with junk packets and padding while keeping the cryptography, wrapping the UDP stream in another tunnel, or a provider's stealth protocol. One more gap: the protocol is not post-quantum by default, though an optional pre-shared key slot can add a quantum-resistant layer.
WireGuard, OpenVPN and IKEv2 side by side
| WireGuard | OpenVPN | IKEv2/IPsec | |
|---|---|---|---|
| Code base | about 4,000 lines | large, plus OpenSSL | part of the OS IPsec stack |
| Ciphers | one fixed set | negotiated | negotiated |
| Transport | UDP only | UDP or TCP | UDP |
| Login | key pairs | certificates or password | certificates, EAP or shared key |
| Network change | tunnel stays up | reconnects | MOBIKE moves the tunnel |
| Seen by DPI | yes | yes | yes |
How many VPN services offer WireGuard
Of the 377 services in the VPNRadarLab main ranking, 169 say they offer WireGuard, 2 partially, 84 say they do not, and 122 publish nothing at all; the ranking shows which services do.
FAQ
Is WireGuard a VPN service?
No. It is a protocol. A provider or your own server supplies the exit point.
Does WireGuard cost money?
The software is free and open-source. A server to connect to may not be.
Does it hide my IP?
Only through the server you connect to; the protocol itself encrypts traffic.
Why do some networks block it?
Its handshake looks identical every time, and DPI filters key on that fingerprint.
Short summary
WireGuard is a lean, key-based tunnel with fixed modern cryptography, kernel-level speed and roaming that survives network switches. Ask how your provider hides the peer address it stores, and keep a disguised fallback such as AmneziaWG where VPN traffic gets filtered.
Top services: WireGuard VPNs
- CitadelVPN8.55
- Xeovo VPN5.05
- Proton VPN5.02
- X-VPN4.83
- StelsVPN4.79