How To Configure VLESS Reality In V2RayNG On Android

Set up a VLESS Reality profile in v2rayNG without guessing what each field means. Follow the Android interface step by step, use the values supplied by your server provider, and verify the connection with logs and a practical browser test.

Configuring a VLESS Reality profile in v2rayNG is mostly a matter of copying a matched set of values into the correct fields. The difficult part is not the number of fields; it is knowing which values belong to the server, which values belong to the client, and which options must remain empty. This guide follows the Android interface step by step and explains the practical meaning of UUID, serverName, publicKey, shortId, fingerprint, and flow. Use the parameters supplied by your server provider rather than inventing replacements.

Article overview

This guide is for Android users who need to add a VLESS + REALITY node manually in v2rayNG. You will learn which server parameters are required, how to enter them through the profile editor, how to select an Xray core, and how to verify the result through logs, latency, and a real browser request.

Understand what a VLESS Reality profile requires

VLESS and REALITY perform different jobs. VLESS identifies the user with a UUID and carries the proxy session, while REALITY provides the security and handshake layer used by the Xray client and server. A complete profile therefore contains more than a protocol name. The address, port, UUID, transport, security mode, server name, public key, short ID, and sometimes Vision flow control must agree with the server-side configuration.

8+
Common profile fields
443
Typical HTTPS port
1
Required client UUID
TCP
Common REALITY network

The following values are commonly supplied by a provider. The exact combination can differ, so treat this as a field map rather than a configuration template.

Profile field What it does Typical value or rule
Address The server hostname or IP address A domain name is common; copy it exactly
Port The server listener port Often 443, but not always
UUID Authenticates the VLESS user A complete UUID supplied by the provider
Encryption Defines the VLESS encryption field Normally none for VLESS
Network Defines how the connection is transported Usually tcp for VLESS + REALITY
Security Selects the outer security layer reality, not ordinary TLS
Server Name The SNI-like name used during the REALITY handshake Must be one of the names allowed by the server
Public Key Allows the client to validate the REALITY server identity A provider-generated key, often shown as a short text string
Short ID Identifies an accepted REALITY handshake variant Copy the exact hexadecimal value, including leading zeroes
Fingerprint Selects the client TLS fingerprint presented by Xray chrome is a common provider recommendation

Do not confuse the server address with the REALITY server name. The address is where v2rayNG opens the connection. The server name is sent as part of the handshake and is normally a domain selected by the server operator. They may be different. Replacing the server name with the address, or replacing it with a familiar website name, can make the handshake fail even when every other field is correct.

Uses the modern Xray security combination most commonly distributed for direct VLESS profiles. It normally needs a UUID, Vision flow, server name, public key, short ID, and fingerprint.

Suitable for: a provider-issued modern Xray node

Uses ordinary TLS rather than REALITY. Its certificate, server name, and transport settings follow a different server configuration, so REALITY fields cannot simply be reused.

Suitable for: a node explicitly marked TLS

Adds a WebSocket path and possibly a host header. It is not equivalent to VLESS + REALITY over TCP, even though both profiles use VLESS.

Suitable for: a node that specifies WebSocket

Practical conclusion: copy the combination, not the label

“VLESS” alone is not enough to configure a node. If the provider gives reality, tcp, and a public key, keep those values together; changing only the security dropdown creates a different profile.

Prepare v2rayNG and check the supplied values

Before opening the editor, update v2rayNG from a trustworthy distribution and confirm which core the application is using. VLESS Reality is an Xray-oriented configuration. Older or incompatible cores may display similar fields but fail to process the REALITY handshake correctly. In v2rayNG, open the side menu or settings area, locate the core selection option, and choose an available Xray core when the imported profile or provider documentation requires Xray. Menu wording can vary between releases, but the selected core is usually visible in the application settings or profile details.

Prepare the configuration in a plain note first. Keep one item per line and remove quotation marks, spaces at the beginning or end, and accidental line breaks inside the UUID or public key. A typical parameter list may look like this:

Protocol: VLESS
Address: node.example.net
Port: 443
UUID: 00000000-0000-0000-0000-000000000000
Encryption: none
Network: tcp
Security: reality
Server Name: target.example.com
Public Key: provider-supplied-public-key
Short ID: 4f2a
Fingerprint: chrome
Flow: xtls-rprx-vision

The values above are examples of field names only. The UUID, hostname, public key, short ID, and flow value must come from the actual service. Never use the example UUID or key for a real connection. If the provider supplies a VLESS link, importing that link is usually safer than manual entry because the link can carry all of these parameters in encoded form.

Add the profile in the Android interface

Use the profile editor when you have a complete parameter set but no usable share link. The labels below describe the common v2rayNG workflow; minor placement differences may appear across application versions.

  1. Open profiles

    Launch v2rayNG, tap the add button on the main screen, and choose the option for manually adding a VLESS profile. Avoid selecting VMess, Trojan, or a generic custom entry when the provider specifically supplied VLESS parameters.

  2. Enter endpoint

    Fill in the server address and port exactly as supplied. Use the hostname in the address field when the provider gives a hostname. Do not add https://, a path, or a colon-port suffix into the address field if the interface has a separate port box.

  3. Set identity

    Paste the UUID into the user ID field. Set VLESS encryption to none unless the provider documents another supported value. If a flow field is available, enter xtls-rprx-vision only when the node specifies it.

  4. Choose Reality

    Set the network or transport to tcp and the security layer to reality. Open the REALITY-specific options, then enter the server name, public key, short ID, and fingerprint. The fingerprint is often chrome, but it must follow the provider’s profile.

  5. Save and select

    Save the profile, return to the node list, tap the new entry to select it, and start the connection. If Android asks for permission to create a VPN connection, approve it only after checking that the selected profile is the one you intend to use.

Check each REALITY field before connecting

The Server Name field is one of the most frequently misunderstood options. It is not necessarily the same as the address, and it is not a free-form website choice. The server’s REALITY configuration determines which name is accepted. The Public Key must also be copied without changing uppercase and lowercase characters or removing punctuation. A single missing character produces a handshake error.

The Short ID is commonly hexadecimal, so values may contain digits from 0 to 9 and letters from a to f. Preserve leading zeroes. If the provider shows more than one short ID, use the one paired with the selected node. The Fingerprint controls the client fingerprint choice; it does not identify your Android model and should not be replaced with an arbitrary browser name.

Observed setting What to select What not to do
VLESS with REALITY Security: reality Do not select ordinary TLS
TCP transport Network: tcp Do not add a WebSocket path
Vision flow supplied Flow: xtls-rprx-vision Do not invent a flow value
No flow supplied Leave flow empty if the client permits it Do not add Vision automatically

Save the profile after every meaningful correction. If a field is hidden until a security mode is selected, first choose REALITY, then scroll through the expanded options. Some Android screens place the public key and short ID below the server name, while others group them under an advanced or REALITY section.

Verify the connection and troubleshoot failures

A green connection indicator is useful, but it is not complete proof that traffic is working. First select the profile, start v2rayNG, and wait several seconds for the local VPN interface to appear. Then open the application’s log view and look for a successful outbound connection rather than repeated timeout messages. On a normal test, the log should stop producing authentication or handshake errors while the browser can load a page that requires the proxy.

  • Run the built-in latency test if the node list provides one. A timeout means the test could not complete; it does not prove that the entire Android network is offline.
  • Open a browser and visit a practical test page, then load a second page after a fresh refresh. Testing only the connection switch does not confirm DNS resolution, routing, and data transfer together.
  • Compare the result with v2rayNG stopped. If the browser works only after the VPN permission is active, check Android’s VPN status and confirm that another VPN application is not competing for the same interface.
  • Test both Wi-Fi and mobile data when possible. A profile that works on Wi-Fi but fails on mobile data may be affected by the network route, filtering, or IPv6 preference rather than a changed UUID.

Core and transport

Core
Xray
Protocol
VLESS
Network
TCP
Security
REALITY

These selections expose the REALITY fields required by the profile.

Identity and handshake

User ID
Provider UUID
Server name
Provider value
Public key
Provider value
Short ID
Exact hexadecimal text

Every value belongs to the same server-side configuration.

Read the most useful log clues

A timeout usually points to an unreachable address or port, a blocked route, an incorrect server name, or a server that is not listening. A handshake or REALITY verification error more often indicates a wrong public key, short ID, server name, fingerprint, or security selection. An authentication error commonly points to a wrong UUID. If the profile connects but pages remain blank, inspect the flow, transport, routing mode, and DNS behavior instead of repeatedly changing the UUID.

When an imported link works but a manually created profile does not, compare the two entries field by field. Pay special attention to URL-decoded characters, the port, the type or network value, and whether the imported entry contains a flow parameter that was omitted manually. Also confirm that you saved the edited profile and selected it; changing an unselected entry does not change the active connection.

For everyday use, keep the working profile unchanged and create a copy before testing a different core or routing mode. Avoid adding custom DNS, application exclusions, or advanced routing rules until the basic node can establish a connection and pass a browser test. Once the foundation works, make one controlled change, reconnect, and compare the logs and browsing result.

Download v2rayN