At a glance

Check the link prefix, then choose the right import option: vmess:// and vless:// links usually go through “Import from clipboard”; an HTTPS URL explicitly labeled as a subscription belongs in “Subscription Group Settings.” This guide is for first-time node imports, moving a setup to a new device, and cases where import succeeds but no nodes appear. You’ll learn to identify link types, check key fields, and troubleshoot updates and connections in order.

1. Single-node links vs. subscription URLs: what they contain and how they update

A share link is a portable bundle of node settings. It usually contains the address, port, user ID, transport, and TLS settings. When imported, the client creates a node entry locally; if the server changes its port, the old entry won’t update on its own. Get a new link and import it, or edit the settings using the parameters provided by the service operator.

A subscription URL is an entry point for retrieving a node list. The client requests the URL, reads the response, and parses the nodes. A list may contain one node or many. So the key distinction isn’t how many nodes appear after import, but whether the client saves a subscription source it can request again.

Subscription URL: maintain a node list

Recommended

Save the subscription URL from the service operator in a group, then fetch updated node settings when needed. This works best when the operator maintains the list; successful updates still depend on a valid URL, network access, and a supported response format.

Best for: long-term use, frequently changing node settings, and updating across multiple devices

Single-node share link: save one set of settings

Import one node at a time for temporary testing or manual management. Multiple share links can be imported in bulk, but bulk import does not create a subscription.

Best for: self-hosted servers, debugging a single node, or providers that only supply share links

Choose the import option by delivery type, not QR code appearance

A QR code is just a way to carry text. First check whether it decodes to a single-node link or a subscription URL, then use the matching import option. Don’t add just any HTTPS webpage URL to a subscription group.

2. vmess:// and vless://: what the links actually contain

A common VMess share-link format consists of vmess:// followed by a Base64-encoded JSON payload. Base64 is encoding, not encryption; anyone with the full link can usually recover its settings. Different tools may use different VMess share formats. The example below shows the common JSON format used by v2rayN and v2rayNG, not the raw structure of a core config file.

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

Here, v is the share-format version, not the client version; ps is the remarks field, add is the server address, and id is the user UUID. aid corresponds to alterId, which is typically 0 for modern VMess AEAD configurations. When net is ws, interpret host and path as WebSocket settings. These values must come from the actual service configuration—don’t fill them in based on guesswork.

VLESS share links usually use a URI format: the user ID appears before @, the server and port after it, and transport and security settings in the query string. This is a format example only; the domain and credentials are for demonstration and won’t connect.

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=node.example.com&path=%2Fexample&sni=node.example.com#demo-node
FieldExample valueWhat to check
encryptionnoneThe VLESS encryption field in this example; it does not mean outer TLS is disabled.
securitytlsSpecifies TLS for this example. Must match the server’s security settings.
typewsWebSocket transport; not a proxy mode such as “global mode.”
host / pathDomain / /exampleThe WebSocket Host and path, respectively. The path must match, including capitalization.
sninode.example.comThe server name used for the TLS handshake; it may differ from the connection address.
Content after #demo-nodeNode remarks; non-ASCII text or special characters usually need URL encoding.
443
Server port used in this example
36 characters
Example UUID, including hyphens
0
Common alterId value for modern VMess

3. On Android with v2rayNG: import single nodes and update subscriptions separately

v2rayNG uses the Xray core. The steps below refer to common menu labels in the Chinese interface; wording may vary slightly by version. The two tasks are to parse a node from the clipboard and to save a subscription before fetching its list. Make sure you copied the complete text, not a truncated chat preview.

Single node: “+” in the top-right → “Import from clipboard”

  1. Copy the complete vmess:// or vless:// link. Don’t include quotation marks, bullets, or explanatory text.
  2. Open v2rayNG, tap “+” in the top-right of the configuration list, then select “Import from clipboard.” For a QR code, select “Scan QR code” in the same menu.
  3. Check the new entry. Open its edit screen and verify the server address, port, user ID, transport, and TLS settings. The example’s 443 is the remote port, not the phone’s local listening port.
  4. Return to the list, select the node, then tap the connect button at the bottom. The first time you connect, approve Android’s VPN connection request.
  5. Test access after connecting. A successful import only means the text was parsed; it doesn’t confirm that the server is reachable or the credentials are valid.

Subscription: “Subscription Group Settings” → add a group → update

  1. Copy the subscription URL explicitly provided by the service operator, for example https://subscription.example.com/list?token=demo-not-a-real-token. This URL is only an example of the format.
  2. Open “Subscription Group Settings,” tap “+,” enter a label and the full subscription URL, then save. A label such as “Daily subscription” makes the source easy to identify.
  3. Return to the configuration list and select “Update subscriptions” from the menu. Saving the URL alone won’t create nodes; you must fetch the list at least once.
  4. When the update finishes, check the nodes in the relevant group. Select an entry before connecting. If you see an update error, check the message first instead of repeatedly tapping Update.

4. On desktop with v2rayN: import from “Servers,” update from “Subscription Groups”

v2rayN is available for Windows, macOS, and Linux. Menu locations vary across versions and layouts; the steps below use common Chinese menu labels as a reference. Single nodes are server entries, while subscriptions are group sources. Manage them separately so you don’t use the wrong control when updating or deleting later.

Import a share link

  1. Copy the complete link, then select “Import share links from clipboard” from the “Servers” menu. Put multiple links on separate lines; don’t insert a line break inside a link.
  2. Check that an entry appears in the server list. Double-click it to verify the address, port, UUID, transport protocol, and TLS settings. In particular, check that the path and server name weren’t lost during import.
  3. Select the node in the list and press Enter to set it as the active server, or use the corresponding option in the right-click menu.
  4. To let apps that follow the system proxy use this node, select “Automatically configure system proxy” from the system proxy menu. Choose the routing mode separately; importing a node won’t set your traffic-routing policy for you.

Import a subscription group

  1. Go to “Subscription Groups” → “Subscription Group Settings,” add a group, enter an alias and URL, then save.
  2. Select an update option from the “Subscription Groups” menu. Common options distinguish between “Update subscription (without proxy)” and “Update subscription (via proxy)”; punctuation and wording depend on your version.
  3. If the subscription is reachable directly, start with an update without a proxy. Use an update through a proxy only if the subscription site requires one and you already have a working node.
  4. Check the entries in the group and set an active server. Don’t treat a successful subscription update and a correctly configured system proxy as the same thing.

Use both devices: save and update the same source separately

Desktop: v2rayN
  • Save the source URL in “Subscription Group Settings.”
  • Choose whether to update through a proxy based on your network conditions.
  • Check the active server and system proxy status separately.
Android: v2rayNG
  • Save the same source, provided the service operator allows use on multiple devices.
  • Run “Update subscriptions” separately on the phone.
  • Select a node and confirm that the VPN service is running.

Using the same URL doesn’t mean the devices sync automatically. Update times, filters, and format support may differ, so the node lists may temporarily be out of sync.

5. Subscription response formats and updates: a list isn’t just any config file

A common subscription response is a list of share links, one per line, or the entire list encoded in Base64. Some providers return different formats depending on the client. If a URL opens in a browser, that only confirms the browser received a response. It might be a login page, an expiration notice, or a complete core JSON config—not necessarily a subscription that the client can parse.

Before updating, decide what needs fixing: the source or the local node

If the provider changes settings, update the original subscription first. For personal customizations, save a separate copy. Manual edits made directly to subscription entries may be overwritten next time you update.

Automatic updates only fetch the list again on a schedule; they don’t renew an account or fix the remote server. If the subscription site is temporarily unreachable, previously imported nodes can often still be tried, though whether they work depends on their settings and account status. Don’t delete your last working node in a hurry—a working fallback is essential while troubleshooting.

6. Common issues: check import first, then updates, then the connection

Troubleshoot one layer at a time. If a single node won’t import, check the text and parsing first. If a subscription update fails, check the URL, response, and access path. If a node exists but won’t connect, check server settings, the network, and core logs. The four issues below cover separate stages; there’s no need to reset everything right away.

Why does it say there’s no valid configuration after I copy a link?

Paste it into a local text editor and check that the prefix is complete, the chat app didn’t truncate the end, and no curly quotes or spaces were added. Don’t insert line breaks inside a single link. If the VMess payload is corrupted, get the link again from the provider; don’t guess the missing characters.

Why is the node list still empty after I save a subscription group?

Saving only records the source. Return to the main screen and run a subscription update, then check the result. If it reports success but no entries appear, make sure a group filter isn’t hiding them and confirm the provider returned a list compatible with your client—not a login page or another config format.

A subscription update timed out. Should I turn on the proxy right away?

First check that the URL is complete, the account is valid, and your network is working. In v2rayN, if you already have a working node, try “Update subscription (via proxy).” In v2rayNG, connect to a working node first, then check that the current routing and per-app settings aren’t bypassing the proxy for subscription requests before retrying. If no node works, simply turning on the proxy won’t solve the problem.

The node imported successfully, but webpages still won’t load. Why?

First confirm the active node, then check the remote port, UUID, transport path, and TLS settings. In v2rayN, check the system proxy; in v2rayNG, check that the VPN service is running. If the logs show a certificate, handshake, or authentication error, fix the relevant settings. Don’t hide a domain or SNI error by disabling certificate verification.

Three final checks before moving to a new device

Remember two workflows: import single nodes from the clipboard; save subscriptions in a group, then update them. Seeing nodes in the list is only the first step. Setup is complete only after the active node, proxy entry point, and a real connection test all work.