When you receive a link, first determine whether it contains a single node configuration or points to a subscription that provides a list of configurations. This guide covers how to identify each format, import nodes on desktop and Android, scan QR codes, update subscriptions, and troubleshoot connection issues. It’s for anyone setting up a client for the first time. By the end, you’ll know which import option to use and how to tell a successful import from a working connection.
1. Share Links vs. Subscription URLs: The Key Difference Is How Configurations Are Retrieved
vmess:// and vless:// are common prefixes for node share links. A link carries details such as the server address, port, credentials, and transport settings, and typically represents one node. After import, the client saves that configuration. If the provider changes the server or connection settings, the old link won’t update itself.
Subscription URLs usually start with https://. The client fetches a set of configurations from the URL and adds them to a subscription group. A subscription is a way to distribute configurations, not a proxy protocol. It can contain nodes using different protocols, and whether they can be imported depends on the client’s support for the response format and protocols.
Subscription URL: Keep Fetching the Node List
RecommendedSave the URL in subscription management, then use “Update subscription” to fetch the list again later. This works well for ongoing use when the provider explicitly offers a compatible subscription. Check separately whether the provider updates its content and whether the client supports scheduled updates.
Best for: Long-term use, managing multiple nodes, or providers that change server routes
Single-Node Share Link: Save a Configuration Once
Import from the clipboard or a QR code, then select the node. Without a linked subscription, the client can’t know when the provider changes the configuration. Re-import the link or edit the settings manually to apply any changes.
Best for: Testing one node, moving a specific configuration, or temporarily troubleshooting a connection
Quick check: Identify the link type before choosing an import option
If it starts with vmess:// or vless://, import it as a node. If the provider identifies it as a subscription URL, add it through subscription management. A regular web address starting with HTTPS isn’t necessarily a subscription a client can read.
2. VMess and VLESS Link Formats: Parameters You Must Keep
A common VMess share link uses vmess:// followed by a Base64-encoded JSON object. Decoding it may reveal fields such as add, port, id, net, host, path, and tls. Export formats vary between tools, so the prefix alone doesn’t guarantee compatibility with every client version.
VLESS share links typically use a URI structure: credentials and the server address come first, query parameters follow the question mark, and a node label usually follows the hash. VLESS itself doesn’t provide transport encryption. Check the full configuration to see whether TLS, REALITY, or another transport protection method is enabled. The name “VLESS” alone doesn’t mean the connection is encrypted.
| Configuration details | Common fields | What to check after import |
|---|---|---|
| Server and port | add, port, or the URI host and port | Use the remote port provided by the service provider; don’t replace it with a local proxy port. |
| Credentials | VMess id or the VLESS user ID | Keep the full value with no spaces. Don’t share complete credentials in logs. |
| Transport | net or type | TCP, WebSocket, and other transports must match the server configuration. Don’t swap them arbitrarily. |
| Domain and path | host、path、sni | The WebSocket Host and TLS server name are separate settings; check them individually. |
| Security and flow control | security、flow、pbk、sid | Keep the provider’s settings. For REALITY, also confirm that the core supports the required parameters. |
Copy the entire link, including all query parameters. Chat apps may also copy line breaks, Chinese punctuation, or surrounding text. If you see “no valid configuration,” copy the original text again instead of trying to fix it by deleting everything after the question mark. Preserve percent-encoding in the URI, especially in the path and label.
3. v2rayN: Import from the Clipboard, an On-Screen QR Code, or a Subscription
These steps use the labels found in common Chinese-language interfaces. Menus may move between versions and desktop platforms. If you can’t find an item with the same name, look for the clipboard import, QR code scanning, or subscription group feature. Import the configuration and check the node list before enabling the proxy, so you can distinguish import issues from traffic-routing issues.
- Copy a single-node link. Copy the complete
vmess://orvless://link, return to the v2rayN main window, and select “Import batch URLs from clipboard” from the “Servers” menu. If the menu shows a keyboard shortcut, you can use the one displayed in your version. - Check the import result. Make sure the node appears in the list, then open its edit window to check the server, remote port, transport, and security settings. Identical names don’t mean identical configurations, so watch for duplicates when importing again.
- Scan an on-screen QR code. Display the full QR code on your screen, then choose “Scan QR code on screen” from the “Servers” menu. Leave clear space around the code and keep its corners unobstructed. If your platform doesn’t offer a scanning option, ask the provider for a text link instead.
- Add a subscription URL. Go to “Subscription groups” → “Subscription group settings,” create a group, enter a label and subscription URL, and save. Then select the update option from the subscription groups menu. Saving the URL alone usually won’t populate the node list.
- Choose an active node. After the update, select the node you want and set it as the active server. To route traffic from apps that follow system proxy settings, select “Set system proxy” → “Automatically configure system proxy” from the main window or tray menu.
“Automatically configure system proxy” doesn’t route all traffic from every program. Some apps ignore system proxy settings, while others use their own proxy configuration. Test first with a browser that follows the system proxy, then consider other routing options. Don’t repeatedly change the node, DNS, and routing rules just to get one app online.
The numbers above distinguish the two ends of a connection; they aren’t default values to copy. For example, an app connects to 127.0.0.1:10808 on the local device, and the core then connects to the provider’s remote port. This only works if the client is listening on that local port and the app is configured to use the correct HTTP or SOCKS proxy type. To check the local port, look for the relevant listening setting under “Settings” → “Parameter settings.”
4. v2rayNG: Import from the Clipboard, Scan QR Codes, and Update Subscriptions
On Android, importing a node and establishing the system VPN connection in v2rayNG are separate steps. Import saves the configuration; the VPN connection determines whether the client can route device traffic. v2rayNG uses the Xray core. If you need the V2Fly core, you can look into v2flyNG, but check that the client and core support the link parameters you need.
- Import from the clipboard. Copy the link, open v2rayNG, and tap “+” in the top-right corner → “Import config from clipboard.” After importing, check the address and port in the list instead of relying on the node label alone.
- Scan a QR code. Tap “+” → “Scan QR code” and grant camera access when prompted. Scan the code from another screen, or choose a local image if your version supports image scanning. If there’s no image option, use a text link instead.
- Add a subscription. Open “Subscription group settings” in the side menu, tap “+,” enter a label and subscription URL, then save. Return to the configuration list and choose “Update current group subscription” or “Update all subscriptions” from the top-right menu. The wording may vary slightly by version.
- Start the connection. Select a node, then tap the start button in the bottom-right corner. The first time you connect, approve Android’s VPN connection request. If another VPN app is running, decide which app should control the connection to avoid one replacing the other.
- Verify access in your apps. Check the logs to confirm that the core started successfully, then try the website you want to reach. A successful latency test only means the test endpoint responded; it doesn’t confirm that websites and apps are accessible.
5. Use One Subscription on Two Devices: Update the List and Configure Each Device Separately
If the provider allows multiple devices, you can add the same subscription URL on both desktop and Android. Each device saves the URL and needs its own update; updating one won’t trigger an update on the other. The provider sets any device, concurrent connection, and traffic limits. A link that imports successfully doesn’t mean there are no limits.
Setup: Share the subscription source, configure local routing separately
Desktop: v2rayN
- Save the URL in subscription group settings, update it manually, and check the node list.
- Check the local listening port and the proxy type required by your apps.
- Set system proxy and routing based on your needs; don’t copy phone settings directly.
Android:v2rayNG
- Add the same subscription URL separately, then update the current group or all subscriptions.
- Confirm VPN permission and check whether per-app proxying includes the app you’re testing.
- Compare transport settings and core support, not just node names.
A subscription distributes remote node configurations. Check local ports, system proxy settings, app lists, and file paths separately on each device.
Subscription updates may replace or remove existing nodes in a group. If you need to change a node temporarily for comparison, copy it to a separate manual group and edit the copy so the next update won’t overwrite your changes. When moving configurations between devices, exported settings may not work as-is; pay particular attention to paths, listening addresses, and platform-specific options.
6. Troubleshooting Import Errors, Invalid QR Codes, and Subscription Timeouts
Troubleshoot in this order: link recognition → subscription retrieval → core startup → app access. Note which step fails, then change one setting at a time. A subscription request timeout, a node connection timeout, and a browser that won’t load are different problems—not all signs of a broken link.
Why does the client say there’s no valid configuration after I copy a link?
Make sure you copied the complete link, not an explanatory webpage. Remove any surrounding quotes or explanatory text, but keep the parameters inside the link. If it still fails, ask the provider whether the export format is compatible with your client and check whether the client needs an update. Don’t try to invent a UUID or security parameters.
Why can I scan a QR code but not import a node?
The QR code may contain a webpage address or subscription URL rather than a single-node configuration. Check what kind of text it contains; add subscription URLs through subscription management. If the code is too dense or the screenshot is blurry, ask the provider for the original text. Don’t upload images containing credentials to public scanning services.
Should I change the node first if a subscription update times out?
First, check whether the device can reach the domain hosting the subscription service. If you already have a working node and the client offers “Update through proxy” or a similar option, enable it and try again. If no node is available, switch to a network that can reach the service or ask the provider for an alternative subscription URL. For a 401 or 403 response, check authorization, expiration, and access restrictions first.
Why does the connection still fail after a successful import?
Open the client logs. Check that the core started, then verify the remote address, port, system time, TLS server name, and transport settings. If the local port is already in use, adjust the listening configuration. If the remote connection times out, check the network and service status. Don’t disable certificate verification to hide a domain or certificate problem.
I posted a subscription URL in a group chat. Is deleting the message enough?
Deleting the message can’t revoke credentials that others have already copied. Reset the subscription token in the provider’s account portal, then replace the URL and update it on every device. If a single-node credential was exposed too, replace it according to the provider’s process. When asking for help, share only redacted error logs.
Run three final checks: the expected nodes appear in the list, the logs show the core started normally, and the target app can access the network. Once all three pass, adjust routing and DNS if needed. If problems arise later, you’ll have a verified baseline to return to instead of guessing at every setting.