How to Import vmess:// and vless:// Links: Single Nodes vs. Subscription URLs

Learn how VMess and VLESS share links are structured, how to import a single node from your clipboard, and how subscription groups work.

At a glance

For a vmess:// or vless:// link, use “Import from clipboard.” For a subscription URL provided by your service, add a subscription group and update it. This guide is for first-time v2rayN and v2rayNG users. It covers link formats, where to import them, what updates change, and how to troubleshoot failures. Identify what you have before choosing an action: a subscription webpage is not a node, and a single-node link is not a subscription.

First, know the difference: a share link is a configuration snapshot; a subscription URL is an update source

A single-node share link packages the server address, port, authentication details, and transport settings into one text string. The client parses it and saves a node locally. It reflects the configuration at the time it was exported. If the server later changes its domain, port, or credentials, the saved entry will not update automatically just because you imported the link earlier.

A subscription URL, on the other hand, lets the client retrieve a set of configurations and usually starts with HTTPS. When you update it, the client fetches the response and parses supported formats into nodes. A subscription may contain one node or many. The number of nodes does not define a subscription; the ability to fetch the configuration again is the key difference.

Subscription group: keep configurations up to date

Recommended

If your provider offers a subscription, save it as a separate group. You can update the group later instead of copying each node again. This is recommended for ongoing use; it does not mean subscriptions are inherently safer than single nodes.

Best for: ongoing use, multiple nodes, or frequent server-side changes

Single-node link: import one configuration quickly

Import a complete link in one step—handy for a quick test or troubleshooting a specific configuration. If its settings change, import it again or edit it to match the server details.

Best for: quick tests, a self-hosted single node, or sharing one specific node

How to tell: check how the provider describes the link

An HTTPS prefix alone does not make a URL a subscription. Login pages, purchase pages, and subscription endpoints can all use HTTPS. Use the link explicitly labeled as a subscription URL and make sure its format works with your client.

vmess:// format: Base64 encoding is not encryption

A common VMess share-link format consists of vmess:// followed by Base64-encoded JSON. The example below shows the decoded structure; it is not an importable share link or a complete core configuration. Export tools may use different conventions, so use a compatible link generated by your provider whenever possible.

{
  "v": "2",
  "ps": "Example node",
  "add": "node.example.com",
  "port": "443",
  "id": "7d9d2f80-52a1-4c8e-9c76-5c0d52dd7441",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "node.example.com",
  "path": "/proxy",
  "tls": "tls",
  "sni": "node.example.com"
}

vless:// format: query parameters are part of the configuration

VLESS share links typically use a URI format: the user ID comes before @, followed by the server, port, query parameters, and a node label. The link below illustrates the fields only. The domain and credentials are examples, so it cannot be used to connect.

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=node.example.com&path=%2Fproxy&sni=node.example.com#Example-WS
443
Example server port; node ports are not all the same
36 characters
Standard hyphenated length of an example UUID

encryption=none does not mean the entire connection lacks transport protection. It describes this VLESS setting; the example separately specifies security=tls. type=ws means WebSocket, and path=%2Fproxy decodes to /proxy. The label after the hash, Example-WS, is just a remark and does not determine the server address.

Import from clipboard: desktop and Android instructions

Before importing, copy the entire link on a single line. Don’t include explanatory text, quotation marks, or ellipses from a chat message. Interface labels may vary by version; the steps below refer to common Chinese-language interfaces. If the wording differs, look for the equivalent command that mentions the clipboard and importing.

  1. v2rayN desktop: Copy the link, return to the main window, then choose “Servers” → “Import bulk URLs from clipboard.” Some versions show “Import from clipboard” instead; you can also use Ctrl+V if supported. Check the import count and confirm the new entry appears in the list.
  2. v2rayNG for Android: Copy the link, then tap “+” in the top-right corner of the main screen → “Import from clipboard.” If Android asks for clipboard access, verify the source and allow access for this operation.
  3. Check the node settings: Open the new entry for editing and review the server, port, transport, and TLS settings. Verify the parameters before testing the connection; a successful import does not mean the connection works.
  4. Start the proxy: Select a node and start it. In v2rayN, configure the system proxy or another traffic-routing mode for your use case. The first time you start v2rayNG, you’ll usually need to approve Android’s VPN permission prompt.

VMess and VLESS are protocol names; v2rayN and v2rayNG are client names. They are not interchangeable. v2rayNG uses the Xray core, while v2flyNG uses the v2fly core. Similar client names do not guarantee support for the same protocol and transport combinations. Check that the required server features are supported by the core you’re using.

Add a subscription: save the URL, then update it

Subscription management usually involves two steps: save the source and fetch its contents. If you save a subscription URL but don’t update it, the group may remain empty. Subscription links often contain tokens, and the query string is part of the authentication details. Don’t remove everything after the question mark to “clean up” the URL.

  1. v2rayN: Go to “Subscription groups” → “Subscription group settings,” add a group, enter a name and the subscription URL, then save. Return to “Subscription groups” and choose the appropriate update command. Whether to fetch through the proxy depends on your current network.
  2. v2rayNG: Open “Subscription group settings” from the top-right menu, add a subscription, and save it. Then return to the main screen and select “Update subscription.” Menu locations may change between versions; the important distinction is between editing a subscription and actually updating it.
  3. Check the result: Review the update status, group, and number of added nodes. A URL opening in a browser does not guarantee that its response is a subscription format your client can parse.
  4. Keep updates organized: Create separate groups for different sources. Back up important manual configurations before updating, and don’t assume that local changes such as renaming a node or changing its port will survive the next update.
What to checkSingle-node share linkSubscription URL
Typical prefixvmess://、vless://https://; verify what it’s for
What to doImport from clipboardSave as a subscription group, then update
When the source changesImport again or edit manuallyFetch it again; changes depend on the subscription response
Common failure pointsTruncated link, corrupted encoding, or unsupported parametersNetwork timeout, expired token, or incompatible response format

Using multiple devices: sharing a subscription does not sync every setting

You can add the same subscription URL on each device allowed by your provider’s terms, but each client saves and updates it independently. Updating on Windows does not trigger an update on Android. Routing rules, system proxy settings, per-app proxy settings, and the currently selected node are not automatically matched just because both clients use the same subscription.

Setup: share the node source, manage traffic settings separately

Desktop: v2rayN
  • Create a separate subscription group for each service provider.
  • After updating, check that your selected node is still available.
  • Configure the system proxy and routing rules separately.
Android: v2rayNG
  • Add the same subscription URL, if your provider allows it.
  • Update it on this device and confirm the VPN permission.
  • Check per-app proxy settings and background restrictions separately.

Subscriptions provide node configurations; they do not sync routing, permissions, or runtime status between devices. Whether both node lists match also depends on update times and client compatibility.

To send a temporary node to another device, share that node’s link or QR code instead of exposing the entire subscription. A QR code is just another way to encode text: import a single-node link as a node, or follow the subscription-management steps if it contains a subscription URL.

Troubleshooting: distinguish parsing errors from network failures

Why does the client say the link contains no valid configuration?

First, make sure the link starts with a complete vmess:// or vless:// prefix. Check for ellipses, full-width punctuation, and extra quotation marks. Copy the original link again using the button on the source page. If you copied an HTTPS subscription URL, add it through a subscription group instead of repeatedly trying to import it as a single node.

The subscription update succeeded, but no nodes appeared. Why?

Check whether the response is a login page, an expiration notice, or a configuration format your client does not support. Ask your provider which subscription output format to use, then check whether a group filter is hiding the nodes. A completed request only means the fetch finished; it does not guarantee the response contains a valid set of nodes.

A subscription update timed out. Should I enable “Update through proxy”?

If your current network cannot reach the subscription endpoint directly but you have a working proxy, enable updates through the proxy and try again. If every existing node is down, using one of them to fetch the subscription may still time out. In that case, test a direct connection again or switch to a working network rather than toggling the same setting repeatedly.

The node imported, but connecting fails with a TLS or authentication error. What should I check?

Check the server address, port, user ID, transport, and SNI in that order, and make sure the device clock is accurate. The example uses port 443; use the port specified by your server. Disabling certificate verification is not a routine fix. First check that the domain, certificate, and server configuration match.

I accidentally posted a subscription link in a public group. Is deleting the message enough?

Deleting the message cannot revoke a token that someone may already have copied. Reset the subscription URL in your provider’s management page, rotate node credentials if needed, and update the saved URL on each device. For troubleshooting screenshots, show only the error and non-sensitive fields—never the full URL, user ID, or QR code.

The decision process is simple: first identify whether you have a node link or a subscription, then confirm the import or update succeeded, and finally check the connection and traffic routing. Keeping these steps separate prevents mistakes like changing protocols to fix a copying issue or repeatedly importing a node when the system proxy is simply off.

Download V2Ray clients