// technology

How VPN Bypasses Blocks: DPI, VLESS and Reality in Plain Words

proxyvpn Blog · ~6 min read

When a provider blocks a site or service, it rarely blocks a specific IP address — more often the system analyzes the traffic itself and decides: "this looks like VPN" or "this looks like ordinary HTTPS." This kind of analysis is called DPI — Deep Packet Inspection.

How DPI actually recognizes VPN

DPI can't read the encrypted content of traffic — encryption still holds in that sense. But DPI has other things to go on:

Why VLESS + Reality is a different level

Older protocols (classic OpenVPN, for instance) get cut off in restrictive networks precisely because of their "signature" — their handshake doesn't look like an ordinary website. Reality (a layer on top of VLESS within Xray-core) solves this differently: the connection is disguised as a TLS handshake with a real website.

Technically, it works like this: the client genuinely establishes a TLS session with a real "mask" server (usually a large, legitimate site), and only inside that already-established connection is the actual data transmitted. To a DPI system looking from outside, this is indistinguishable from a request to an ordinary, unremarkable website.

This is exactly why Reality has no certificate of its own that could be told apart from the real one — the handshake is genuine, taking place with a real target server.

Does that mean blocking is impossible in principle?

No — Reality's resilience isn't absolute, and DPI methods keep evolving too. That's exactly why we don't treat the protocol as a "solved problem once and for all": we run a dedicated block-monitoring process that watches for signs that specific configurations are being cut somewhere, and changes server-side parameters before it becomes noticeable to users.

What this means for you in practice

You don't need to understand TLS handshakes or packet structure — that's the protocol's job and ours on the server side. All you need to do is keep your client app up to date, because masking parameters sometimes get updated together with the app.

Want to figure out which app to install on your device?
See apps →