Summary
WireGuard is an encrypted IP tunnel carried over UDP. Each peer has a private key, knows its peers' public keys, and associates those peers with allowed tunnel addresses. You can run it on your own server or use it through a VPN provider. It protects traffic on the path to that server; it does not make the server untrusted or make the connection look like ordinary web browsing.
How it works
A fixed cryptographic protocol. WireGuard uses a Noise IK handshake, specifically Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s: Curve25519 for key agreement, ChaCha20-Poly1305 for authenticated encryption, and BLAKE2s for hashing. Handshakes establish rotating session keys with forward secrecy for data packets. The protocol description and whitepaper describe the construction.
Cryptokey routing. AllowedIPs associates each public key with IP prefixes. On send, the destination address selects the peer; on receive, the source address must be allowed for the authenticated peer. This is both a routing decision and an access check. The server learns a peer's current public endpoint from authenticated packets, allowing peers to move between networks. The project overview walks through both directions.
Configuration stays outside the protocol. WireGuard does not distribute keys or provision accounts. The operator handles key exchange, address allocation, routing, DNS and revocation. The supplied wg and wg-quick tools configure and bring up interfaces; a working handshake alone does not establish that all internet traffic uses the tunnel.
Trust model / threat model
For packets routed through it, WireGuard encrypts the inner IP traffic between the device and its peer. A local network observer can still see the outer endpoints and packet timing and size. Traffic excluded by routing rules gets no protection from that tunnel.
The VPN operator is the other end of the encryption. It knows the peer's public key, assigned tunnel addresses and current public IP endpoint. The administration tool exposes endpoints, latest handshake times and transfer counters. These are live operational metadata; the protocol does not promise that an operator deletes them or refrains from logging.
When that peer forwards your traffic to the internet, it can observe destination addresses and any traffic without separate application encryption. HTTPS remains encrypted between the browser and website. Self-hosting changes who administers this point of trust; it still leaves the hosting provider and the server's network in the path. The Ubuntu gateway guide explains forwarding and the separate DNS decision.
Use under censorship
WireGuard's own limitations page explicitly leaves obfuscation to another layer. Its distinctive packet signatures can be recognised by deep packet inspection (DPI); encryption does not stop a censor identifying and blocking the protocol or the server address.
AmneziaWG is a documented fork of WireGuard-Go that adds obfuscation to address those signatures. It is a separate implementation, not a switch in standard WireGuard. An obfuscation layer or variant can help against protocol detection, but should not be treated as a promise of reachability. Compare Outline, Psiphon and Tor's pluggable transports for other approaches.
Readiness
Battle-tested as a VPN protocol. WireGuard entered mainline Linux in 5.6, confirmed by the maintainer's release announcement. Official clients and installation instructions cover desktop and mobile platforms. This rating concerns encrypted tunnelling, not its ability to survive censorship.
Limits
- No built-in obfuscation. A private server address does not hide a recognisable protocol.
- No anonymity from the endpoint operator. Keys and addresses identify peers to that operator; logging into a website still identifies you to that website.
- Routing and DNS need deliberate configuration. A split tunnel protects only its selected routes. Check IPv6 and DNS separately; the wg-quick manual documents default routes, DNS configuration and an optional firewall-based kill switch.
- Key compromise has different consequences for content and identity. The project documents forward secrecy for data, but not for the identity hidden in recorded handshakes if the responder's private key is later compromised.
For an operator checklist, follow Run a private circumvention server for people you know. Use OONI to understand published measurements before deciding whether to run tests yourself.
Primary sources
- WireGuard overview and cryptokey routing.
- Protocol and cryptography and technical whitepaper.
- Known limitations.
- Linux 5.6 release announcement.
- Installation and quick start.
- wg manual and wg-quick manual.
- AmneziaWG implementation and configuration.
- Ubuntu: using WireGuard as the default gateway.
Continue with DNSCrypt and dnscrypt-proxy and Mullvad VPN.
Page history
- Updated
- 2026-10-25
- Origin
- Written for ungovernable.tech.
- Improve this page
- Suggest an edit — issues and pull requests are welcome.