At a glance

Choose the right import option based on the link prefix: import vmess:// and vless:// links as nodes, and add provider-issued HTTPS subscription URLs to a subscription group. This guide walks first-time v2rayNG and v2rayN users through identifying links, importing from the clipboard or a QR code, updating subscriptions, and troubleshooting—so you don’t mistake a subscription URL for a node or assume a successful import means the connection works.

1. Single-node links vs. subscription URLs: the difference is how they update

A single-node share link contains one server configuration, usually including the address, port, user ID, and transport settings. After import, the client saves that configuration as it was at the time. If the provider later changes the port or certificate domain, the standalone node won’t update automatically. You can import multiple nodes by copying several share links at once, but that doesn’t create a subscription.

HTTPS subscription URL

Recommended

The client requests configuration data from the URL and refreshes the nodes in that subscription group. Use this when the provider explicitly offers a subscription and maintains a node list over time.

Best for: long-term use, managing multiple nodes, and provider updates to settings.

vmess:// or vless:// single-node link

The link itself contains the node parameters. Use it to test one server or manually manage a small number of configurations; there’s no need to create a subscription group first.

Best for: temporary testing, self-hosted servers, or receiving a single node configuration.

HTTPS is a transport protocol for a URL; it doesn’t mean the URL is a subscription. Account dashboards, login pages, and setup guides can also use HTTPS. Copy the URL the provider labels as a “subscription URL,” not the dashboard address in your browser. A subscription response may contain a Base64-encoded list of share links or use another format. Whether the client can read it depends on the formats it supports.

Bottom line: use a subscription when you need ongoing updates

If your provider offers both “copy node” and “copy subscription,” save the subscription URL to a subscription group for everyday use. Import a standalone node separately only when you need to test it on its own.

2. Understanding vmess:// and vless:// link parameters

A common VMess share link starts with vmess:// followed by a Base64-encoded JSON object. Encoding is not encryption; after decoding, you’ll typically see fields such as add, port, id, net, and tls. The example below shows the decoded structure. Don’t import this JSON directly as a vmess:// share link or use it as a complete core configuration.

{
  "v": "2",
  "ps": "VMess-WS-TLS example",
  "add": "node.example.com",
  "port": "443",
  "id": "d34db33f-1234-4abc-8def-0123456789ab",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "edge.example.com",
  "path": "/ws",
  "tls": "tls",
  "sni": "edge.example.com"
}

Here, add is the server address, host is the Host header used by the WebSocket request, and sni is the server name used during the TLS handshake. These values can differ, but must match the server setup. aid is the VMess alterId field, not a port. The example’s 0 is a common value in modern configurations; don’t change provider-supplied settings based on guesswork.

VLESS share links usually include their parameters directly in the URI. The example below shows a TCP connection with TLS only; the domain and UUID are illustrative and don’t provide a working service.

vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=edge.example.com#VLESS-TLS

3. Import nodes into v2rayNG from the clipboard or a QR code

To use v2rayNG on Android, copy the complete link first, then return to the main screen. The steps below use common labels from the Chinese interface; menu wording can vary by version. Look for options such as “Import from clipboard” or “Scan QR code.”

  1. Copy the link: Copy everything from vmess:// or vless:// to the end. Leave out quotation marks, explanatory text, and Markdown fences from chat messages. A long link wrapping on screen is fine, but actual spaces or line breaks inserted into a link can break it.
  2. Import from clipboard: On the v2rayNG main screen, tap “+” in the upper-right corner → “Import from clipboard.” Allow clipboard access if prompted, then check that the new node appears in the list. When importing multiple standalone links, they’re usually arranged one per line.
  3. Check the configuration: Open the node editor and compare the address, port, user ID, transport, and TLS settings. Verify them first; don’t change values at random just to make a test pass.
  4. Scan a QR code: Tap “+” → “Scan QR code,” grant camera access, and scan the complete code displayed on another screen. Keep the full code and its quiet zone in view, avoid glare, and fit the entire pattern inside the camera frame.
  5. Connect and test: Select the new node and tap the connect button on the main screen. Approve Android’s VPN connection request the first time, then open a known-working HTTPS page.

A QR code is just another way to represent text; it doesn’t determine what that text contains. Scanning a vless:// link will usually add a node. If the code contains an HTTPS URL, check whether it’s a subscription or an ordinary web page—“scan successful” doesn’t mean a usable node was added. If the QR code is on the same phone, use the provider’s copy-link option when possible. If the scanner can read images, you can also select one from your gallery.

443
Server TLS port used in the example above
10808
Common local SOCKS listening port; check your settings
1 link
Each complete share link usually corresponds to one node

The server port and local listening port refer to different things. In a share link, :443 is the remote server port. The local SOCKS port is for apps on your device. Don’t change the link’s port to 10808, or assume a node is invalid because your local port isn’t 10808.

4. Import into v2rayN and check both clients’ settings

In the desktop version of v2rayN, open the “Server” menu and select “Import bulk URLs from clipboard.” The common shortcut is Ctrl+V. Make sure the main window is focused before importing; if the cursor is in an edit field, the shortcut may paste text there instead. After import, select the node you want from the server list and set it as the active server.

Workflow: check the same link in both clients

v2rayN for desktop
  • “Server” → “Import bulk URLs from clipboard.”
  • Check the address, port, and transport type in the list.
  • To test in a browser, select “Set system proxy automatically” from the system proxy menu.
v2rayNG for Android
  • “+” → “Import from clipboard.”
  • Check that the TLS, SNI, and transport settings are complete.
  • Connect and approve the Android VPN request.

You can import the same node into both clients. Routing, per-app proxy settings, and local listening settings aren’t automatically synced through the share link.

A successful import only means the client recognized the configuration. In v2rayN, starting the core without setting the system proxy may leave a browser that relies on the system proxy outside the node. Some apps don’t use the system proxy and need to be configured separately. In v2rayNG, apps excluded by per-app proxy settings won’t use the proxy as expected. Before testing, check which route the target app uses.

5. Save the subscription URL before updating

A subscription connects a URL to a group of nodes. Pasting an HTTPS subscription URL into the single-node import option may result in an “unrecognized” message, though some versions may route it to subscription handling. To make it easier to verify, add subscriptions through the subscription settings instead.

  1. v2rayNG: Open “Subscription group settings” in the side menu, tap Add, and enter an easy-to-recognize name and the subscription URL provided by your service. Save it, return to the main screen, and select “Update subscription” from the upper-right menu. If you have multiple groups, check whether you’re updating the current group or all groups.
  2. v2rayN: Open “Subscription groups” → “Subscription group settings,” add a group, and enter the subscription URL. Save your changes, return to the “Subscription groups” menu, and choose the appropriate update option.
  3. Choose how to update: Common v2rayN menus offer “Direct” and “Through proxy” options. Try a direct connection first if the subscription URL is accessible that way. If it times out and you already have a working node, try updating through the proxy. In v2rayNG, use whichever update options your current version provides.
  4. Check the result: Review the update message, node count, and group. Then check whether the active node still works. If the provider removed or replaced a node, you may need to select a different one.

When an update fails, start by identifying the error. A timeout usually means the request didn’t finish in time. For HTTP 401 or 403 errors, check the token, account permissions, or access restrictions. If the response is a login page, make sure you copied the subscription endpoint, not the dashboard URL. Don’t keep retrying; first check whether the provider limits request frequency.

6. Common import errors and connection problems

Why does importing a vless:// link show a format error?

Copy the plain text again and check that the prefix is intact, the UUID is complete, the address is followed by the correct port, and all parameters after the question mark are included. Some chat apps only recognize the first part as a clickable link. Use “Copy full text” instead of copying just the link label.

The QR code scanned, but no new node appeared. Why?

Check what the scan result contains. An ordinary web URL can’t be used as a node; add a subscription URL to a subscription group instead. If the QR code is too dense, use the original image or increase its display size on the other screen. Don’t keep scanning a compressed thumbnail.

The node imported, but web pages still won’t load. What should I check?

Check the logs for authentication errors, TLS handshake failures, or connection timeouts. Verify the user ID, server port, SNI, and WebSocket path one by one. For VMess, check the system clock too. In v2rayN, check the system proxy. In v2rayNG, check that the VPN is connected and the target app isn’t excluded.

Why did my manual node changes revert after a subscription update?

A subscription refresh rebuilds or updates nodes based on the provider’s response. Record any settings you want to customize, then create a standalone node to preserve them. Before the next update, make sure that node isn’t part of a subscription group that will be refreshed.

Can I send someone my subscription QR code to troubleshoot it?

Don’t send the original image. A QR code can reveal the full subscription URL, including its access token. For help, share sanitized error logs, your client version, and the steps you took in the menus. If the full URL has already been exposed, reset the subscription token in your provider’s dashboard.

7. What to check after importing

Don’t change DNS, routing, transport, and ports all at once. Tackle one issue at a time to tell whether the link is corrupted, the subscription failed to load, or the node imported but traffic isn’t going through the proxy. Follow the steps below; it’s usually easier to find the cause than by repeatedly deleting and reinstalling the client.

Client setup and your first import

If you haven’t installed a client yet, choose v2rayN or v2rayNG for your system. For step-by-step instructions, see the getting started guide.

Go to downloads View setup guide