VMess and VLESS Share Links vs. Subscription URLs: How to Import Them

Learn how VMess and VLESS share links differ from subscription URLs, then follow step-by-step import instructions for v2rayN and v2rayNG.

At a glance

First identify whether you have a single node configuration or a subscription URL that retrieves a list of nodes. Then choose clipboard import, QR code scanning, or subscription settings. This guide is for users who have installed a client and are importing a configuration for the first time. It explains key fields, steps for both clients, and what to check when updates fail. After importing, also check core compatibility, traffic routing, and routing rules.

Share Links vs. Subscription URLs: Configuration Snapshots and Update Channels

A vmess:// or vless:// share link usually describes a single connection configuration, including the server address, port, user ID, and transport parameters. Importing it into a client creates a snapshot of the configuration at that point in time. If the server address or port changes later, the imported entry usually won't update by itself; you'll need to import it again or edit it manually.

A subscription URL is usually an HTTPS URL containing an access token. The client requests data from that URL and parses the returned list of nodes into configurations. The response may contain a set of encoded share links or use a specific configuration format. Whether it can be imported depends on the client's parser; an HTTPS prefix alone doesn't guarantee compatibility.

Subscription URLs: Maintain a List of Nodes

Recommended

If the provider supports your client's format, subscriptions make it easier to fetch multiple nodes and keep them updated. Updates require the client to make a request; changes aren't pushed to your device in real time.

Best for: multiple nodes, changing server addresses, or a list you need to maintain over time.

Share Links: Import a Single Configuration

Useful for transferring one specific configuration or testing an individual node outside a subscription. A QR code is simply another way to carry the same text; it doesn't provide subscription updates.

Best for: self-hosted nodes, temporary tests, or checking a single connection's settings.

Choose the Right Import Method: Check the Content First

If you have a complete vmess:// or vless:// link, use node import. If the provider explicitly identifies a URL as a subscription, add it in subscription settings. Don't mistake an account login page, order page, or help page for a subscription URL.

Link Formats: Encoded VMess Data and VLESS Query Parameters

A common VMess share link format places Base64-encoded JSON after vmess://. Decoding it may reveal fields such as add (address), port, id (user ID), net (transport), host, path, and tls. This is a convention for sharing configurations, not a complete JSON configuration that can be passed directly to the core. Not every export tool uses exactly the same VMess link variant.

VLESS share links typically use a URI format. The synthetic example below is for illustrating the structure only: example.com is a reserved example domain, so this configuration can't connect to a server. It uses TCP with TLS and doesn't include REALITY or other combinations.

vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=example.com#demo-tls
FieldWhat the example meansWhat to check
UUID@address:portUser ID and server endpointMust match the server configuration. Don't replace it with a local proxy port.
encryption=noneVLESS encryption fieldThis doesn't mean the connection has no TLS; check the security layer settings as well.
security=tlsUse TLS for the security layerThe server must support these settings. The certificate and server name must also match.
type=tcpTCP transport marker in this share link formatThe importer maps this to core fields. Don't change it to a different transport name without a reason.
sni=example.comTLS server nameThe connection address and server name don't have to be the same. Use the values specified by the provider.
#demo-tlsNode nameUsed mainly to identify the node in the list. Changing its name won't fix authentication or connection errors.

If a link uses REALITY, it configures the connection's security layer; it isn't a standalone proxy protocol at the same level as VMess or VLESS. Check the public key, short ID, server name, fingerprint, and any flow parameter against the server and core versions. An importer recognizing VLESS doesn't guarantee that it preserves all these additional parameters correctly.

443
The example's remote TLS port; not a fixed requirement
16 bytes
Binary length of a standard UUID
1–65535
Typical range of server port values

v2rayN: Clipboard Import, QR Scanning, and Subscription Updates

The steps below use common menu labels in the Chinese-language v2rayN interface. Labels and locations may vary by version and desktop implementation. Look for the functions to import URLs from the clipboard, scan a QR code on screen, and configure subscription groups. The client parses share links and manages configurations; the core establishes the actual connection. Check compatibility for both separately.

Import a Single Share Link

  1. Copy the entire line, starting with vmess:// or vless://. Leave out surrounding instructions, quotation marks, and line breaks inserted by chat apps.
  2. Open v2rayN and select “Servers” → “Import bulk URLs from clipboard.” Some interfaces also support Ctrl+V in the main window; you can use the menu instead.
  3. If the QR code is displayed on your screen, select “Servers” → “Scan QR code on screen.” Show the entire code and close any windows covering it. This scans the screen; it doesn't open a camera.
  4. Check the new entry. Open its editor to verify the protocol, address, port, transport, and TLS settings, then use the list's right-click menu to set it as the active server.

Add a Subscription URL

  1. Go to “Subscription Group” → “Subscription Group Settings” and add a group. Enter a recognizable name, paste the complete subscription URL into the address field, and save.
  2. Return to the main window and use the update subscription function under “Subscription Group.” If no working proxy is available yet, try updating without a proxy first. Updating through a proxy only makes sense when you already have a working connection.
  3. Make sure nodes appear under the target group, not just the group name. Saving a URL and fetching its contents are separate steps; a successful save doesn't mean the subscription downloaded successfully.
  4. Select a node, enable the system proxy if needed, and check the routing mode. The node configuration only affects real traffic when the traffic you need is routed through the client.

v2rayNG: Clipboard Import, Camera Scanning, and Subscription Groups

v2rayNG is an Android client that uses the Xray core. It can accept the same types of share links as the desktop client, but importers, settings, and update behavior can vary by version. Don't assume a full application settings file exported by a desktop client can be used as subscription content on Android.

  1. Import from clipboard: Copy the complete share link, open v2rayNG, and tap “+” in the top-right corner → “Import from clipboard.” Once imported, tap the node to make it the active configuration.
  2. Scan with the camera: Tap “+” → “Scan QR code” and grant camera permission when prompted. If the QR code is on another screen, keep all four corners visible and make sure the screen is bright enough. Check the new node after scanning.
  3. Add a subscription: Open “Subscription Group Settings” from the side menu, tap “+”, enter a name and subscription URL, then save.
  4. Fetch nodes: Return to the main screen, open the more menu in the top-right corner, and select “Update subscription.” If the current screen filters by group, make sure you're viewing the group you just added.
  5. Start a connection: Select a node and tap the connect button. The first time you connect, approve Android's VPN connection request. This system permission lets the local service handle device traffic; it isn't another subscription account.

Some versions also offer an option to scan a QR code from an image; its name and location may vary. If you don't see it, copy the original text or display the QR code on another screen. Don't upload an image containing credentials to an online scanner just to read a QR code.

Use Both Clients: Share the Source, Manage Runtime Settings Separately

Desktop: v2rayN
  • Add a subscription in a compatible format and run the first update manually.
  • Check that the selected core supports the node's transport and security layer.
  • Enable the system proxy if needed and configure desktop routing separately.
Android: v2rayNG
  • Before using the same subscription, confirm that your account allows multiple devices.
  • Update the list separately and check the active node and VPN connection status.
  • Check per-app settings to make sure the apps you want are included.

Sharing a subscription doesn't sync settings: each client manages its own update schedule, active node, routing, and app coverage.

After Import: Check These Three Layers

A node appearing in the list only confirms that the client parsed an entry. It doesn't prove the server is online, authentication is valid, or all parameters are supported. Share formats and protocol implementations are different layers: a client may save a field while the running core rejects the configuration because of an incompatible version or combination.

Interpret connection tests in context. A successful TCP latency test usually means only that the target port was reachable under the test conditions; it doesn't prove that TLS, user authentication, or web requests work. Check that the core starts, try an actual connection, then review the logs for connection and routing results. This is often more effective than repeatedly importing the configuration.

Troubleshooting: Start with What You See

After pasting, it says there are no valid configurations. Is the link broken?

First check the beginning of what you copied. If it's an HTTPS subscription URL, enter it in the subscription group address field. If it's a share link, make sure the prefix is complete and no non-ASCII punctuation was added. In v2rayN, use clipboard import under “Servers”; in v2rayNG, use clipboard import under “+”. If it still fails, check whether the client supports that link format.

A subscription update timed out. Should I just enable proxy updates?

Try updating through a proxy only if you already have a working node and a valid proxy route. First check your device's network, subscription domain resolution, and update logs. If the current node is also down, changing the update method won't restore the connection. When asking the provider whether the URL has changed or the subscription has expired, share only the error type, never the full URL.

An update returns 401 or 403, or imports a web page. What should I do?

A 401 usually indicates an authentication issue; a 403 means the request was denied. The exact reason depends on the server's rules. Check whether the token was truncated, the account is active, and you selected the right client format. If the response is a login page or other HTML, get the actual subscription URL again. Don't try to import web page content as a node list.

The QR code scanned successfully. Why won't the connection work?

A QR code only transfers text; it doesn't verify the remote configuration. Open the node editor and check the port, transport, TLS, or REALITY parameters one by one, then review the core logs. If the certificate name is wrong, correct the server name or server certificate instead of disabling certificate verification.

Why did my manually edited node name and settings change after a subscription update?

An update may replace entries with the content returned by the subscription. That's how list management works. Copy configurations you want to keep into a separate manual group before updating. If the provider changes node IDs or list order, check which node is selected afterward.

Protect Your Credentials and Check After Importing

User IDs and related authentication parameters in share links are connection credentials. A subscription URL's token usually lets anyone who has it read the node list, so keep it secret as well. Base64 is an encoding, not a security measure, and QR codes don't add access controls. Before sharing a troubleshooting screenshot, cover the complete link, QR code, UUID, and subscription token.

For more on how clients and cores work together, see Concepts at a Glance. For the full process from installation to your first connection, continue with Getting Started. Share links transfer configurations; subscriptions retrieve and update node lists. Whether a connection works still depends on the server, core, and local settings.

Download and Install a ClientChoose v2rayN or v2rayNG for your platform