VMess and VLESS Links vs. Subscriptions: How to Import Them

Learn how VMess and VLESS share links differ from subscription URLs, and how to import links from the clipboard or add subscriptions in v2rayN and v2rayNG.

At a glance

When you receive a configuration, first determine whether it’s a single-node share link or a subscription URL that fetches content online. This guide walks through identifying the format, choosing the right import option, importing the configuration, and checking for updates. It’s designed for first-time v2rayN and v2rayNG users. By the end, you’ll know the difference between clipboard imports and subscription updates, and how to troubleshoot format errors, empty lists, and mismatched settings.

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

vmess:// and vless:// are prefixes used for node share links. A single link typically describes one server configuration, including its address, port, user ID, transport, and security settings. The client parses the link and saves it as a local configuration. If the sender later changes the server, your saved entry won’t update automatically.

Subscription URLs usually start with https://. They point to a remote source that the client requests to retrieve a list of nodes. A subscription isn’t a third proxy protocol: it can return configurations using different protocols, including VMess and VLESS, or just one node. Whether it can be imported depends on the response format and what the client supports.

Subscription URL

Recommended

Best for node lists maintained by a configuration provider. Save the subscription URL, then update it to fetch the latest list. Updates can add or remove nodes and change credentials. Adding a group for the first time doesn’t fetch any nodes by itself.

Best for: long-term use, multiple nodes, and receiving configuration updates.

Single share link

Parsed directly from the clipboard, usually without contacting a subscription server. A share link is a configuration snapshot, so changes or replacements must be handled manually. The clipboard can also contain multiple share links, one per line.

Best for: quick tests, self-hosted servers, or checking a single configuration.

Choose the Right Import Option: Check the Prefix and Source

If the link starts with vmess:// or vless://, use “Import from clipboard.” For a subscription URL explicitly provided as such, use “Subscription settings.” A regular webpage, login page, or client download page isn’t a subscription just because it uses HTTPS.

Link Formats: Encoded VMess Data and VLESS Query Parameters

A common VMess share link consists of vmess:// followed by a Base64-encoded JSON object. Encoding formats the configuration as a string for sharing; it isn’t encryption and doesn’t make the link safe to share publicly. Different tools may generate links in different formats, so don’t assume every VMess link can be parsed the same way.

The example below shows a typical VMess configuration after decoding. It is not an importable share link. example.com is a documentation-only domain, and the UUID is also an example value; neither points to a working service. Use the complete parameters supplied by the server for an actual configuration.

{
  "v": "2",
  "ps": "VMess example",
  "add": "example.com",
  "port": "443",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "example.com",
  "path": "/ws",
  "tls": "tls",
  "sni": "example.com"
}

A VLESS share link usually places the user ID before @, followed by the server address and port, with query parameters for transport and security settings. The example below is also a non-working format illustration; %2Fws decodes to the path /ws, and the text after the hash is a display label.

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fws&sni=example.com#VLESS-example
FieldMeaningWhat to check
id / UUIDUser IDMust match the server-side account; don’t generate a replacement.
add / addressRemote serverDon’t enter the local listening address by mistake.
port / portRemote service portThe example uses 443; the server determines the actual value.
net / typeTransportIn this example, ws means WebSocket. It must match the server configuration.
host / pathWebSocket request parametersKeep the Host, path, and path capitalization exactly as provided.
sniTLS server nameMust match the certificate and server requirements; it may differ from the connection address.

In VLESS, encryption=none refers to VLESS’s own encryption field; it doesn’t mean the connection has no outer TLS. Don’t remove security=tls for that reason. Links using REALITY also include parameters such as a public key and short ID. Don’t turn the TLS example above into a REALITY configuration by changing just a few values.

v2rayN: Import from Clipboard and Add Subscriptions Separately

These steps use the common options in the Chinese-language v2rayN interface. Button locations may vary across releases; look for menu labels such as “Servers” and “Subscription Groups,” and for the corresponding field names. Keep the original text intact before importing to avoid line breaks, an added period, or copying only part of the link.

Import a Single VMess or VLESS Link

  1. Copy the entire link, from the protocol prefix through the final label. To import multiple links at once, put one on each line and leave out any explanatory text.
  2. In v2rayN, open the “Servers” menu and select “Import bulk URLs from clipboard.” On Windows, you can usually also press Ctrl + V; make sure the main window is focused first.
  3. Check the import notification and look for the new entry in the main list. Open its edit window and verify the protocol, address, port, transport, and TLS settings.
  4. Select the entry you want to use, then choose “Set as active server” from the context menu. A successful import only means the client parsed the configuration; it doesn’t confirm that the connection works.

Add and Update a Subscription

  1. Go to “Subscription Groups” → “Subscription Group Settings” and add a group. Enter a recognizable name under “Alias,” then paste the full URL into “Optional address” or “Subscription address.”
  2. Save the group, return to the main window, and select it. Don’t paste a subscription URL into a server’s “Address” field.
  3. Open the “Subscription Groups” menu and select “Update current subscription (without proxy).” If your network can’t reach the subscription service directly and you already have a working proxy, choose the corresponding update option that uses the proxy.
  4. Check the update result and the group’s node list. If the download succeeds but zero nodes are imported, check the response format instead of repeatedly adding the same group.

v2rayNG: Import, Update, and Connect on Android

v2rayNG uses the Xray core. Support for a protocol doesn’t guarantee that every version can handle all of its newer parameters. If a transport field isn’t recognized, first check the client version and configuration requirements. The steps below use the “+” menu on the main screen and the side menu; there’s no need to open the share link in a browser first.

Import from Clipboard

  1. Copy the complete vmess:// or vless:// link on your Android device.
  2. Open v2rayNG and tap “+” in the top-right corner → “Import config from clipboard.” If the clipboard appears empty, copy the link again, return to the app, and retry. Watch for any system prompt about clipboard access.
  3. Tap the new configuration to make it active. To check its settings, tap the edit button for that entry and verify the address, port, UUID, and transport settings.
  4. Tap the connect button on the main screen. The first time you connect, Android will ask for VPN permission. Approve it, then check the connection status and logs.

Add a Subscription Group

  1. Open the side menu and go to “Subscription group settings.” In some versions, this is labeled “Subscription settings.”
  2. Tap “+,” enter a “Remarks” label and an “Address,” and make sure the address is the complete subscription URL. Then tap Save.
  3. Return to the main screen, open the menu in the top-right corner, and select “Update subscription.” If the interface lets you update a specific group, check that the correct one is selected first.
  4. Wait for nodes to appear in the list, then select one and connect. A failed subscription download and a failed node connection are different problems; check the update message and connection logs separately.

Use the Same Source on Both Devices, and Verify Each Separately

Desktop: v2rayN
  • Manage the same source in a dedicated subscription group.
  • After updating, make sure the intended entry is still the active server.
  • Set the system proxy only if you need browser traffic to use the local proxy.
Android: v2rayNG
  • First, confirm that the provider allows the subscription to be used on multiple devices.
  • Update it separately on the device and check that it supports all configuration parameters.
  • Grant VPN permission and check which apps are included in the proxy.

A subscription syncs the node configurations returned by the provider. It doesn’t sync system proxy settings, routing rules, per-app proxy selections, or the currently active node.

After Import: Check the Remote Port, Local Proxy, and Update Results

After saving a node, verify its fields before testing how traffic flows. The remote port is part of the server configuration; the local listening port is the client’s entry point. They don’t need to match. The two ports below illustrate the difference only—they aren’t instructions to change your configuration or defaults for every version.

443
Remote TLS service port in this example
10808
Example local proxy listening port; use the value shown in your settings

Verification Order: Successful Parsing, Working Nodes, and App Traffic

First make sure the configuration saves, then use the logs to check the connection, and finally verify the proxy route for the specific app. A successful latency test doesn’t mean every request will work. Troubleshooting one fixed entry is more effective than changing nodes, routing, and DNS all at once.

Common Issues: Empty Lists, Missing Parameters, and Subscription Security

Why does importing a copied link show “No valid configuration found”?

First check that the protocol prefix is complete, then look for quotes, non-ASCII punctuation, or chat text mixed into the link. In a VLESS link, & separates query parameters; copying from webpage source may give you the HTML entity instead. Copy the link again using the provider’s “Copy link” option. Don’t manually add or remove characters from VMess encoded data.

Why does the subscription open in a browser but import zero nodes?

The browser may be showing a login page, an error page, or content intended for a different format parser. Make sure you’re using the compatible subscription URL provided by the service, not an account dashboard page. An HTTP 200 response only means the request received a response; it doesn’t prove the response contains parseable nodes. Check the client’s update log for format or parsing errors.

Subscription updates time out. Should I switch to “Update through proxy”?

First make sure the device is online, the subscription domain resolves, and the URL hasn’t expired. If you already have a working node, try updating through the proxy. If no proxy is working, this option can’t restore the connection on its own. The location of the subscription proxy setting varies across v2rayNG versions, so check the actual setting in the app. A successful node latency test doesn’t prove the subscription URL is reachable.

Some parameters are missing after import. Can I just change the protocol?

Don’t change a VLESS entry directly to VMess or delete security parameters you don’t recognize. First note the client version, then check that its core supports the provider’s requirements. Visit the client download page to find a suitable client. If the parser still doesn’t support the share link format, request a compatible configuration instead of guessing the fields.

Can I send someone my subscription URL to help troubleshoot?

Tokens in subscription URLs usually grant access, and share links contain the user ID needed to connect. Before sharing logs, redact the full subscription URL, UUID, tokens, and account details; include only the necessary error lines and field names. If the URL has been exposed, reset the subscription credentials in the provider’s dashboard, then replace the old URL on every device.

Download V2Ray Clients