WireGuard is an open-source VPN protocol that encrypts traffic with a small, fixed set of modern algorithms and runs only over UDP.
Explanation
WireGuard was designed by Jason Donenfeld and merged into the Linux kernel in version 5.6 in 2020; it now also runs on Windows, macOS, iOS and Android, and most commercial VPN apps offer it. Its design goal is simplicity. Instead of letting each side negotiate ciphers, it uses one fixed suite (Curve25519 for key exchange, ChaCha20-Poly1305 for encryption, BLAKE2s for hashing). Peers are identified by public keys, much like SSH keys, and the whitepaper describes an implementation of roughly 4,000 lines - small enough to audit. In practice this makes connections quick to set up and fast on phones. The project is explicit about its limits. Its own Known Limitations page says WireGuard 'does not focus on obfuscation' and leaves that to other layers, so deep packet inspection can recognise it. It also refuses to run over TCP, which means networks that block or throttle UDP stop it entirely. Where those filters exist, people wrap WireGuard in another transport or pick a TCP-capable option. None of this applies to a web proxy, which uses ordinary HTTPS from the browser.
In practice
WireGuard was merged into the Linux kernel in version 5.6 in March 2020. Its whitepaper describes a codebase of around 4,000 lines — small enough to audit — built on fixed modern cryptography such as Curve25519 and ChaCha20-Poly1305. It runs only over UDP, by default on port 51820, which makes it fast but also easy to spot and block on networks that filter or throttle UDP.
Sources: WireGuard whitepaper · WireGuard - Known limitations
Questions about WireGuard
Related terms