Protocol comparison

WireGuard vs IKEv2

IKEv2 vs WireGuard: the short answer

Both are fast, both run their data path in the kernel, and both keep the tunnel up when you move between Wi-Fi and mobile data. WireGuard is faster in the published measurements, has under 4,000 lines of code and one fixed set of modern ciphers. IKEv2 is older, far larger, and built into Windows, macOS, iOS, iPadOS and Android, so it works without an app. Use WireGuard when your VPN offers it; use IKEv2 when you want the operating system's own client. GhostShield VPN runs WireGuard in every app.

Updated October 2026

Head-to-head

FeatureWireGuardIKEv2 (with IPsec)
First released2016; in the Linux kernel since 5.6 (March 2020)2005 (RFC 4306); current standard RFC 7296, 2014
CodeUnder 4,000 lines for Linux, excluding cryptoIKE plus the IPsec stack: many times larger
CiphersOne fixed set: ChaCha20-Poly1305, Curve25519, BLAKE2sNegotiated; AES-GCM typical
Built into the OSLinux, FreeBSD and OpenBSD kernels; an app elsewhereWindows, macOS, iOS, iPadOS, Android 11 and later
Changing networksBuilt in: peers are identified by key, not addressMOBIKE (RFC 4555)
TransportUDP, any portUDP ports 500 and 4500
ObfuscationNone by designNone
Formal verificationYes: Tamarin and CryptoVerif proofs, verified Curve25519 codeLong standards review; no equivalent published proof of a complete implementation that we could cite
Throughput (whitepaper test)1,011 Mbps825 Mbps (ChaCha20-Poly1305), 881 Mbps (AES-256-GCM)
Ping (same test)0.403 ms0.501 ms and 0.508 ms

Speed rows from the benchmark in the WireGuard whitepaper: iperf3 between two laptops on gigabit Ethernet, averaged over 30 minutes. IKEv2 sets up IPsec, so IPsec's numbers are its numbers. WireGuard's site says the test is old and both have gotten faster since.

Speed: close, with WireGuard ahead

Unlike OpenVPN, both of these run their data path inside the kernel, so the big user-space penalty does not apply. The gap that remains comes from WireGuard's design: a single round-trip handshake, no cipher negotiation, and a stream cipher, ChaCha20, that is fast in plain software. On a laptop with AES hardware acceleration the two are close; on a phone or a router without it, ChaCha20 pulls ahead, and WireGuard can also spread its work over several cores.

Convenience: IKEv2 needs no app

IKEv2 is part of the VPN client in Windows, macOS, iOS, iPadOS and Android 11 and later. You can type in a server, a certificate and a username, and connect, with nothing to install. WireGuard is in the Linux and BSD kernels and otherwise needs an app, either the official WireGuard app or your VPN provider's. In practice the app is what you use with a VPN service anyway, and it is the app that picks the protocol.

Security: simple versus flexible

WireGuard's whole Linux implementation is under 4,000 lines of code, which is why it could be read in full and proven with formal tools. It offers no cipher choice: if a primitive were ever broken, the protocol version changes and every peer updates, with no fallback to a weak setting. IKEv2 negotiates its ciphers, which lets administrators choose and lets them choose badly; a VPN provider makes that choice for you, and the good ones pick AES-GCM. Both are secure when deployed well. Neither hides that you are using a VPN, and neither runs over TCP, so a network that blocks UDP stops both.

Privacy: the same question for both

Any tunnel protocol has to know where to send your packets, so the server holds your current address while the session is up: WireGuard pairs it with your public key in memory, IPsec with the security association. What matters is what the provider does with it. GhostShield VPN runs WireGuard as a no-logs VPN: nothing from the tunnel, your real IP address included, is stored on our servers. That is the question to ask any provider, whichever protocol it uses.

Which should you use?

  • WireGuard for speed, battery life on phones, and a codebase small enough to audit. This covers most people most of the time.
  • IKEv2 when you cannot install apps, or you run your own server and want the client that ships with the operating system.
  • OpenVPN over TCP 443 when the network blocks UDP entirely; see OpenVPN vs IKEv2 and WireGuard vs OpenVPN.

Try WireGuard with GhostShield VPN

GhostShield VPN runs WireGuard with ChaCha20-Poly1305 on Windows, Mac, iPhone, iPad, Android and Google TV, with a 7-day free trial of every feature. See how the free trial works.

Questions people ask

Should I use IKEv2 or WireGuard?

WireGuard, when your VPN offers it: it is faster, its code is small enough to have been audited in full, and it keeps the connection when you move between Wi-Fi and mobile data. Pick IKEv2 when you want the VPN client built into your operating system with no app to install, or when your VPN service does not offer WireGuard.

Is IKEv2 faster than WireGuard?

Not in the published measurements. In the WireGuard whitepaper benchmark on a gigabit link, WireGuard reached 1,011 Mbps with a 0.403 ms ping, and IPsec, the data path IKEv2 sets up, reached 825 Mbps with ChaCha20-Poly1305 and 881 Mbps with AES-256-GCM, with pings around 0.5 ms. The test is old, and WireGuard’s site notes that both have gotten faster since, with WireGuard still ahead in some cases thanks to multi-threading.

Is WireGuard a good VPN?

WireGuard is a protocol, not a VPN service, and it is a very good one: in the Linux kernel since version 5.6 (March 2020), under 4,000 lines of code, one fixed set of modern ciphers, and formally verified. Whether a VPN built on it is good depends on the provider: how it handles the IP addresses WireGuard keeps in memory, whether it keeps logs, and how its servers are run.

What are the disadvantages of WireGuard?

It only runs over UDP, so a network that blocks UDP stops it. It has no obfuscation, so deep packet inspection can recognise it. The server keeps each connected user’s latest address in memory while the session is active, which the provider has to handle with care. And it is not built into Windows, macOS, iOS or Android the way IKEv2 is, so it always needs an app.

What is the difference between WireGuard and WireGuard TCP?

WireGuard itself uses only UDP. “WireGuard over TCP” means a provider wraps the WireGuard packets in a TCP connection with an extra layer, which the WireGuard project describes as the job of a separate obfuscation layer. It helps on networks that block UDP but costs some speed.

Does IKEv2 roam between networks like WireGuard?

Yes. IKEv2 does it through MOBIKE (RFC 4555), an extension that lets the addresses of the session change while it stays up. WireGuard does it by identifying each peer by its public key rather than its address, so a packet arriving from a new address is simply accepted. The effect for you is the same: the tunnel survives the switch from Wi-Fi to mobile data.

Which protocol does GhostShield VPN use?

WireGuard with ChaCha20-Poly1305, in every app, on Windows, Mac, iPhone, iPad, Android and Google TV.

Sources

  1. WireGuard whitepaper by Jason A. Donenfeld: code size and the benchmark against IPsec and OpenVPN
  2. WireGuard performance page: the note that the benchmarks are old
  3. WireGuard known limitations: UDP only, no obfuscation
  4. WireGuard formal verification: Tamarin, CryptoVerif, HACL* and Fiat-Crypto
  5. RFC 7296, Internet Key Exchange Protocol Version 2 (IKEv2)
  6. RFC 4555, IKEv2 Mobility and Multihoming Protocol (MOBIKE)
  7. Microsoft Learn: VPN connection types in Windows
  8. Apple Platform Deployment: VPN overview
  9. Android developers: Ikev2VpnProfile, added in API level 30
  10. Wikipedia: WireGuard, merged into Linux 5.6 in March 2020

Related