What Are VLESS, REALITY, and XTLS Vision?

What Are VLESS, REALITY, and XTLS Vision?

Ryan Foster
September 9, 2026· Updated September 11, 2026· 11 min read

VLESS, REALITY, and XTLS Vision are three different components that can appear in one Xray connection: VLESS defines a lightweight proxy protocol and its client identity fields; REALITY belongs to the transport-security layer; and XTLS Vision is a VLESS flow mode that changes how suitable traffic is handled. Calling the whole combination “VLESS Reality” is convenient, but it can hide which layer a setting or failure actually belongs to.[1][2]

The complete VPN guide explains tunnels, routes, and observers more broadly. This article stays with the component model: it does not claim that the stack is a single standardized VPN protocol, and it does not provide instructions for bypassing a network policy.

Key Takeaways

  • VLESS, REALITY, and Vision are complementary components, not three competing VPN protocols.
  • VLESS carries the proxy request and client identity; it does not choose every transport or security property.
  • REALITY supplies a particular transport-security handshake and server-authentication design.
  • xtls-rprx-vision is selected through the VLESS flow field and must agree across compatible endpoints.
  • Routing, DNS, transport method, and system-wide tunnel behavior are separate decisions.

Why are the three names often grouped together?

An Xray configuration is assembled from several layers. A user may select a VLESS inbound or outbound, enable REALITY in the stream security settings, and set the VLESS flow to xtls-rprx-vision. A subscription or support message may shorten that bundle to “VLESS REALITY” or “VLESS Reality Vision.” The shorthand identifies a recognizable combination, not a new component that replaces the three underlying parts.

The distinction matters because the same VLESS protocol can be carried with different stream settings, and REALITY is not limited conceptually to the job of identifying a VLESS user. Likewise, selecting Vision does not decide the server address, underlying transport, DNS resolver, routing rules, or which applications enter the connection.

Project X documentation reflects this separation. Its VLESS page describes client identities and the flow field. Its transport page organizes proxy protocol, transport method, transport security, and low-level socket settings as different configuration concerns. Reading the configuration tree as layers is more reliable than treating a marketing-style label as one indivisible protocol.[1][2]

What does VLESS do?

VLESS is described by Project X as a stateless, lightweight transport protocol. In practical Xray configuration, it identifies permitted clients, carries the destination request, and provides fields that coordinate optional flow behavior. A server-side VLESS inbound commonly has a list of clients with identifiers, while a client-side outbound selects the matching server and identity.[1]

The client identifier is often represented as a UUID. That identifier is sensitive access material even though it is not the same thing as a long-term private key. Publishing it can let another person attempt to use the service or can confuse incident evidence. Redact it from screenshots, logs, and support posts.

VLESS does not by itself define the entire encrypted path. Its configuration sits alongside stream settings that choose a transport method and a transport-security mode. It also does not automatically create an operating-system-wide VPN interface. Whether traffic enters through a local proxy, a TUN interface, a router, or another integration depends on components outside the VLESS message format.

The current documentation also contains optional VLESS encryption settings. That is one more reason to avoid the stale slogan that VLESS is simply “unencrypted” as if no security or encryption choice exists anywhere in the configuration. The accurate statement is narrower: VLESS and the stream-security layer have separate roles, and the effective protection depends on the complete, version-specific configuration.[1]

What does REALITY do?

REALITY is a transport-security mechanism in the Xray/XTLS ecosystem. It participates in the handshake, authenticates the intended service through configured cryptographic material, and produces an outer connection designed around TLS-compatible behavior. The Project X transport documentation places REALITY next to other stream-security choices rather than inside the VLESS client list.[2]

That placement explains several fields users see in configurations. A server has REALITY-specific private material and permitted handshake parameters. A client needs the corresponding public information and values that select the expected server behavior. Server names, short identifiers, and fingerprint-related options belong to this handshake context, not to the VLESS UUID itself.

REALITY does not decide which destination the user ultimately requests through VLESS, which applications are routed to the local client, or whether the operating system sends all traffic through a tunnel. It also does not make every connection indistinguishable from ordinary browsing. Observable addresses, timing, packet sizes, implementation choices, and later traffic behavior remain separate measurement questions. TLS fingerprinting explains why a TLS-like handshake is not a guarantee of invisibility.

This article deliberately does not advise how to choose a handshake target or tune values to defeat inspection. Those decisions have operational, authorization, and security consequences and belong to controlled deployment documentation, not a basic terminology guide.

What does XTLS Vision do?

XTLS Vision is commonly selected with the VLESS flow value xtls-rprx-vision. The flow field tells compatible endpoints to use that processing mode for the connection. It is therefore neither the client identity nor the REALITY security handshake; it is a data-flow behavior coordinated inside the VLESS configuration.[1]

The word “Vision” is sometimes presented as if it were a separate transport. That can lead to invalid combinations and misleading troubleshooting. A transport method such as RAW, XHTTP, or gRPC is configured in a different part of the stream settings. REALITY compatibility and Vision compatibility must be checked against the current Xray version and the exact combination in use, rather than inferred from the presence of one label.[1][2]

Vision also does not define routing scope. A local client might expose a SOCKS or HTTP proxy to selected applications, or another layer might feed device traffic through a TUN interface. The same server-side combination can therefore participate in very different user-visible network models.

When diagnosing a flow mismatch, preserve the exact literal value and software versions, but redact identities and keys. “Vision enabled” is too vague to prove that both peers negotiated the same supported behavior.

How do VLESS, REALITY, and XTLS Vision fit together?

The stack is easiest to read from the application downward. An application produces a connection request. Local routing or proxy integration decides whether that request enters Xray. VLESS represents the proxy request and client identity. Vision may alter eligible data-flow processing. REALITY supplies stream security. A transport method carries the stream over the network, and IP routing delivers packets to the endpoint.

Layer or decisionTypical responsibilityNot decided by that layer
Application and local routingSelect traffic that enters the clientRemote VLESS identity or REALITY keys
VLESSClient identity and proxy destination requestWhole-device routing or every security property
XTLS Vision flowCoordinated handling for compatible VLESS trafficServer address, DNS, or transport method
REALITYTransport-security handshake and server authentication contextApplication selection or final route policy
Transport methodCarries the stream using a supported framing/methodVLESS user authorization
IP networkReaches the configured endpointSuccessful handshake or usable proxy route

Diagram numbers match the table rows; arrows show responsibilities, not packet encapsulation. Implementations may combine work internally, but assigning each setting to its documented role helps locate errors.

What is separate from this stack?

DNS is separate. It can resolve the server hostname, resolve requested destinations locally or remotely, and follow routing rules of its own. A working VLESS and REALITY handshake does not prove that name resolution after the handshake is correct.

Routing is separate. Xray rules can send different destinations or inbound tags to different outbounds. The operating system may also have routes, firewall policy, and a TUN interface. A connection can authenticate successfully while application traffic takes the wrong path.

Account and product policy are separate. Generic Xray documentation cannot prove what a commercial VPN app supports, exposes, or operates. A product may use another protocol, may wrap components behind an automatic mode, or may not support this stack at all.

Finally, network acceptance is separate. A syntactically valid configuration can fail because an endpoint is unreachable, a permitted transport is unavailable, the handshake values disagree, or a network policy blocks the path. Those failures should be classified with evidence, not attributed automatically to one named component.

How should you read a configuration without mixing the layers?

Start by locating the VLESS inbound or outbound and record only non-secret structural facts: client versus server role, protocol name, and whether a flow is present. Next locate the stream settings. Record the transport method and the security mode as separate values. Then identify REALITY-specific public parameters while keeping private keys, UUIDs, short IDs, and full configuration files out of shared notes.

After that, inspect the traffic-entry and routing layers. Determine whether applications use a local proxy or a TUN-style integration, which routes select the outbound, and where DNS queries are handled. This prevents a post-handshake routing failure from being mislabeled as a REALITY error.

Compare both endpoints against the documentation for the versions actually installed. A copied configuration may contain a field that changed meaning, moved, or is unsupported in the selected combination. Change one layer at a time and preserve a rollback copy through the authorized configuration channel.

How should you evaluate a service against these components?

If you are evaluating AethoVPN rather than building this stack, install its client, choose a server location or the smart-recommended node in the app, and judge the connection on your own networks. Those results describe the service, not its internals: AethoVPN's public materials name none of the components discussed here, so do not carry a VLESS, REALITY or Vision field from this article into its client. Begin the 3-day free trial to run that evaluation.

If a product offers an automatic protocol mode, its user-facing label may not expose every internal component. Do not infer hidden protocol support from a log fragment or from similarity to an open-source configuration. Use the product's current documentation or support channel for product-specific availability.

Summary

  • VLESS defines a proxy protocol, client identity, destination request, and optional flow coordination.
  • REALITY belongs to stream security and has its own handshake and authentication parameters.
  • XTLS Vision is a VLESS flow mode, not another name for REALITY or for the transport method.
  • Local traffic capture, DNS, routing, transport selection, and product policy remain separate layers.
  • Version-specific documentation and sanitized evidence are safer than interpreting the shorthand “VLESS Reality” as one indivisible protocol.

FAQ

Is VLESS the same thing as REALITY?

No. VLESS is the proxy protocol and client-identity context, while REALITY is configured as transport security. They can be used together, but a setting from one layer cannot substitute for a setting from the other.

Is XTLS Vision another transport protocol?

Not in the configuration model described here. xtls-rprx-vision is a VLESS flow value. The transport method is selected separately in the stream settings.

Does VLESS encrypt traffic by itself?

Do not answer that from the name alone. Current VLESS documentation includes optional encryption fields, while stream security is configured separately. Evaluate the complete version-specific configuration rather than using a blanket slogan.

Does REALITY turn every application into VPN traffic?

No. Application selection and system routing happen outside the REALITY handshake. A proxy or TUN integration must first direct traffic into the configured outbound.

Can Vision work when the client and server use different flow values?

A mismatched or unsupported flow can prevent the intended connection behavior. Compare the exact values and versions on both authorized endpoints instead of assuming that a similar display name is equivalent.

Does a successful REALITY handshake prove browsing will work?

No. VLESS authorization, destination handling, DNS, routes, firewall rules, and server forwarding can still fail after the security handshake.

Is “VLESS Reality” one standardized VPN protocol?

The phrase usually names a deployment combination. This article treats its components by layer and leaves the broader classification question to a separate analysis so the terminology does not replace the architecture.

Disclaimer: This article explains protocol components for legitimate administration and troubleshooting. Follow applicable law and the policy of the network you use.

Sources:

  1. Project X, "VLESS inbound configuration": https://github.com/XTLS/Xray-docs-next/blob/main/docs/en/config/inbounds/vless.md
  2. Project X, "Transport configuration": https://xtls.github.io/en/config/transport.html

Sources checked 11 September 2026.


Related Articles:

Start your 3-day free trial

Sign up to experience all premium features at no cost.

*Available only to new users. Each user is limited to one trial.

What Are VLESS, REALITY, and XTLS Vision? | AethoVPN