Перейти к основному содержимому
Fexyn
Fexyn
All posts

VLESS Reality: the protocol guide for VPN users in 2026

17 min read

Privacy & security experts building a better VPN.

If you are looking for a VPN that works in Russia, Iran, China, or Pakistan in 2026, you have probably hit the same wall everyone else does. WireGuard handshakes get blocked. OpenVPN is barely better. Most of the "stealth" or "obfuscated" modes from major brands are pattern-matched too.

The protocol that has held up is VLESS Reality. It is the technical reason a small number of consumer VPNs (including Fexyn) keep working in DPI-heavy networks while the household names get blocked.

This is the long version. What Reality actually is, why it works, where it does not, and where it sits relative to the other censorship-circumvention protocols you may have heard about.

What is VLESS Reality

VLESS is a transport protocol from the XRay-core project, originally built by developers in China who needed something the Great Firewall could not detect.

Reality is a feature on top of VLESS, released in Xray-core v1.8.0 in early 2023. Earlier obfuscation tricks tried to make VPN traffic look like HTTPS. Reality does not approximate. It performs an actual TLS 1.3 handshake to an actual public website, and forwards that site's actual certificate to the client.

Three things are real:

  • The TLS handshake is a real TLS 1.3 handshake, byte-identical to what your browser would send.
  • The certificate the server returns is a real certificate, signed by a real CA, for a real domain like www.microsoft.com.
  • The handshake target is a real, widely used public website.

There is nothing fake to detect. The deception is structural: hidden inside the handshake, a small amount of pre-shared cryptographic material identifies authenticated clients. Everything an observer can see is genuine HTTPS to a host they cannot afford to block.

Why "looks like HTTPS" was not enough

DPI does not need to decrypt your traffic to identify the protocol carrying it. It just needs to recognise the shape of the traffic on the wire.

WireGuard's handshake initiation is always exactly 148 bytes, with a 1-byte type field, three reserved zero bytes, a 4-byte sender index, and a 32-byte ephemeral public key. The structure never varies. A system like Russia's TSPU can match it on the first packet.

OpenVPN has timing patterns and a recognisable control-channel framing. The Great Firewall has been blocking it reliably for years.

Earlier obfuscation tools tried to dodge this:

  • obfs4 wrapped traffic in a layer designed to look like random noise. Then DPI started flagging high-entropy streams that did not match any known protocol. Random noise is conspicuous when everything around it has structure.
  • Shadowsocks has the same entropy problem. AEAD variants helped, but the absence of a TLS handshake remained detectable. Chinese DPI flags Shadowsocks streams when they show high-entropy payloads from packet one, with no preceding handshake.
  • Domain fronting sent traffic to one domain through a CDN that routed it to another. It depended on CDNs tolerating the practice. Google and Amazon shut it down in 2018, and others followed.
  • Trojan went further by performing a real TLS handshake and serving a real-looking website to unauthenticated probers. The break: Trojan uses a self-issued certificate, and Certificate Transparency logs make those certificates trivially distinguishable from the real Microsoft or Cloudflare certs they were trying to imitate.

The pattern across all of them: they tried to imitate normal traffic without actually being normal traffic. Given enough analysis, the imitation breaks.

How Reality actually works

Step by step, what happens when your client connects:

1. ClientHello. The Fexyn client opens a TCP connection to the Fexyn server and sends a TLS 1.3 ClientHello. The SNI field carries the real hostname of a real public site. These steps use www.microsoft.com as an example. The ClientHello is generated by uTLS to mimic a current Chrome, Firefox, or Safari fingerprint exactly. Any DPI looking at the ClientHello sees a normal browser opening a connection to Microsoft.

2. Authentication inside the handshake. The client derives a key from its X25519 key share and the server's public key, and uses it to encrypt a shortId into the ClientHello's session ID field. To an observer, both look like the random values any TLS 1.3 handshake carries. The server decrypts and checks them.

3. The server connects to the real target. Concurrent with step 2, the Fexyn server opens its own TLS connection to the actual www.microsoft.com. It performs a legitimate handshake. Microsoft does not know or care that Fexyn is doing this; it looks like one more reverse proxy.

4. The real certificate is forwarded back. The certificate chain Microsoft returns gets handed back to the client. The client verifies it the same way a browser would. The chain is genuine, the SCTs are in Certificate Transparency, the issuer is a public CA.

5a. Authenticated clients tunnel. If step 2 passed, the server uses the established TLS session as a transport for VLESS frames. VPN data flows inside what looks like an HTTPS session to Microsoft.

5b. Unauthenticated clients are forwarded. If a censor's prober connects without valid credentials, the server transparently proxies them to the real www.microsoft.com. They get real Microsoft content. Real headers. Real TLS records. Real everything. The server is indistinguishable from a legitimate reverse proxy in front of Microsoft.

That is the whole game. A passive observer sees HTTPS to Microsoft. An active prober gets Microsoft. The only thing that distinguishes a real Reality client from any other Microsoft visitor is the encrypted shortId in the handshake, which the censor cannot read.

Active probing resistance

Censors do not just analyse traffic passively. They probe.

When the Great Firewall sees a connection that might be a proxy, it can send its own connection to the same server soon after. If the server's response differs from a legitimate service, the IP gets blocked.

This is how every Trojan deployment eventually gets caught. A prober connects, fails to authenticate, and the server returns a placeholder web page. The placeholder might serve fine for HTML, but the certificate does not match what Certificate Transparency says that domain should have. Or the HTTP response headers are subtly different from the real software the domain claims to run. Small inconsistencies, but enough.

Reality has nothing to compare against because there is no fake. The active prober gets connected to the real Microsoft. Same certificate Certificate Transparency expects. Same headers Microsoft serves. Same content Microsoft hosts. There is no inconsistency to find.

The only remaining attack is IP reputation: noticing that an IP receives connections from residential users and also proxies to Microsoft, and that pattern is unusual. Russia's TSPU is reported to have had some success with this, blocking some VPS IP ranges that match the pattern. We found no independent detection rate for Reality.

The Vision flow and why TLS-in-TLS matters

There is one subtlety worth understanding. When you tunnel VPN traffic inside a TLS connection, every HTTPS site you visit through the tunnel generates its own TLS handshake. That creates TLS records nested inside TLS records: a "TLS-in-TLS" pattern visible through traffic analysis even when the data is encrypted.

The XTLS Vision flow (xtls-rprx-vision) detects when the inner payload is already TLS-protected and passes it through with minimal additional wrapping. The outer Reality TLS handles authentication and framing; the inner application TLS flows without redundant encryption.

Whether that is enough is not settled. A 2024 USENIX Security paper shows encapsulated TLS handshakes can be detected at an ISP, with a method that doesn't depend on the protocol. It doesn't name Vision, and we found no independent test of how Vision fares.

Fexyn ships VLESS Reality with the Vision flow by default. You do not have to think about it.

What it would take to block Reality

A censor has four main options, and each has a cost or a gap.

Block the camouflage site. If a server uses www.microsoft.com as its target, the censor has to block Microsoft. Blocking a major cloud and productivity service has a high economic cost.

Detect the authentication in the handshake. The credentials are encrypted, so an observer can't read them without the server's key.

Identify servers by IP reputation. Public reports suggest this has worked best so far. It targets the infrastructure around Reality rather than Reality itself.

Analyse traffic timing. VPN traffic has different timing from normal browsing. Hours of sustained video through what claims to be a Microsoft session doesn't look like typical HTTPS. This is a real weakness, though it takes sophisticated analysis and risks false positives.

Blocking does happen. A test report in the Xray-core discussions describes waves of Reality being blocked in Iran, mainly on one ISP, and suggests heavy traffic may make a server easier to spot. No public source we found shows a censor detecting Reality's handshake itself.

Why it matters: the DPI arms race

The protocol-level fight in 2026 is happening on three main fronts.

Russia's TSPU has been operational since 2021 and now sits at every licensed Russian ISP. It is reported to block WireGuard, OpenVPN, IKEv2, L2TP and SOCKS5. Human Rights Watch says the authorities had blocked at least 469 VPNs by February 2026. Russia is also experimenting with blocking generic VLESS (without Reality) as of late 2025. Reality with Vision still gets through because the camouflage host is something Roskomnadzor cannot block without breaking essential services.

China's Great Firewall has been the hardest environment for VPNs since at least 2009. Researchers have documented it blocking fully encrypted traffic in real time and blocking QUIC connections to specific domains. Reality's camouflage is built to withstand that, because the camouflage flow looks like normal HTTPS to a host the GFW cannot block.

Iran's filtering tightens during periods of unrest, and WireGuard and OpenVPN are widely reported as blocked there. Reality has also seen waves of blocking, as the report above describes.

Turkey's BTK-mandated DPI, Pakistan's PTA crackdown (December 2025), and Egypt's TE Data filtering all run lighter versions of the same playbook. The protocol-level filtering keeps escalating; Reality keeps adapting because there is no fake handshake to fingerprint.

VLESS Reality vs other protocols

Protocol DPI resistance Speed Maturity When to use
WireGuard None: fingerprinted by 148-byte initiation Fastest Production Open networks. Anywhere without active VPN filtering.
OpenVPN Low: recognisable handshake and timing Slower than WireGuard Mature Compatibility fallback. Lightly-filtered networks.
Shadowsocks (AEAD) Moderate: entropy analysis catches it in China Fast Mature Older Chinese networks before 2024 escalation.
V2Ray VMess Low-moderate Moderate Aging Legacy XRay deployments.
Trojan-GFW Moderate: caught by certificate-transparency mismatches Fast Mature Improvement over Shadowsocks; still detectable by active probing.
Hysteria 2 Moderate, QUIC fingerprints Very fast on lossy networks Recent Mobile networks with high packet loss; some censorship-light environments.
NaiveProxy High: uses Chrome's own networking stack Moderate Recent When you need browser-grade indistinguishability for HTTP/2.
VLESS Reality + Vision Highest: real TLS handshake, real certificate, real target Moderate (TCP handshake overhead) Production Russia, China, Iran, UAE, Saudi Arabia, Pakistan, Turkey. Anywhere with active DPI.

The honest summary: in any country that is not actively trying to block VPN traffic, WireGuard wins on speed. As soon as the network starts filtering protocols, the answer is whichever Reality variant your provider ships. Hysteria has speed advantages on lossy mobile networks but its QUIC fingerprint is still a detection signal. NaiveProxy is technically strong but has a smaller deployed footprint, which means fewer providers ship it and fewer users to blend in with.

We compared the major censorship-circumvention protocols in detail if you want to go deeper than this table.

Why most major VPNs do not ship Reality

This was the question we had before we started Fexyn, and it has a few answers.

Reality requires XRay-core. XRay is a Go codebase originally built for self-hosters in China. The major VPN brands all ship their own protocol stacks (NordVPN's NordLynx is custom WireGuard, ExpressVPN's Lightway is a custom protocol, Mullvad and ProtonVPN run modified WireGuard). None of them have rebuilt their server fleets and clients around an open-source codebase from a different ecosystem. Doing it properly is a significant engineering project.

Reality requires real camouflage targets. You cannot point Reality at a domain you control. A censor would notice that thousands of users connect to a domain hosted on the same VPS as your VPN server. You need to use major public sites (Microsoft, Cloudflare, Apple) and route through them transparently. The major VPN brands have not built this infrastructure.

Reality is harder to support. When a Reality connection fails, the failure modes branch: it could be the camouflage domain, the shortId, the X25519 keys, the uTLS fingerprint, the server's connection to the camouflage target, or half a dozen other things. WireGuard has few failure modes and they are quick to diagnose. Reality requires more depth in the support team.

Most VPNs have not had to. If your customer base is in the US, UK, and Germany, WireGuard works fine. The Reality moat exists for users in countries where WireGuard does not work. That is a smaller commercial market, which is why the brands optimised for the larger market do not invest in it.

We made the opposite choice. Fexyn was built primarily for users in censorship-heavy markets: Russia, Turkey, the Gulf, Pakistan, Iran. In those markets, Reality is not a feature. It is the only thing that works.

How Fexyn ships Reality

Fexyn Stealth is our productisation of VLESS Reality with the Vision flow. The technical details:

  • Server-side: XRay-core on every Fexyn server.
  • Camouflage target: a high-traffic public site. The client receives a complete configuration from our API at connect time, so the target can change without a client release.
  • uTLS fingerprint: matches current Chrome, Firefox, and Safari fingerprints; we update these as browsers update so the fingerprint never goes stale.
  • Authentication: an X25519 key and a shortId, delivered in the configuration.
  • Vision flow: enabled by default, eliminates the TLS-in-TLS pattern.

Most users do not need to touch any of this. Fexyn's protocol rotation engine tries Fexyn Bolt (WireGuard) first because it is faster. If Bolt is blocked or throttled by your network, the client switches to Stealth automatically. You do not need to configure anything.

In countries where Bolt is known not to work (Russia, Iran, China), pin Stealth as the default in app settings. We document this on the country pages: Russia, Pakistan, UAE, Saudi Arabia, Turkey.

When Reality is the wrong answer

Reality is not free.

  • Latency. Reality adds time to the connection setup compared to WireGuard, because of the extra TLS handshake to the camouflage target. After that, ongoing traffic is roughly the same as any other TLS session.
  • TCP overhead. Reality runs over TCP. WireGuard runs over UDP. On lossy networks (mobile, congested Wi-Fi), TCP head-of-line blocking causes occasional stalls that UDP would avoid.
  • CPU on the client. Reality's TLS 1.3 handshake is heavier than WireGuard's Noise handshake. On older phones or low-power machines, you will notice the difference at connect time.
  • Setup and debugging, if you self-host. WireGuard needs a key pair and an endpoint. Reality needs a camouflage site, a shortId, an X25519 key pair, a uTLS fingerprint and a transport configuration, and a failure can come from any of them. Fexyn's client gets all of this from our API.
  • Not every camouflage site works. The target has to support TLS 1.3, have a certificate that chains to a trusted CA, and be reachable from the server. Some sites have quirks that cause subtle failures.

If you are connecting from a network with no DPI (your home connection in Berlin, an airport in Amsterdam, an office in Toronto), there is no reason to pay these costs. WireGuard is faster, simpler, and works fine.

The decision is essentially: is anything between you and the open internet trying to block VPNs? If yes, use Stealth. If no, use Bolt. Fexyn's app makes the decision automatically by default.

What we can say about detection rates

We publish no success or detection rates here. We found no independent measurement of these protocols by country, and we have not yet run our own test from inside these countries.

Public reports point the same way: WireGuard and OpenVPN are widely blocked or throttled in heavily filtered networks, while the main reported threats to Reality are IP reputation and blocks on specific VPS ranges. No protocol works everywhere all the time.

Frequently asked questions

Is VLESS Reality the same as VLESS?

No. VLESS is the underlying protocol. Reality is a transport layer that wraps VLESS in a real TLS 1.3 handshake to a real public site. You can run VLESS without Reality (most early deployments did), but plain VLESS is reported blocked in Russia and several other DPI environments. When people say "VLESS" in 2026, they almost always mean VLESS Reality with the Vision flow.

Can the Great Firewall block Reality?

To block Reality completely, China would need to block the camouflage host, Microsoft, Cloudflare, Apple. Doing that would break essential business services for Chinese users. So far, China has not been willing to pay that price. The active blocking against Reality is at the IP-reputation layer, which catches some deployments but not all.

Why forward to a public site instead of using your own domain?

If we used a Fexyn-controlled domain as the camouflage target, every connection would go to a Fexyn IP. A censor would notice the pattern: residential users connecting to fexyn-something.com is a recognisable VPN client. Using a real public site means our connections blend in with ordinary connections to that site.

How is this different from "stealth" or "obfuscated" modes from NordVPN, ExpressVPN, ProtonVPN?

Those modes wrap WireGuard or OpenVPN in TLS-like padding. The wrapper makes the traffic look TLS-shaped but it is not a real TLS handshake: there is no real certificate and no real target site. DPI in Russia, Iran, and several other markets has been pattern-matching that style of obfuscation since 2023. Reality is structurally different: there is no wrapper, the handshake is real.

Do I need to configure Reality myself?

Not on Fexyn. Sign up, install the app, connect. The app picks the right protocol for your network. In censorship-heavy markets, pin Stealth in settings to skip the auto-detection.

What about Hysteria, NaiveProxy, TUIC?

They are all interesting protocols. Hysteria 2 is excellent on lossy mobile networks, and Hysteria vs VLESS Reality compares the two in detail. NaiveProxy uses real Chrome network code so it has browser-grade indistinguishability. TUIC is a QUIC-based design with promising properties. None of them have Reality's combination of (a) real TLS to real public sites, (b) Vision flow eliminating TLS-in-TLS detection, and (c) deployed footprint large enough to blend into. We monitor them; right now Reality is the strongest available choice for the markets we serve. Detailed protocol comparison here.

Will Russia block Reality next?

Russia is investing in this. Mediazona, citing Kommersant, reports plans to expand TSPU capacity at a cost of about $186 million from the federal budget. But the architectural problem is real: Reality cannot be blocked without blocking the camouflage host, and the camouflage hosts are sites Russia cannot afford to break. The pragmatic answer is that Reality will keep working until Russia is willing to break Microsoft and Cloudflare for ordinary users, which it has not been willing to do so far. We track the situation and will update this page as it evolves.


If you are in a country where standard VPN protocols stop working, try Fexyn free for 7 days. No card required. Stealth (VLESS Reality with Vision flow) is included on every plan. Prices vary by region. Crypto-only billing for Russia; card or crypto everywhere else.

Read further: VLESS Reality on Fexyn, Why VLESS Reality beats WireGuard in censored countries, Deep packet inspection explained, the censorship map.

Get started

Ready to try VLESS Reality? Set up Fexyn VPN on your device with our setup guides for Windows, Android, macOS, iPhone, Linux, and routers.

VLESS Reality: the protocol guide for VPN users in 2026 | Fexyn VPN