What is VLESS? Protocol, REALITY, TLS, configuration and safety

VLESS is a lightweight, stateless proxy protocol from the Xray ecosystem. It authenticates a user, carries traffic between a compatible client and server, and relies on a separately configured security layer such as TLS or REALITY when the connection crosses an untrusted network. This guide explains the parts of a VLESS configuration, the difference between VLESS and a conventional VPN, common transports, safe testing, and the limits of public endpoints.

VLESS in plain English

A VLESS client accepts traffic from an application or a system-wide tunnel, adds the VLESS request metadata and sends it to a VLESS server. The server checks the user ID and forwards the request to its destination. VLESS itself is deliberately small: it is not the component that provides a normal TLS certificate, disguises the connection, selects a WebSocket path or creates a virtual network interface.

The official Project X VLESS documentation describes it as a stateless, lightweight transport protocol and notes that, unlike VMess, it does not depend on system time for protocol authentication. The same documentation says that an outer transport-security layer should be used on untrusted networks unless the peers are already in a private, trusted environment or the newer VLESS Encryption feature is deliberately configured.

What VLESS does

  • identifies an allowed user with a UUID;
  • describes the requested destination;
  • moves TCP or UDP traffic through an Xray-compatible proxy;
  • works with several transports and security modes.

What VLESS does not guarantee

  • operator trust or a no-logs policy;
  • encryption without TLS, REALITY or another protected outer path;
  • anonymity against every observer;
  • availability, speed or censorship resistance on every network.

How a VLESS connection works

  1. The client reads the profile. It needs a server address and port, a user UUID, transport settings and the matching security parameters.
  2. The outer connection is negotiated. This may be a regular TLS session or a REALITY session. The selected transport, such as RAW/TCP, XHTTP, gRPC or WebSocket, must be compatible on both ends.
  3. VLESS authentication is sent. The server validates the user ID and optional flow setting.
  4. The server opens the requested destination. Application traffic then travels through the established proxy path.
  5. A TUN-capable client may route the whole device. Without TUN, system proxy or application proxy settings, only applications explicitly using the local proxy are covered.

This last distinction is important: VLESS is a proxy protocol, not automatically a full-device VPN. Apps such as sing-box and Xray can place VLESS behind a TUN interface, but the system-wide tunnel is a client feature built around the protocol.

Essential VLESS configuration fields

FieldMeaningTypical failure
address / serverHostname or IP address of the VLESS server.DNS failure, blocked address or wrong host.
portRemote listening port, often but not necessarily 443.Timeout or connection refused.
id / uuidVLESS user identifier used for authentication.Handshake rejected after an operator rotates or removes the user.
securityUsually tls or reality; none means no outer transport security.Unsafe plaintext path or mismatched negotiation.
sni / serverNameTLS server name used during certificate or REALITY negotiation.Certificate-name error or failed REALITY handshake.
type / transportRAW/TCP, XHTTP, gRPC, WebSocket or another supported transport.Client and server speak different transports.
path / serviceNameTransport-specific route for WebSocket, XHTTP or gRPC.HTTP 404, reset or immediate disconnect.
flowOptional VLESS sub-protocol; a common value is xtls-rprx-vision.Flow mismatch or unsupported client combination.
pbk, sid, fpREALITY public key, short ID and client fingerprint parameters.REALITY authentication or TLS-style negotiation fails.

Names vary between share-link parameters and application configuration formats. For example, the official sing-box VLESS outbound reference uses server, server_port, uuid, flow, tls and transport. Importing a link is convenient, but reviewing the resulting profile is safer than assuming every client interpreted it identically.

Does VLESS encrypt traffic?

Do not treat the word VLESS as proof of encryption. In the common design, TLS or REALITY protects the path between the client and the proxy server. After the server forwards traffic, protection depends on the destination protocol: HTTPS remains encrypted end to end to the website, while plain HTTP can be read or changed by the proxy operator or other parties on the server side.

With regular TLS, the client should validate the certificate and hostname. Avoid allowInsecure, certificate-verification bypasses and similar options: they remove a central protection against an active man-in-the-middle attack. A self-signed or mismatched certificate is not fixed by hiding the warning.

The official Project X TLS transport documentation describes the certificate and fingerprint settings. A correct profile should use a hostname and certificate chain that the client can validate, unless you control a private deployment with a deliberately installed trust anchor.

What is VLESS + REALITY?

REALITY is an XTLS transport-security implementation used with compatible Xray and sing-box configurations. Instead of operating like a conventional public website with a certificate dedicated to the proxy hostname, a REALITY server and client use a private/public-key arrangement plus server-name and short-ID parameters. The client must have the correct public key and matching connection details.

REALITY can change how the outer TLS-like connection appears and can reduce the operational need for a dedicated public certificate, but it is not a promise of invisibility. Network behavior, destination choices, client fingerprints, server reputation and active probing can still matter. Compatibility also depends on the transport: consult the current Project X transport compatibility table and the official REALITY repository instead of assuming every transport/security pairing works.

Common VLESS transports

TransportHow it is usedConfiguration to verify
RAW / TCPDirect byte-stream transport with relatively few moving parts; frequently paired with TLS or REALITY.Security mode, SNI, flow and REALITY parameters.
XHTTPCurrent Project X HTTP-based transport designed for several delivery modes.Path, host, mode and security compatibility.
gRPCHTTP/2-based transport using a configured service name.Service name, TLS/REALITY support and intermediary HTTP/2 behavior.
WebSocketWebSocket framing, sometimes routed through an HTTP reverse proxy or CDN.Path, Host header, TLS and proxy WebSocket support.
HTTPUpgradeHTTP/1.1 Upgrade transport with WebSocket-like deployment patterns.Path, host and support at every reverse-proxy hop.

No transport is universally the fastest or most private. Route quality, congestion, server load and intermediary support often dominate. Both client and server must use compatible settings; changing only type=ws to type=grpc does not convert a profile.

VLESS vs VMess, Trojan and OpenVPN

TechnologyRole and authenticationSecurity modelTypical use
VLESSLightweight proxy protocol using a UUID; protocol authentication is stateless.Normally paired with TLS or REALITY as the outer security layer.Xray/sing-box proxy routes and optional TUN clients.
VMessOlder stateful protocol in the V2Ray/Xray ecosystem with time-sensitive authentication.Protocol design plus configurable outer transports/security.Legacy and compatible V2Ray deployments.
TrojanTLS-oriented proxy protocol commonly authenticated with a password.Designed around a valid TLS session.Simple TLS proxy deployments.
OpenVPNFull VPN protocol with certificate, key and/or username authentication.Integrated TLS control channel and encrypted VPN data channel.System-wide routed or bridged VPN access across mature clients.

These architectural differences do not make one option automatically faster or safer. A well-maintained server, validated keys, a trustworthy operator and a correct client configuration matter more than a protocol label. OpenVPN is natively a VPN; VLESS becomes a full-device path only when the client routes traffic through it.

How to read a vless:// link

A share link packages connection fields into a URI. The example below is intentionally sanitized and cannot authenticate to a real server:

vless://[uuid]@vpn.example.com:443?security=reality&type=tcp&sni=www.example.com&fp=chrome&pbk=[public-key]&sid=[short-id]&flow=xtls-rprx-vision#Example
  • [uuid] is the user credential. Treat a private UUID like a password even though public feeds may intentionally share one.
  • vpn.example.com:443 is the network endpoint.
  • security=reality selects REALITY; its key, short ID, SNI and fingerprint must agree with the server.
  • type=tcp describes the transport, while flow selects the optional Vision sub-protocol.
  • The fragment after # is normally just a display name.

Never paste a private production link into a public validator, issue tracker or chat. Anyone with its active credential and parameters may be able to use the account until it is rotated.

How to import and test VLESS safely

  1. Use a maintained client from its official project or app-store publisher. Confirm that the client supports the profile's transport, TLS/REALITY mode and flow.
  2. Inspect the endpoint, SNI, transport and security mode before importing. Reject unexpected insecure flags and unrelated routing rules.
  3. For an unknown public server, use a separate browser profile and avoid banking, work accounts, personal email and private code.
  4. Connect, then open What is my IP. The visible public address should change to the proxy exit address.
  5. Run the DNS leak test. A changed web IP does not prove that every DNS query or every application follows the tunnel.
  6. Disconnect and confirm that normal routing returns. Remove profiles that are expired or whose origin you can no longer verify.

A TCP port opening or a successful ping is not enough. It proves only reachability. A meaningful VLESS check has to negotiate the configured transport/security layer and carry real application traffic through the proxy.

Why VLESS connects but the internet does not work

  • Expired or rotated UUID: public subscriptions frequently replace credentials while the hostname remains unchanged. Refresh the original source.
  • Wrong SNI or certificate failure: use the published server name and keep verification enabled. Check the device clock because TLS certificate validity still depends on correct time even though VLESS authentication itself does not.
  • Incorrect REALITY values: one wrong public key, short ID, fingerprint or server name can stop the handshake.
  • Transport mismatch: RAW/TCP, WebSocket, gRPC and XHTTP are not interchangeable. Paths, hosts and service names must match.
  • DNS is not routed: the proxy may work while the device continues using an inaccessible or leaking resolver. Review client DNS and TUN settings.
  • Only some apps are proxied: configure TUN/system proxy mode or the individual application as appropriate.
  • UDP is unavailable: some profiles or client modes handle TCP but not the application's UDP traffic.
  • Server or route changed: a configuration that passed earlier can fail after congestion, blocking, firewall changes or operator shutdown.

Start with the client log and identify the stage: DNS resolution, TCP connection, TLS/REALITY negotiation, VLESS authentication or destination access. Changing many fields at once usually hides the original fault.

How PublicVPNList checks VLESS endpoints

Our checked VLESS catalog admits an endpoint only after an isolated external worker builds a compatible sing-box configuration, establishes the actual tunnel, performs an HTTPS request through it and observes a public exit IP different from the checker's direct address. A preflight port result alone is not published as a working tunnel.

Successful entries expire from the public catalog after three days. UUIDs, subscription links and REALITY keys are excluded from the public snapshot; the current URI is retrieved from an allowlisted HTTPS source only when a download is requested. Read how server checks work and the source policy for the distinction between discovery and verification.

A passing check says that one configuration carried traffic at a particular time. It does not identify the operator, audit logging, promise future availability or endorse the endpoint for sensitive use.

Privacy and safety limits of public VLESS servers

The server operator can see connection metadata and traffic that is not independently protected end to end. They may also correlate timing, destinations and account identifiers. HTTPS protects the content between your browser and the destination website, but it does not make an unknown proxy operator trustworthy.

Public configurations can be replaced, overloaded, monitored or deliberately malicious. Use them for low-risk testing and temporary connectivity, not as a substitute for a service whose ownership, security practices and legal terms you have evaluated. Our broader public VPN risks guide applies equally to unknown VLESS infrastructure.

Official VLESS references

Protocol implementations evolve. Check the documentation for the exact client version you use before translating a profile or enabling a newer transport.

Page history

  • 0 — Array

Continue with VLESS tools and safety

Frequently asked questions

Is VLESS a VPN?
VLESS is a proxy protocol. A compatible client can route the whole device through VLESS using a TUN interface, but VLESS alone is not a full VPN interface.
Is VLESS encrypted?
VLESS should not be treated as encryption by itself. Common deployments protect the client-to-server path with TLS or REALITY, while HTTPS or another end-to-end protocol protects traffic beyond the proxy.
What is VLESS REALITY?
It is a VLESS deployment using the XTLS REALITY transport-security implementation. The client needs matching server name, public key, short ID and fingerprint parameters.
What is the difference between VLESS and VMess?
VLESS is a lightweight stateless protocol whose authentication does not depend on synchronized system time. VMess is an older, stateful and time-sensitive protocol in the same broader ecosystem.
Does VLESS use a UUID?
Yes. A UUID is normally the VLESS user ID. Private UUIDs should be protected like credentials and rotated if disclosed.
Should I enable allowInsecure to fix VLESS TLS?
No. Disabling certificate verification can expose the connection to interception. Correct the server name, certificate chain, device time or profile instead.
Can an ISP see that I use VLESS?
No configuration guarantees invisibility. An access provider can still observe the server address, timing and traffic volume, and detection can depend on transport details and network analysis.
Why did a public VLESS configuration stop working?
The operator may rotate the UUID or REALITY values, change transports, block the route, overload the server or remove it. Refresh the original source and prefer a recently tunnel-verified entry.
Which clients support VLESS?
Xray-based clients and sing-box support VLESS, but individual apps and versions differ in REALITY, Vision, XHTTP, gRPC, WebSocket and TUN support. Verify the exact feature set in the official client documentation.
How do I verify that VLESS is really connected?
Load an HTTPS page through the configured route, confirm that the public exit IP changes, then check DNS behavior. An open port or successful ping does not prove a working VLESS tunnel.