At a glance

First identify whether you have a single node configuration or a subscription URL that retrieves a node list, then choose the right import method. This guide is for first-time v2rayN and v2rayNG users. Learn to tell the two link types apart, import from the clipboard or a QR code, set up a subscription group, and troubleshoot issues at three stages: download, format parsing, and connection.

Share Links vs. Subscription URLs

vmess:// and vless:// are typically share links for a single node. They contain the server address, port, user ID, and transport settings. When imported, the client reads these parameters and creates a local node entry. It does not visit the address to download a configuration from a webpage.

Subscription URLs usually start with https:// and point to an endpoint that provides a node list. The client sends a network request, then parses the response. A subscription can return one node or several; the number of nodes is not a reliable way to distinguish a share link from a subscription URL.

ComparisonSingle share linkSubscription URL
Typical prefixvmess://、vless://https://
Where the content comes fromNode parameters are embedded in the linkFetches a list from a remote endpoint
When parameters changeUsually requires reimporting or manual editingUpdate the subscription to fetch the latest content
Best import methodImport from clipboard or scan a QR codeSet up a subscription group and update it
Sensitive dataCredentials such as UUIDsAccess token in the URL and the nodes it can retrieve

Managing subscription groups

Recommended

If you have a subscription from a trusted provider, save it in a dedicated group. When node addresses, ports, or the list change, update the subscription instead of pasting each entry again.

Best for: regular use, multiple nodes, and provider-side updates

Importing a single link

Creates one node entry that you can inspect for server and transport settings. The link does not update automatically, making it useful for checking whether a configuration works.

Best for: self-hosted nodes, temporary tests, and checking parameters individually

How to tell: focus on what the link does, not just how it looks

If you have an HTTPS URL, first make sure it is a subscription endpoint, not a login page or purchase page. If you have a protocol share link, use the node import option rather than entering it in the subscription URL field.

Link structure and fields to preserve

A common VMess share link consists of vmess:// followed by a Base64-encoded JSON object. Decoded, it commonly contains fields such as add, port, id, net, host, path, and tls. Base64 is an encoding, not encryption. These share-link fields are also not the same as the full runtime config.json structure.

A VLESS share link is closer to a URI: the user ID comes before @, followed by the server and port. Query parameters specify transport and security settings, and the text after # is usually the node label. The example below is for illustration only: the domain and UUID are sample data and cannot be used to connect.

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=node.example.com&path=%2Fgateway&sni=node.example.com#Example-WS-TLS
443
Example server listening port
36 characters
Example UUID length, including hyphens
1 entry
Node entry described by this share link

v2rayN: Import from Clipboard or QR Code

These steps use the common Chinese-language interface; button locations may differ between desktop and classic versions. First make sure you copied the complete protocol share link, not the title of a subscription webpage. Importing a node adds it to the configuration list; it does not enable the system proxy.

  1. Copy the link. Select the entire text, starting with vmess:// or vless://. For bulk imports, put one link on each line without numbering, quotation marks, or explanatory text.
  2. Import from the clipboard. In the v2rayN main window, select “Servers” → “Import bulk URLs from clipboard.” In some versions, this option is under the Add Server menu. You can also try Ctrl+V in the main window; do not paste into the search box or a parameter field.
  3. Check the entry. Verify the new node’s protocol, address, port, and label. Open its edit window to confirm the transport type, TLS, and server name are present. If the import succeeds but fields are blank, check the original link again.
  4. Set the active server. Select the node you want to test, then use the context menu to set it as the active server. Configure the system proxy or another traffic mode for your use case. Test one node first to avoid changing routing and DNS at the same time.

A QR code is just a way to carry text, not a separate protocol. On desktop, display the full code on screen, then select “Servers” → “Scan QR code on screen.” In some versions, this option is under the Add menu. Close any windows covering the code, leave clear space around it, and adjust its display size if needed.

v2rayN: Add a Subscription and Update Nodes

Subscription setup involves two separate actions: saving the URL and fetching its contents. If you add a subscription group but do not update it, the node list may remain empty. Use an easy-to-recognize group name, such as “Primary subscription,” and do not put access tokens in the label.

  1. Open “Subscription Group” → “Subscription Group Settings,” add a group, enter a name in the remarks field, paste the full subscription URL into the URL field, and save.
  2. Return to the main window, select the relevant group, then choose “Subscription Group” → “Update current subscription (without proxy).” Menu wording varies slightly by version; make sure the selected group is the one you just saved.
  3. Check the status or logs for download and parsing results. If the subscription endpoint is reachable only through an existing proxy, and you already have a working node, try “Update current subscription (through proxy).”
  4. After updating, check the node count, group, and labels, then set a node as the active server. A successful subscription update does not prove that every node can connect.

v2rayNG: Import on Android and Subscription Groups

In v2rayNG, single-node imports usually start from the “+” in the top-right corner of the main screen. The first time you connect, Android asks you to approve VPN access. This system permission is part of connecting, not importing a node.

  1. Clipboard: Copy the complete share link, open v2rayNG, and tap “+” → “Import from clipboard.” Return to the list, check the new entry, and select the node you want to use.
  2. QR code: Tap “+” → “Scan QR code” and grant camera access if prompted. Scan a code displayed on another screen. If your version can scan an image, you can also select a QR code image saved on your device.
  3. Subscription: Open “Subscription Group Settings” from the side menu, tap Add, enter a label and subscription URL, then save. Return to the main screen and choose “Update subscription” from the top-right menu. If the app lets you update the current group or all groups, select the appropriate option.
  4. Connect: Once a node appears in the list, select it and tap the connect button. Approve the system permission, then test access. Battery-saving settings may affect background operation; if the connection keeps dropping, check your system’s battery and background restrictions.

Use the Same Subscription on Both Devices

Desktop: v2rayN
  • Save the URL in Subscription Group Settings.
  • After updating, check the nodes and transport fields.
  • Set the system proxy to suit your desktop apps.
Android: v2rayNG
  • Add the subscription separately and update it.
  • Use an Xray core that supports the required parameters.
  • Approve the system VPN permission when connecting.

Each device saves and updates its own configuration. The active node, routing settings, and update times do not sync automatically. Follow any device and concurrent-connection limits set by the subscription provider.

Troubleshoot Import Failures and Empty Subscriptions

First identify which stage failed. Clipboard import problems usually involve the text or parser support. Subscription update failures usually involve the network request or response. If the node appears in the list but will not connect, check the server, transport settings, routing, and DNS.

“No valid configuration” after pasting: is the link broken?

First check that the link starts with a complete vmess:// or vless://. Remove quotation marks around the text and any chat-app numbering, but keep all parameters. If you copied an HTTPS subscription URL, use the subscription group option instead. If the complete text is still not recognized, check whether your client supports its transport and security parameters.

The subscription update timed out. Should I keep switching proxies?

Check your local network and system clock first, then make sure the subscription URL has not expired and includes any required token. If direct access fails, try updating through a proxy only if you already have a working one. Switching repeatedly to the same non-working proxy will not help; ask the provider whether the endpoint is available or if another URL can be used.

The update succeeded, but no nodes appeared. Why?

Clear any search or group filters and check which group is displayed. If it is still empty, confirm that the endpoint returns a node subscription supported by the client—not login HTML, a verification page, or another configuration format. A successful HTTP request only means a response was received; it does not guarantee that the response contains parseable nodes.

Why can my phone import a QR code that fails on desktop?

First determine whether the QR code was not recognized or was recognized but could not be parsed. For scanning problems, adjust the clarity and display size and remove anything covering the code. For parsing problems, check client versions and parameter support on both devices. Do not remove security, flow, or public key fields just to force an import; that changes the connection requirements.

A latency value appears after import, but my browser still cannot open pages.

Make sure the tested node is the active one, then check that the system proxy or mobile VPN is running. Some latency tests only check whether a TCP connection can be established; they do not verify the full protocol handshake or web access. Check real requests and runtime logs, rather than relying on one latency reading to confirm the configuration works.

Subscription Updates and Credential Safety

Treat share links, QR codes, and subscription URLs as connection credentials. Long strings in subscription URLs often identify an account, and a QR code may contain a UUID directly. Posting a QR code screenshot in a public forum is no safer than posting the link. When sharing diagnostic screenshots, hide credentials, the full subscription URL, and personal account details.

Once configured, follow a clear checklist: confirm the import type, check the node fields, select the active node, enable the traffic mode you need, and verify real-world access. This helps you distinguish a link entered in the wrong place from a failed subscription download or a node connection issue.

Download a Client or Read the Import Guide

For desktop, see v2rayN. For Android, see v2rayNG and v2flyNG. Choose a client based on the node’s protocol and core requirements, then follow the guide to import it and configure the connection.