This guide is for anyone using a subscription URL for the first time or unable to see servers after importing one. It covers the complete v2rayN and v2rayNG workflows, update methods, common link formats, and a systematic troubleshooting process. Once configured, both clients can use the same subscription source to maintain their server lists.
Understand subscription links and single-node links before importing
A subscription link is usually a URL beginning with https://. When the client requests it, the server returns a set of configurations, often as multiple Base64-encoded node links or as structured data the client can parse. The defining feature is not the URL length, but the ability to request it again and refresh the entire server list.
vmess://, vless://, trojan://, and ss:// usually represent a single server configuration. They can be imported directly into a client, but they do not automatically become a refreshable subscription group. Pasting one vless:// link into a “Subscription URL” field often results in a failed request, empty content, or zero parsed nodes.
HTTPS subscription URL
RecommendedMaintain multiple nodes at once and refresh them manually or on a schedule in the client. This is useful for keeping lists consistent across a computer and an Android device.
Best for: long-term use, multiple nodes, cross-device syncing
Single-node share link
Directly describes one VMess, VLESS, Trojan, or Shadowsocks node. It imports quickly, but must be retrieved again when server settings change.
Best for: temporary additions, single-node testing, QR-code sharing
Base64-encoded content
This is commonly text containing multiple encoded share links. In most cases, let the client retrieve it through the subscription URL instead of copying the entire encoded block manually.
Best for: automatic client-side retrieval and parsing
The three examples below show differences in appearance. The example domains and parameters are for format recognition only and cannot be used to connect. Real subscription URLs should come from the configuration provider and typically include an account-specific path or access parameters.
https://sub.example.com/client/account-a
vmess://eyJ2IjoiMiIsInBzIjoiZXhhbXBsZSJ9
vless://[email protected]:443?security=tls&type=ws#Example
Complete v2rayN subscription setup
The steps below use the Chinese interface in v2rayN 7.x as an example. Button locations may vary slightly between 7.x releases, but the core sequence is the same: create a subscription group, update it, then select a server and enable the system proxy. Saving the URL to a group alone does not add nodes immediately.
Open subscription groups
Launch v2rayN and open “Subscription Groups” → “Subscription Group Settings” at the top of the main window. If the window is narrow, the entry may be nested under a menu with the same name.
Create a subscription
Click “Add,” enter an easy-to-recognize name as the alias, and paste the complete
https://subscription URL into the address field. Check that no spaces or line breaks were added at the beginning or end.Save the settings
Make sure the group is enabled and save it. To switch cores, go to “Settings” → “Parameter Settings” → “Core Type.” For everyday VLESS and VMess configurations, the Xray core is usually the appropriate choice.
Update the subscription
Return to the main window and choose “Subscription Groups” → “Update All Subscriptions (Without Proxy).” If the current network can reach the subscription URL only through an existing connection, try updating through the proxy instead.
Select a server
Once nodes appear, double-click the target server or use the context menu to set it as the active server. Then open the tray menu and choose a system proxy mode; for an initial test, “Auto Configure System Proxy” is a good starting point.
Check the logs
After connecting, open the log panel and confirm that the core has started without port conflicts, configuration parsing errors, or DNS resolution errors. v2rayN commonly uses
10808as its local mixed-proxy port, but the value shown under “Settings” → “Parameter Settings” is authoritative.
After the update finishes, first check whether new entries appeared in the server list, then confirm that the group column matches the subscription you created. An empty list and an unreachable node are different problems: the former points to subscription retrieval or parsing, while the latter requires checking the server address, transport, TLS, REALITY, public key, or network reachability.
- Nothing changed in the list: Make sure you selected “Update Subscription,” not just saved the group settings.
- Timeout message: Switch between “Update Without Proxy” and “Update Through Proxy,” then check the request target in the logs.
- Zero nodes parsed: Check whether you entered a single-node link, a web login URL, or an expired subscription URL by mistake.
- Nodes exist but are hidden: Clear the server filter and check which subscription group is currently displayed.
Complete v2rayNG subscription setup
v2rayNG uses the Xray core, and subscription management is separate from single-node import. Subscriptions belong under “Subscription Group Settings,” while clipboard imports and QR-code scans are better suited to individual vmess:// or vless:// configurations. These steps use the v2rayNG 1.10.x interface; save the subscription first, then refresh it manually.
Copy the URL
Copy the complete subscription URL from the source page. If it is long, do not select it in sections. After copying, verify in a plain text field that it begins with
https://, and remove any spaces accidentally included.Open subscriptions
Open v2rayNG, expand the menu in the upper-left corner, and go to “Subscription Group Settings.” Tap “+” in the upper-right corner to add a new subscription record.
Enter and save
Enter the source name in the remarks field and paste the subscription URL into the optional address field. Leave the entry enabled and save it. Remarks are for local identification only and do not change node parameters.
Refresh the list
Return to the main screen, open the upper-right menu, and select “Update Subscription.” Wait for the completion message at the bottom, then check the number of configurations and the group name in the main list.
Start the connection
Tap a configuration to make it the active node, then tap the connection button at the bottom. Approve the system connection request the first time you start it, and test access after the status area shows that it is running.
If old nodes are still shown after updating, return to “Subscription Group Settings” and confirm that you are editing the enabled group and that the URL was not truncated. Then return to the main screen and run “Update Subscription” again. Clearing all app data also removes local configurations, so it should not be the first troubleshooting step.
Recommended setup: share one subscription across both clients
Desktop (v2rayN)
- Use the Xray core for common VMess and VLESS configurations
- Save the source under “Subscription Groups” and set an update interval
- Use the logs to confirm that local ports such as
10808are listening normally
Android (v2rayNG)
- Add the same complete subscription URL
- Run “Update Subscription” manually from the main screen
- Configure per-app proxying only when you need to limit which apps use the connection
When both clients use the same subscription source, refresh each one after the provider changes its nodes. Routing, the active node, and local settings are still stored independently on each device.
“Shared subscription” does not mean that client states are synchronized in real time. The active node selected in v2rayN does not control v2rayNG, and desktop routing rules are not copied automatically to Android. A subscription mainly syncs server configurations; system proxy settings, per-app proxying, DNS, and traffic routing should still be configured separately for each device.
What VMess, VLESS, and Base64 subscriptions mean
A VMess share link commonly consists of vmess:// followed by Base64 text. Once decoded, it contains fields such as the address, port, user ID, transport, and TLS settings. It describes one node, not a group of nodes. Some older formats encode a complete JSON object in the link, making it difficult to verify each parameter by eye.
A VLESS link usually follows a standard URI structure: the user ID comes before the hostname, the port follows the domain, and transport, security, and flow-control parameters appear in the query string. Common fields include type=ws, type=grpc, security=tls, security=reality, and flow=xtls-rprx-vision. These fields must match the server configuration; do not replace them at random just because a connection fails.
| What it looks like | Usually represents | Correct import location | Can it be updated as a whole? |
|---|---|---|---|
https:// URL |
Subscription request URL or configuration endpoint | Subscription Group Settings | Usually yes |
vmess:// |
A single VMess node | Import from the clipboard or scan a QR code | No |
vless:// |
A single VLESS node | Import from the clipboard or scan a QR code | No |
| Continuous Base64 characters | An encoded collection of nodes or node data | Retrieve it through the original subscription URL whenever possible | Depends on whether the subscription source is retained |
Base64 is a text-encoding method, not a proxy protocol, and it cannot establish connections. After a subscription response is Base64-encoded, the client decodes the text and identifies VMess, VLESS, Trojan, or Shadowsocks links line by line. Some subscription responses do not use Base64 and instead return structured configuration directly; compatibility depends on the provider’s output format and the client’s parsing capabilities.
How to confirm an imported configuration works
A successful subscription update only means that the client retrieved and parsed the content; it does not mean every node can connect. Verify it in this order: the node appears, the core starts, traffic passes through the local proxy, and the target request succeeds. Do not rely only on the status color in the main window.
- Confirm the node count: Compare the list before and after updating; at minimum, server entries should appear under the subscription group.
- Confirm node parameters: Check that the protocol, address, port, and transport type are complete. VLESS REALITY configurations should also include required fields such as the server name, public key, and short ID.
- Confirm the core started: v2rayN logs should show the configuration being loaded and local listeners starting, without persistent port conflicts or configuration-field errors.
- Confirm traffic capture: v2rayN requires the system proxy or TUN mode to be enabled as appropriate; after v2rayNG starts, the system connection status should be visible.
- Confirm the routing result: If only some websites are inaccessible, check routing rules and DNS instead of rebuilding the subscription immediately.
v2rayN often uses 10808 as its local mixed-proxy port, but changing the settings may assign a different value. If a browser, command-line tool, or device on the local network still points to the old port, the client may appear connected while requests fail. Go to “Settings” → “Parameter Settings” and use the local port shown there.
A latency test cannot replace a real connection test. Some servers restrict probe requests, so latency results may be empty even when web requests work; in other cases, probes respond quickly while actual traffic fails because of TLS, the transport path, or routing. The more reliable approach is to check the core logs together with one real request.
First check whether the subscription produced nodes, then whether the core started, then confirm the system proxy or Android connection status, and finally inspect DNS and routing. Change only one setting at a time and keep before-and-after logs; this is usually faster than repeatedly deleting and re-importing everything.
How to troubleshoot failed subscription updates and missing nodes
Subscription problems usually occur at one of three points: the URL is unavailable, the client receives no response, or the client receives content but cannot parse it. Start by copying the complete URL again in the subscription settings, then distinguish timeouts, abnormal HTTP status codes, and parsing failures from the error message instead of blaming the node connection immediately.
Subscription update timed out?
In v2rayN, first try “Subscription Groups” → “Update All Subscriptions (Without Proxy).” If a working node is already available, try updating through the proxy instead. In v2rayNG, switch networks and retry, and make sure the system time is accurate.
Saved successfully, but the list is still empty?
Saving a subscription only creates the group; you still need to return to the main screen and select “Update Subscription.” After updating, clear the filter text and switch to the relevant group. If zero nodes are parsed, check whether you entered a single vmess:// or vless:// link instead.
Why does the client say the response cannot be parsed?
A common cause is that the subscription URL returned a login page, an expiration notice, or an ordinary web page. Copy the client subscription URL again from the source page. Do not copy the account-center URL from the browser, and do not treat a QR-code image URL as a subscription.
Why are old nodes still present after updating?
First check whether the old nodes belong to another subscription group or a manually imported group. In v2rayN, filter by the group column; in v2rayNG, check which subscription owns the configuration. Do not delete nodes individually until their source is clear.
Connected, but websites will not open?
In v2rayN, check that the system proxy is enabled and verify the local port under “Settings” → “Parameter Settings.” In v2rayNG, check the connection status and the scope of per-app proxying. Then review the core logs for DNS, handshake, and routing errors.
If the error includes 401 or 403, the subscription access parameters may have expired, permissions may have changed, or the request may not meet the required conditions. 404 usually means the path has changed, while 5xx indicates a temporary problem on the responding server. In these cases, repeatedly changing the client core or local port rarely helps; obtain the currently valid subscription URL first.
If the computer updates successfully but Android does not, first compare the saved URLs character by character, paying particular attention to trailing parameters, equals signs, and letter case. Also compare the networks and system times on both devices. Conversely, if Android updates but v2rayN fails, check whether v2rayN is incorrectly set to update through the proxy and whether the active server has expired.
- Do not enter your web account password in node configuration fields.
- Do not change the core, DNS, routing, port, and subscription URL at the same time; otherwise it is difficult to tell which change took effect.
- Do not share subscription links in group chats or screenshots. Their access parameters may be tied to your personal configuration permissions.
- After switching subscription sources, give the new group a clear alias and organize old groups only after the new one is confirmed to work.
Subscription maintenance and cross-device usage tips
Once the subscription is configured, focus on update frequency and group organization. Refreshing too often will not improve node quality and may trigger rate limits on the provider. For normal use, update manually when needed or schedule updates every few hours to once a day; follow the subscription provider’s instructions for the exact interval.
Do not put every source into one group. Create groups by purpose, such as “Daily” and “Testing,” or use the source name, so you can quickly identify the affected scope when nodes fail. Keep manually imported single nodes separate from subscription nodes to avoid assuming that manual configurations change with the subscription.
v2rayN maintenance checklist
- Give each subscription a clear alias.
- After updating, review added and removed entries by group.
- Keep commonly used routing rules separate from subscription troubleshooting.
- If another program is using the port, check the logs before changing the local port.
v2rayNG maintenance checklist
- Before updating, confirm that the current subscription group is enabled.
- Per-app proxying controls which apps use the connection; it does not change the subscription content.
- When the node list looks wrong, refresh it first, then check the group and filter settings.
- After switching networks, test the current node again; there is no need to import the subscription repeatedly.
v2flyNG uses the v2fly core and suits Android configurations that require its compatibility path. v2rayNG uses the Xray core and is generally a better fit for newer combinations such as VLESS and REALITY. Whichever Android client you use, first confirm that the subscription output contains protocols and transport parameters the selected core can recognize.
After the first successful import, record three details: the subscription group name, the most recent successful update time, and the current client version. When the list changes later, you can determine whether the difference came from updated subscription content, a client upgrade, or a local setting change instead of rebuilding every configuration from scratch.