Back

For anyone deciding between the three, and for anyone whose usual protocol just stopped working on a hotel, office or campus network.

WireGuard vs OpenVPN vs VLESS

Which protocol to use, when to switch, and why the right answer changes with the network you are standing on rather than with the provider you bought from.

Crypto
  • WireGuard: fastest, lightest, easiest to block, UDP only
  • OpenVPN: slower and heavier, but runs on TCP 443 and crosses networks WireGuard cannot
  • VLESS: built to look like ordinary HTTPS, needs a third-party client, rare on routers
  • Default WireGuard, OpenVPN TCP 443 where UDP is throttled, VLESS when both are blocked
  • A tunnel active with zero bytes received means blocked UDP, not a bad server
  • One account carries all three, so switching costs nothing and needs no second purchase
no accountconfigs on your order page

The short version, so you can leave now if that is all you needed: use WireGuard by default. Use OpenVPN over TCP on port 443 when a network blocks or throttles UDP, which is what hotel, office and campus networks usually do. Use VLESS when both of those are blocked, because it is the one built to look like ordinary web traffic.

The longer version matters because the three are not competing on quality. They were designed for different problems. WireGuard optimises for speed and simplicity, OpenVPN for compatibility with awkward networks, and VLESS for surviving inspection. A provider that ships only one of them has decided in advance which problem you are allowed to have.

Everything below applies to any provider, not only to us. Our own position is at the end: we hand out configs for all three on one account, and the reasoning for that is a section rather than a slogan.

What the three actually are

WireGuard is a modern tunnel that lives in the kernel on most systems. It is about four thousand lines of code, uses one fixed set of modern cryptography with no negotiation, and runs only over UDP. There is no login, no session setup and no cipher choice: your client sends an encrypted packet and either the peer answers or it does not.

OpenVPN is older, much larger, and endlessly configurable. It can run over UDP or TCP, on any port, with a wide range of ciphers, and it can carry a full TLS handshake at the start. That configurability is exactly why it survives networks that WireGuard cannot cross, and also why it is slower and heavier.

VLESS is not a VPN tunnel in the same sense at all. It is a lightweight proxy transport from the Xray family that carries streams rather than routing packets, has no encryption of its own, and relies on TLS underneath. It exists to be indistinguishable from normal HTTPS traffic. If you want the protocol explained properly, /what-is-vless/ does that without selling anything.

Speed, latency and battery

WireGuard wins on all three and it is not close. Because it is small, sits in the kernel and does not negotiate anything, it adds very little latency and reaches speeds close to your unencrypted line on decent hardware. On a phone it is also the kindest to the battery, since it stays silent when there is nothing to send and does not maintain a chatty session.

OpenVPN over UDP is respectably fast but noticeably heavier: more per-packet processing, more context switching because it runs in userspace, and a longer connect time because of the TLS handshake at the start. OpenVPN over TCP is the slow option, and the reason is structural. Running TCP inside TCP means two layers of retransmission and congestion control fighting each other, which is fine for browsing and painful for large transfers on a lossy link.

VLESS sits in between and depends heavily on the path. The protocol overhead is tiny, but a CDN-fronted connection is not a direct one: your traffic reaches a CDN edge and is forwarded onward, and that extra hop shows up as latency. In exchange, a CDN edge is often better connected than a direct route, so the result can be faster than expected in regions with poor direct routing.

One honest note on speed claims in general: on a good network all three are usually fast enough that the difference does not decide anything. The difference decides things when the network is bad, which is where failure modes matter more than benchmarks.

Censorship resistance and how each one is spotted

WireGuard is the easiest of the three to detect and block. Its handshake has a fixed, well-documented shape in the first bytes, and it only runs over UDP, so a network can block it by pattern or simply by dropping UDP to unknown destinations. Blocking UDP costs a network almost nothing, which is why so many of them do it. WireGuard was designed for speed and correctness, not for hiding, and its authors have never claimed otherwise.

OpenVPN sits in the middle. Its own handshake is also recognisable, and several national filtering systems have demonstrated detecting it directly. But it can run on TCP port 443, which means it leaves your device on the same port as every HTTPS connection, and that alone gets it through the large category of networks that filter by port rather than by content. Against a system that inspects the payload, it is a weaker disguise than it looks.

VLESS over TLS is the strongest of the three, and it is built for exactly this. The traffic is a TLS session, the handshake fingerprint can be made to match a common browser, and with CDN fronting the destination address is one that also serves thousands of ordinary websites. REALITY goes further by answering an active probe with the genuine handshake of a real, unrelated site.

None of this is a promise. A network that permits only a whitelist of destinations stops all three, and detection methods change. The useful framing is not which protocol wins but which costs the network operator more to block: dropping UDP is free, blocking TCP 443 breaks the web for everyone, and blocking a CDN address breaks a large slice of it.

Client support and how each fits the platform

WireGuard has the best support of the three and the least friction. There is an official client on every desktop and mobile platform, it is in the Linux kernel, and it is built into most router firmwares worth using, including OpenWrt, OPNsense, pfSense and MikroTik. A config imports by QR on a phone or as a file everywhere else.

OpenVPN also runs everywhere, but with more moving parts: the client is bigger, the config file has far more options that can be wrong, and connecting takes several seconds instead of being instant. It is very well supported on routers and in corporate environments, which is often exactly where you need it.

VLESS needs a third-party client, and there is no official one because it is a transport rather than a product. In practice you use v2rayNG or Hiddify on Android, Shadowrocket or Streisand on iOS, and v2rayN, Nekoray or Hiddify on desktop. The iOS options are paid apps and some are region-restricted, which is worth knowing before you depend on them. Router support is rare.

The platform detail that catches people out is the kill switch. It is a client or operating system feature, not a protocol feature, and it exists in different strengths on each platform. That is covered in detail on /wireguard-vpn-config/, because a WireGuard config is where the question usually comes up.

How each one fails, and what that looks like

Knowing the failure signature is more useful than knowing the benchmark, because it tells you what to do next. WireGuard fails silently: the tunnel shows as active, bytes sent climb, bytes received stay at zero, and the last handshake never updates. There is no error message. That specific picture almost always means UDP is blocked, and the answer is to change protocol rather than to change server.

OpenVPN fails loudly. It writes a log, and the log says whether it could not reach the server, could not verify the certificate, or was reset by the peer mid-handshake. A connection that establishes and then drops repeatedly usually means the network is interfering with it deliberately rather than that it is unsupported.

VLESS fails at the TLS layer. You get a connection refused or a handshake failure, or, more confusingly, a session that establishes and then stalls with no data. The usual causes are a mismatched transport setting, a wrong SNI or a CDN route that has been blocked, and the fix is usually to try one of the other endpoints rather than to change anything in the config.

A failure mode shared by all three, and worth naming because it wastes a lot of time: a working tunnel with broken name resolution. Everything says connected, IP addresses respond, and no hostname loads. That is DNS, not the protocol, and it is fixed in the client configuration.

The decision, in order

Default to WireGuard. On a home connection, a mobile network, a normal cafe or an ordinary office, it is faster, lighter and simpler, and there is no reason to choose anything else. If you only ever use it in those places, you can stop reading here.

Switch to OpenVPN over TCP 443 when the network throttles or blocks UDP. Hotel Wi-Fi, conference venues, corporate guest networks and university networks are the usual suspects. The tell is a WireGuard tunnel that reports active with zero bytes received. Accept the speed penalty, because a slow connection is infinitely faster than none.

Move to VLESS when both are blocked, which means the network is inspecting traffic rather than just filtering ports. Try the nearest endpoint first and then the others, since CDN routing differs by region and the fastest one for you is not the fastest one for everybody.

Two situations invert the order. If you specifically need an exit country where we run no VLESS endpoint, WireGuard or OpenVPN is your only choice regardless of everything above. And if you are configuring a router, use WireGuard or OpenVPN, because router firmware support for VLESS is rare.

Why we hand out configs for all three

The standard model in this industry is one app that picks a protocol for you. It makes onboarding easy and it makes exactly one thing impossible: doing something the app did not anticipate. When the app cannot connect, there is no next step, and its automatic protocol switching only chooses between whatever it shipped with.

We give you the configuration files instead. WireGuard as a .conf or QR, OpenVPN as an .ovpn in UDP and TCP variants, VLESS as a vless:// link and QR, all on one account with five simultaneous connections and no per-protocol pricing. The whole failure sequence described above works because you already hold all three before you need the second one.

It also removes a piece of software you would otherwise have to trust. A VPN app runs with network privileges on your device; a config file is text you can read. You use the official WireGuard client, or the Xray client you already chose, and the only thing you are trusting us with is the network itself.

Where that leaves the honesty line: no logs, meaning source IP addresses and connection timestamps are not stored, and servers running from RAM so a reboot wipes them. That is what we control. A VPN moves what your local network and access provider can see onto the VPN network, which is a transfer of trust and not anonymity, and no protocol on this page changes that. Plans run 7 to 365 days on /vpn/, paid in crypto, with nothing renewing automatically.

Pick a protocol in four decisions

  1. 1

    Start with WireGuard

    Import a nearby server as a .conf or QR and connect. On a normal network this is the end of the process: it is the fastest and lightest of the three.

  2. 2

    Read the failure before changing anything

    If the tunnel is active but bytes received stay at zero and the handshake never updates, the network is blocking UDP. Changing server will not help; changing protocol will.

  3. 3

    Try OpenVPN over TCP on port 443

    Import the TCP variant of the .ovpn for the same server. It leaves on the same port as HTTPS, so networks that only filter by port let it through. Expect it to be slower.

  4. 4

    Move to VLESS if that is blocked too

    A network stopping both is inspecting content, not just ports. Import the vless:// link for the nearest of the four locations, then try the others, since CDN routing varies by region.

  5. 5

    Check DNS before blaming the protocol

    If the tunnel connects but no site loads while raw IP addresses respond, the problem is name resolution and not the protocol. Confirm the DNS line in the config and that no private DNS setting is overriding it.

  6. 6

    Import everything while you can

    Do all of the above on a working network, not on the one that is fighting you. Downloading a config requires a connection, which is the thing you will not have when you need it most.

Questions & answers

Is WireGuard better than OpenVPN?

For speed, battery life and simplicity, clearly yes: it is a fraction of the code, sits in the kernel and adds very little latency. For getting through a restrictive network, no, because it runs only over UDP and is easy to identify. The right answer depends on the network you are on, not on which is technically newer.

Which VPN protocol is hardest to block?

VLESS over TLS, especially with CDN fronting or a REALITY handshake, because it looks like an ordinary HTTPS session to an address that also serves normal websites. OpenVPN on TCP 443 is second, since it uses the same port as web traffic. WireGuard is the easiest to block because it is UDP only with a recognisable handshake.

Why is OpenVPN over TCP so slow?

Because it runs TCP inside TCP. Both layers have their own retransmission and congestion control, and when the underlying connection loses packets the two layers work against each other, an effect known as TCP meltdown. It is fine for browsing and messaging, and poor for large transfers on a lossy link.

Does VLESS replace a VPN?

Not exactly. VLESS proxies streams rather than routing all packets from a network interface, so what goes through it depends on the client you use. Practically it does the same job for browsing and apps, but it is a proxy transport by design, and a VPN protocol like WireGuard is what you want on a router or for full-device routing.

Which protocol should I use on hotel Wi-Fi?

Try WireGuard first, but expect it to fail: hotel networks commonly block or throttle UDP. OpenVPN over TCP on port 443 is the reliable choice there because it leaves on the same port as normal web traffic. If the hotel network inspects content as well, VLESS is the next step.

Do I need a different subscription for each protocol?

Not with us. One account carries WireGuard, OpenVPN and VLESS at the same price, across the same servers, with five simultaneous connections, and you switch whenever the network changes. Providers that sell protocols separately are charging you for a configuration file.

Is there a protocol that is best for streaming or gaming?

WireGuard, in both cases, because it adds the least latency and has the least per-packet overhead. If it is blocked, OpenVPN over UDP is the next best for latency, and OpenVPN over TCP is the worst choice for anything real-time. Server distance still matters more than protocol choice for latency.

Can I use two protocols at the same time?

On one device, no, and there is no reason to: the second tunnel would just route inside the first. What you should do is keep configurations for all three imported at once so that switching is instant. Different devices on the same account can of course use different protocols.

More topics

Related guides

WireGuard vs OpenVPN vs VLESS

Which protocol to use, when to switch, and why the right answer changes with the network you are standing on rather than with the provider you bought from.

See VPN plans