Check the link prefix, then choose the right import method: vmess:// and vless:// links usually describe a single node and can be imported from the clipboard. Add an HTTPS subscription URL provided by your service to a subscription group, then update it. For first-time v2rayN or v2rayNG users, this guide explains how to identify link types, check key fields, and tell a successful import from a working connection.
First, distinguish single-node links from subscription URLs
A single-node share link packages connection settings into a string, usually including the server address, port, user ID, transport, and security settings. Copying a vmess:// or vless:// link usually imports one node. Some clients can also import multiple supported links at once, but that still does not create a subscription.
A subscription URL, by contrast, is a network address used to retrieve a list of configurations. The client requests the URL and parses the response from the service to build a node list. A subscription can contain one node or many; the key difference is whether the client retains a source it can request again for updates.
Subscription URL
RecommendedAdd it to a subscription group and fetch the nodes again when you update. If the service changes an address or port, another update can usually sync the changes without rebuilding each node manually.
Best for: Users whose service explicitly provides a compatible subscription and who need to maintain a node list over time.
Single-node share link
Imports the current settings from your clipboard. They won't change automatically if the service updates its configuration. If the old settings stop working, get a new link or edit them manually.
Best for: Temporary testing, self-hosted nodes, or a single fixed connection.
Don't assume every https:// address is a subscription. Login, plan, and help pages also use HTTPS, but they return web pages—not configuration data for your client. Copy the link explicitly labeled as a subscription URL on your provider's site, and make sure it's compatible with your client. Don't just copy the browser's address bar.
Bottom line: choose the import method by link type, not by node count
For a vmess:// or vless:// link, try importing it from the clipboard. For a subscription URL provided by your service, create a subscription group. Pasting a subscription URL into the single-node import field is a common reason the client reports that it couldn't find a configuration.
Inside vmess://: Base64 is an encoding, not encryption
A common VMess share format puts Base64-encoded data after vmess://; decoding it usually reveals JSON. This is a convention for exchanging configurations between clients, not a complete V2Ray core configuration file, and implementations may differ. The prefix alone doesn't tell you the transport, and Base64 does not encrypt or protect account details.
Here's an educational example decoded from a common format. It uses a reserved example domain and does not connect to a service. Use it to identify fields; you can't import this JSON directly as a vmess:// link.
{
"v": "2",
"ps": "VMess-WS-TLS example",
"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": "/gateway",
"tls": "tls",
"sni": "node.example.com"
}
addandportare the remote server address and port, not the local proxy listening address.idis the user ID;psis only a display label. Changing the label does not alter the server authentication details.aidis the alterId field in the legacy format. Modern VMess AEAD configurations usually use0; don't change it to another value just to try to “increase speed.”net: "ws"means WebSocket.pathandhostmust match the server's requirements.tlsandsniaffect the TLS connection. The server address, WebSocket Host, and TLS server name serve different purposes and don't necessarily match.
If the connection fails after import, open the node editor and check these fields first. A truncated link, an inserted line break, or straight quotes changed to typographic quotes can all prevent parsing. Don't submit real links to public online decoders. Check the settings in your client, and hide the user ID and real server details if you ask someone for help.
Inside vless://: query parameters set transport and security
VLESS share links often use a URL-like format: the user ID comes before @, the remote address and port follow it, transport parameters come after the question mark, and a label follows the hash. This example is also for instructional use only and won't connect; it shows VLESS over TCP with TLS.
vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=node.example.com#VLESS-TLS-demo
| Field | Example value | What to check |
|---|---|---|
| Remote port | 443 | It must match the server's listening port. Don't replace it based on what you think is a common port. |
| encryption | none | This example does not use encryption at the VLESS protocol layer; that doesn't mean TLS is disabled. |
| security | tls | Indicates that TLS is enabled. Other security methods require their corresponding parameters. |
| type | tcp | Specifies the transport type in this share format. Changing the label alone won't change the server's transport. |
| sni | node.example.com | Used as the TLS server name. It should match the value provided by your service. |
WebSocket links also use parameters such as path and host. With REALITY, check the public key, server name, short ID, and client compatibility. Don't mechanically reuse parameters from a TLS example with another security method. Special characters in parameters are usually URL-encoded—for example, a slash in a path may appear as %2F. Keep the complete original link so the client can parse it.
Importing in v2rayN: clipboard links and subscription groups
On desktop, make sure you have the complete link before opening the client. Menu labels may vary slightly by version; the key is to find the separate options for importing from the clipboard and configuring subscription groups.
- Import a single node: Copy the complete vmess:// or vless:// link, then in v2rayN choose “Servers” → “Import bulk URLs from clipboard.” You can also check whether the command in the main window shows the
Ctrl+Vshortcut. - Check the node: Make sure it appears in the list, then open the editor and verify the address, remote port, transport, and TLS settings. Don't check only whether the label looks right.
- Add a subscription: Go to “Subscription Group” → “Subscription Group Settings,” add a group, enter a label, paste the subscription URL from your service into the address field, and save.
- Fetch the list: From the “Subscription Group” menu, choose the update command for the group. Common versions distinguish between “Update current subscription (without proxy)” and “Update current subscription (through proxy).” Choose based on whether your current network can reach the subscription service.
- Connect: Select the node you want and set it as the active server, then configure the system proxy as needed. Importing or updating a node does not, by itself, mean your app traffic is being routed through it.
Updating through a proxy requires an existing, working proxy connection. If the list is empty during initial setup, choosing an update through a proxy may not help. First check whether the subscription URL is reachable on your current network, then try updating through an available node if needed. Don't repeatedly delete all your settings just to clear an error.
These three numbers belong to different layers. The remote 443 connects to the server; the local listening port accepts connections from local apps; and alterId is a VMess configuration field. If an app needs the local proxy settings entered manually, check the actual listening port and protocol under “Settings” → “Parameter Settings.” Don't assume 10808 is the default in every version.
Importing in v2rayNG and managing subscriptions on both devices
The Android v2rayNG client uses the Xray core, but whether it can import a share link completely depends on the version, parameter format, and supported features. v2flyNG uses the v2fly core; that doesn't mean it supports every Xray-specific parameter. Check which clients your service says are compatible before using a link.
- Import a single node: Copy the link, open v2rayNG, tap “+” in the top-right corner → “Import from clipboard,” then check that the node appears in the list.
- Add a subscription: Open “Subscription Group Settings” in the side menu, tap “+,” enter a group label and subscription URL, then save.
- Update: Return to the main screen, open the menu in the top-right corner, and select “Update subscriptions.” Wait for the result, then check that the nodes appear in the intended group. If your version offers an option to update all groups, make sure you've selected the scope you want.
- Connect: Select a node and tap the start button. The first time, grant VPN permission when prompted. Then test with an app you actually need to use instead of relying on the icon changing.
Maintenance plan: use the same subscription, update each device
Desktop: v2rayN
- Save the subscription URL in Subscription Group Settings.
- After updating, check that the active node is still available.
- Configure the system proxy or another traffic-routing method as needed by your apps.
Android: v2rayNG
- Confirm that your service allows multiple devices and supports the subscription format.
- Add the subscription separately and update it on this device.
- Check that VPN permissions and per-app settings match your needs.
Sharing a subscription URL does not mean real-time syncing: each device has its own update schedule, active node, routing, and proxy settings.
Subscription updates refresh the list; they don't fix connections automatically
A subscription update requests fresh content from the server, then the client updates nodes according to its own group settings. Existing nodes may be replaced, renamed, or removed, and manual edits to subscription nodes may be overwritten by the next update. To keep a self-hosted configuration long term, put it in a separate manual group and save a copy of the original settings.
- Check the response type: If parsing fails, the response may be a login page, an error page, or a different configuration format—not necessarily a subscription where every node is broken.
- Check your credentials: Subscription URLs often contain access tokens. An expired or reset token, or a change in permissions, can cause an update to fail. The old URL won't turn into a new one by itself.
- Check the network path: Being able to open regular websites doesn't mean you can reach the subscription domain. Direct updates and updates through a proxy use different routes, so check them separately.
- Check the active node: After a successful update, verify which node is active. You may still have an old entry selected even if it has been removed.
Troubleshooting: check import, updates, and connectivity in order
Recognizing a link, fetching nodes, connecting, and routing app traffic are separate steps. Find where the process fails and check the relevant settings. This is usually more effective than changing the protocol, DNS, port, and proxy mode all at once.
Why does the client say there’s no configuration to import?
Check that the link starts with vmess:// or vless://, then make sure it doesn't include quotes, extra instructions, or an ellipsis. If you copied an HTTPS subscription URL, add it under “Subscription Group Settings” and update the group instead of pasting it into the single-node import field.
Why are the expected nodes missing after a successful subscription update?
Switch to the right group or clear any list filters, then check the number of parsed entries in the update log. If the response is empty, ask your service to confirm your account status and subscription format. Don't mistake a login page URL for a subscription, or change the remote port just because the list is empty.
Why won't websites load after importing a node?
First, make sure the node is enabled and the core started successfully. On desktop, check the system proxy and whether the app follows that setting. On Android, check that the VPN connection is active and that per-app rules haven't excluded the app. Then look for DNS, TLS, or connection timeout errors in the logs.
Are QR codes and text links different kinds of nodes?
A QR code is just a way to encode text; it may contain a single-node link or a subscription URL. Identify the content and choose the corresponding import method. If you can't read it, ask the provider for the original text rather than relying on a low-resolution screenshot that may be incomplete.
Is VLESS always faster than VMess?
You can't tell from the protocol name alone. First connect using a complete configuration that matches the server, then test actual access on the same network and at roughly the same time. Network congestion, transport, and server load can all affect results; changing the link prefix won't improve them.
After setup, check three things: the import method matches the link type, the node settings are complete, and your traffic-routing method is clear. Maintain a subscription if you need to sync node changes; save a single-node configuration for a fixed connection. You can use both, but keep them in separate groups to avoid confusing old entries or overwriting manual changes during updates.