vmess:// and vless:// usually describe one node each, while a subscription URL retrieves and updates a group of nodes. This guide is for users who have just received a share link or subscription URL and are unsure where to import it. By the end, you will know how to identify the format, import it on desktop or Android, update subscriptions, switch nodes, and troubleshoot common errors.
The Core Difference Between Share Links and Subscription URLs
vmess:// and vless:// are both ways to carry configuration data, but they contain different protocol fields. VMess share content is usually encoded; after decoding, the client gets fields such as the server address, port, user ID, transport, TLS settings, and remarks. VLESS is closer to a standard URI: the user ID appears before the host, while transport, security, SNI, fingerprint, and other parameters appear in the query string.
These links usually represent a single node. When you copy one into a client, the client creates a server configuration locally. If the original link changes later, the local configuration will not update automatically. You must obtain and import the new link again, or edit the existing configuration directly.
A subscription URL usually does not describe one specific node. After accessing it, the client receives a response containing multiple configurations and converts them into a node list. When you run “Update subscription” later, the client requests the URL again and refreshes node names, server parameters, and available entries within that subscription group.
Single-Node Share Link
Imports one VMess or VLESS configuration at a time, with node parameters stored directly in the current client.
Best for: temporary testing, moving a single node, and manual maintenance
Subscription URL
RecommendedRetrieves a group of nodes at once, then syncs server lists and parameter changes through later updates.
Best for: daily use, syncing across devices, and frequently changing nodes
QR Code Content
A QR code is usually just a visual container for a share link. After scanning, it is still parsed as VMess, VLESS, or another supported configuration.
Best for: importing from a computer screen to an Android device
| Comparison | Share link | Subscription URL |
|---|---|---|
| Typical prefix | vmess://、vless:// |
https:// |
| Result of one import | Usually 1 node | May contain 1 or more nodes |
| Later parameter changes | Re-import or edit manually | Run a subscription update |
| Client location | Local server list | Assigned subscription group |
Identify the Format Before Choosing an Import Method
The quickest way to tell is to check the beginning of the text. A complete string starting with vmess:// or vless:// belongs in an entry such as “Import from clipboard”; a regular HTTPS URL usually belongs in “Subscription group settings.” Do not paste a subscription URL into the single-node import field, and do not save a VLESS share link as a subscription URL.
Copy the link in full. VLESS query parameters are commonly separated by &, and the text after the final # may be the node remark. Automatic line wrapping in chat apps or selecting only part of the text can leave out transport or security fields during import. Although VMess content is harder to read directly, its trailing characters must not be removed either.
Single-node structure example; not usable for connecting:
vmess://BASE64_ENCODED_CONFIG
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=edge.example.com&path=%2Fconnect#Example node
Subscription URL structure example:
https://sub.example.com/client/list
The VLESS fields in the example can be broken down into several parts: the user ID is before @, while the server and port follow it. security=tls indicates the security layer, type=ws indicates WebSocket transport, and host and path are transport parameters. Real configurations may also use TCP, gRPC, or other combinations. The client should parse the link as provided; do not change its transport type to another value.
- Starts with
vmess://: import it as a VMess single node. - Starts with
vless://: import it as a VLESS single node. - Starts with
https://and is clearly labeled as a subscription: add it to a subscription group. - One block of text contains multiple share links: use the client’s batch clipboard import option.
- You only have separate fields such as the server, port, and user ID: add a server manually instead of assembling the URI yourself.
Import VMess and VLESS Links in v2rayN
The steps below refer to the v2rayN 7.x desktop interface. Menu labels may differ slightly between minor releases, but the workflow is the same: put the complete share link in the system clipboard, then let the client parse it. When copying multiple links at once, place each link on its own line.
- Copy the complete
vmess://orvless://link without adding explanatory text before or after it. - Open v2rayN and go to “Servers” → “Import batch URLs from clipboard.”
- Check the newly added protocol, alias, address, and port in the server list. Confirm that the number imported matches the number copied.
- Select the node you want to use, press Enter, or use the context menu to set it as the active server.
- Go to “System proxy,” choose “Automatically configure system proxy,” then test with a program that needs network access.
A successful import does not mean the node is enabled. The v2rayN server list can store multiple configurations, but only the active server is passed to the current core. Browsers and other programs that follow the system proxy also require the system proxy to be in the appropriate state. If you changed the local port in the parameters, use the port shown under “Settings” → “Parameter settings” instead of assuming it is always 10808.
If a node reports an error immediately after import, first open the core log area rather than “Check for updates.” Look for address resolution failures, connection timeouts, authentication failures, and port conflicts. VMess user ID, alterId, and security parameters must match the server. VLESS transport, TLS, SNI, Reality public key, and other fields must also match exactly. Changing only the node remark will not affect the connection, but modifying protocol fields without guidance will change the result.
Add a Subscription and Update Nodes in v2rayN
The first step for importing a subscription is not “Import batch URLs from clipboard,” but creating a subscription group. The group stores a name, subscription URL, and update options, keeping refreshed nodes clearly organized. When using the same subscription on desktop and Android, use the same group remark on both devices to make update results easier to compare.
- Copy the complete subscription URL, then open v2rayN and go to “Subscription groups” → “Subscription group settings.”
- Create a new group, enter an identifiable name in the remark field, paste the address into the Subscription URL field, and save.
- Return to the main window and go to “Subscription groups” → “Update all subscriptions.” If your network requires an existing proxy first, choose the option to update through a proxy.
- Wait for the status bar to show the update result, then check that the new nodes belong to the group you just created.
- Choose an active server from the updated list, then enable the system proxy or TUN as needed.
During a subscription update, the client requests a remote list. If it times out, first check whether the current network can reach the subscription URL. If the returned content cannot be parsed, the address may have been copied incompletely, the response format may not be recognized by the current version, or the request may have returned a login page. Do not repeatedly add the same address, or the server list may fill with duplicate groups and nodes.
Recommended setup: use one subscription on desktop and Android
Desktop v2rayN
- Save the address in “Subscription group settings”
- Run a latency test after updating, then choose an active node
- Choose the system proxy or TUN based on the applications that need it
Android v2rayNG
- Save the same subscription URL and group remark
- Update the node list manually when needed
- Configure per-app proxying based on app requirements
Both clients obtain nodes from the same source, but active nodes, routing rules, and local proxy states are stored separately on each device and are not synchronized through the subscription.
A subscription update may add, remove, or rename nodes. If you manually change a subscribed node’s server parameters before updating, the remote content may overwrite those changes during the next update. If you need to keep an experimental configuration, copy it as an independent local node and change its remark. Routing rules, system proxy modes, and client preferences are usually not included in ordinary node subscriptions and must be configured separately.
Import from Clipboard and Add a Subscription in v2rayNG
v2rayNG uses the Xray core to handle common VMess and VLESS configurations. The steps below use the v2rayNG 1.10.x interface as an example; single-node links and subscription URLs still use different entry points. When starting a connection for the first time, Android will ask for permission to establish a local VPN connection. This authorization is required to send traffic through the client’s processing path.
Import a Single Share Link
- Copy the complete share link in another app.
- Open v2rayNG, tap “+” in the top-right corner, and choose “Import config from clipboard.”
- After importing, tap the new node to make it the active configuration.
- Tap the connection button on the main screen and confirm the system authorization prompt.
- Watch the connection status and live traffic. If access fails, open the logs to see the specific error.
Add and Update a Subscription
- Open the top-left menu and go to “Subscription group settings.”
- Tap “+,” enter a group remark, paste the subscription URL, and save.
- Return to the main screen, open the top-right menu, and select “Update subscriptions.”
- After the update finishes, check the node count, choose a node, and start the connection.
If the clipboard contains explanatory text along with the link, automatic detection may fail. Paste the content into a plain-text editor first, keep only the portion from the protocol prefix through the end of the link, and copy it again. Do not casually remove query parameters from a VLESS link, especially fields such as security, type, sni, pbk, sid, and path that relate to the server’s transport configuration.
v2flyNG uses the v2fly core and is better suited to setups with existing VMess and other compatible configurations. Before importing, confirm that the current core supports the protocol and transport parameters. For configurations containing newer VLESS extension parameters, prefer importing the original link in v2rayNG instead of deleting unknown fields just to make parsing succeed.
Subscriptions, Nodes, and Routing Are Separate Settings
A share link answers “how to describe one server configuration,” a subscription answers “how to retrieve and update configurations in bulk,” and routing answers “which requests go through which exit.” They operate at different levels. Importing a VLESS node does not automatically enable a global proxy, and updating a subscription does not automatically make the new node active.
In v2rayN, the system proxy mainly affects programs that follow the operating system’s proxy settings. TUN covers a broader range of traffic and may require additional system permissions. v2rayNG receives traffic through a local VPN interface and can use per-app proxying to choose which apps enter the processing path. Choose the mode based on the applications involved, not on whether the node uses VMess or VLESS.
Routing rules usually match domains, IPs, ports, or protocols, then decide whether traffic goes direct, through the proxy, or is blocked. A node connecting successfully only shows that the path between the client and server is established. Whether a particular website uses that node also depends on the current routing mode, DNS results, and rule order.
- Node will not start: check the server address, port, user ID, transport, and security parameters.
- Node is running but the browser bypasses the proxy: check the system proxy, TUN, or the Android connection status.
- Only some domains are inaccessible: check routing rules, DNS settings, and rule order.
- Subscription updated successfully but nodes did not change: confirm that you updated the current group, then compare node names and counts.
- The original node disappeared after an update: check whether it belongs to subscription management. When the remote list removes an entry, the local group changes with the update.
Change only one variable at a time while troubleshooting. Start with a basic routing mode and a node with complete parameters, then test the connection. After the path works, enable custom routing, remote DNS, or per-app proxying. Changing the node, core, DNS, and routing all at once makes it difficult to connect log errors to a specific change.
Common Questions and Error Handling
Most import problems fall into four categories: using the wrong entry point, copying an incomplete link, a failed subscription request, or importing a node successfully without enabling it. Confirm the text type and menu path first, then check the client status and core logs. This is usually faster than repeatedly deleting and reinstalling everything.
Why does updating fail after pasting a vless:// link into the subscription settings?
Because it is usually a single-node share link, not a subscription URL. Delete the incorrect group, copy the complete link, and in v2rayN use “Servers” → “Import batch URLs from clipboard”; in v2rayNG use “+” → “Import config from clipboard.”
The subscription updated successfully. Why are the nodes still the same?
First confirm that you updated the target group, then compare the node count, remarks, and server ports. If the remote content has not changed, the local list will look the same. If duplicate groups with the same name exist, delete the extras and update again.
The import succeeded, but webpages will not open. What should I do?
First set the new node as the active server, then check whether the system proxy, TUN, or the Android connection button is enabled. Next, check the logs for connection timeouts, domain resolution failures, or local port conflicts.
The subscription update timed out. Do I need to add the URL again?
Usually not. Make sure the address has no extra spaces, then try updating through a currently available proxy. If it still times out, record the response status and time instead of repeatedly adding the same subscription and creating duplicate groups.
Can the same subscription be used in v2rayN and v2rayNG?
Yes, as long as the response format and its protocol configurations are supported by both clients. Each client stores active nodes, routing, DNS, and proxy state independently, so updating one device will not automatically update the other.
If you have one VMess or VLESS configuration that will be used long term, import it directly from the clipboard. If nodes will be added, removed, or adjusted regularly, a subscription group is easier to maintain. Whichever method you choose, confirm the active node, proxy mode, and routing scope after importing. Together, these three settings determine whether traffic actually enters the intended path.