For users who already have a subscription URL but cannot find the import setting or see no nodes after updating. By the end, you will know how to create subscription groups on desktop and Android, tell a subscription apart from a single-node share link, and troubleshoot failures through logs, update methods, and core compatibility.
First, tell subscription links from single-node links
A subscription link is essentially a URL for an updatable node list. The client requests the URL, and the server returns multiple node configurations. When updated later, the client fetches the list again and replaces the old entries in that group. This works well for maintaining dozens of nodes while retaining the group name, update time, and automatic refresh interval.
A single-node share link describes one configuration. Common prefixes include vmess://, vless://, and trojan://. Import this content from the clipboard import option on the main screen rather than entering it in the subscription URL field. Saving a single-node link as a subscription usually results in a format error, an empty response, or zero nodes after updating.
Subscription group import
RecommendedSave a URL beginning with https:// so the client can fetch and maintain the complete node group. When nodes change, an address is updated, or an entry becomes invalid, you only need to update the group.
Best for: long-term use, multiple nodes, and a shared list across desktop and Android
Clipboard import
Parse one or more share links directly. The imported entries become local configurations and will not refresh automatically when the remote list changes.
Best for: quick tests, a single node, and manually saved configurations
QR code import
A QR code is only a container for content. Its result may still be a subscription URL or a single-node link. The correct destination depends on both the scan entry point and the actual QR code contents.
Best for: receiving configurations on a phone and avoiding long manual URLs
Complete steps to import a subscription in v2rayN
These steps follow the Chinese interface in v2rayN 7.x. Some minor releases may show “Add” as a plus button, but the workflow for subscription groups, aliases, URLs, and updates is the same. Before you begin, copy the full subscription URL and make sure your chat app has not added a period, spaces, or line breaks.
-
Open group settings
Launch v2rayN and open “Subscription Groups” → “Subscription Group Settings” from the top of the main window. Do not import it from the “Servers” menu, which is for individual configurations.
-
Create a subscription
Click “Add” or the plus button in the window. Enter an easy-to-recognize alias, such as “Daily Nodes,” then paste the complete
https://link into the subscription URL field. -
Check that it is enabled
Make sure the group is enabled. If you want scheduled refreshes, set an automatic update interval. For everyday use, 1440 minutes—once a day—is usually enough; frequent refreshes are unnecessary.
-
Save and update
After saving, return to the main window and select “Subscription Groups” → “Update All Subscriptions (Without Proxy).” If the subscription URL is reachable only through a proxy, use the option to update through a proxy instead.
-
Choose an active node
When the update finishes, check the main list. Double-click a node or use the context menu to set it as the active server, then choose “Set System Proxy Automatically” from the system tray menu.
During a normal update, the status bar shows the fetch, parsing, and addition results. In a sample subscription containing 42 nodes, parsing typically finishes within 1–3 seconds on an ordinary network; the actual time depends on the subscription server’s response speed. Node count is not a quality metric—start by testing a node with stable latency.
If the list is still empty, return to “Subscription Groups” → “Subscription Group Settings” and check that the URL has no line breaks and the group is enabled. Then open the client log to determine whether the issue is a connection timeout, an abnormal HTTP status, or a parsing failure. Each requires a different response; repeatedly clicking Update usually changes nothing.
Clipboard import in v2rayN
When you have a single share link, copy it in full and open “Servers” → “Import Batch URLs from Clipboard.” If the clipboard contains one valid link per line, v2rayN can parse them all at once. These imported configurations remain local nodes and are not automatically added to the subscription group you just created.
- Import one node: Copy one complete share link and run clipboard import once.
- Import multiple nodes: Put one link on each line and do not insert spaces inside a link.
- Duplicate names after import: Check the address, port, and protocol first; do not judge duplicates by the remark alone.
- Nodes return after an update: Subscription nodes are managed by the remote list, so manually deleted entries may be added again during the next update.
Where to import subscriptions and scan QR codes in v2rayNG
v2rayNG 1.10.x uses the Xray core, and its subscription settings are in the side menu. A common Android mistake is tapping the plus button on the main screen and choosing “Import from Clipboard,” which treats a subscription URL as a single node. The correct workflow is still to create a subscription group first, then update it from the main screen.
-
Open subscription settings
Open v2rayNG, tap the menu button in the top-left corner, and select “Subscription Group Settings.” If you have several groups, first check which one is enabled.
-
Add the URL
Tap the plus button in the top-right corner, enter a name in the remark field, and paste the complete subscription URL into the address field. Before saving, check that the beginning, query parameters, and final characters are all intact.
-
Return and update
Save and return to the main screen, open the top-right menu, and select “Update Subscription.” After a successful update, the nodes appear in the main list under their subscription group.
-
Test the connection
Select a node, then use the top-right menu to run “Test Real Connection for All Configurations” or a latency test. Choose a node with stable results and tap the start button at the bottom.
-
Check the running status
The first launch may show a system connection confirmation. Allow it and check the status at the top. Common local ports are SOCKS 10808 and HTTP 10809; the actual values are determined by the local port settings under “Settings.”
Before scanning, determine what the QR code contains. If it has a single-node share link, tap the plus button on the main screen and choose “Scan QR Code”; scanning adds one configuration directly. If it contains a subscription URL, create an entry in Subscription Group Settings, place the scanned URL in the address field, then return to the main screen and update the subscription.
Recommended setup: share one subscription across both clients
Desktop (v2rayN)
- Save the URL in “Subscription Group Settings”
- Use the Xray core to process configurations such as VLESS
- Set the automatic update interval to 1440 minutes
- Choose the active server manually after updating
Android (v2rayNG)
- Save the same subscription link
- Confirm that the target group is enabled before updating
- Configure per-app proxying and split routing as needed
- Run another real-connection test after switching nodes
Both clients use the same remote list, but node selection, routing rules, and local ports are stored separately on each device and are not synchronized through the subscription.
Why some subscription formats fail to parse
Subscription URLs may all look like ordinary links, but their responses can differ. v2rayN and v2rayNG handle common Base64-encoded subscriptions and line-by-line share links. If a URL returns a webpage, login page, or another specialized configuration structure, the client may report a parsing failure. Do not judge by the URL suffix alone; check the actual response and the log.
Subscription URL
https://sub.example.net/access/list?token=example
Single-node share link
vmess:// encoded content
vless:// connection parameters
trojan:// connection parameters
| Content type | Typical characteristics | Correct entry point | Compatibility check |
|---|---|---|---|
| Base64 subscription | Returns a long block of encoded text that decodes into multiple share links | Subscription Group Settings | Commonly supported by v2rayN and v2rayNG |
| Plain-text link list | Each line begins with a VMess, VLESS, or Trojan protocol prefix | Subscription Group Settings | Depends on whether the client version and core support the relevant parameters |
| Single-node link | Contains only one protocol share link | Clipboard or QR code import | Saved as a local configuration after import |
| Webpage or login page | Starts with HTML tags or requires you to log in first | Cannot be parsed directly | Obtain a subscription URL intended for v2rayN or v2rayNG instead |
| Specialized YAML or JSON | Contains proxy groups, providers, or a different field structure | Do not paste it directly | Ask the subscription provider for a compatible format |
Using the same protocol name does not mean every parameter can be recognized by an older version. For example, a VLESS configuration may include Reality, flow control, or newer transport fields. An older client may discard the node during parsing or fail to start it after import. In that case, upgrade v2rayN or v2rayNG first, then confirm that the Xray core is selected.
If the subscription provider offers several entry points, choose one clearly labeled for v2rayN, v2rayNG, V2Ray, or Xray. v2flyNG uses the v2fly core and is better suited to configurations supported by that core, such as VMess; do not expect it to fully handle nodes with Xray-specific parameters.
How to handle failed updates, empty node lists, and timeouts
During troubleshooting, keep the original subscription entry instead of deleting the group immediately. The first error in the log is usually the most useful: a connection timeout means the URL was not reached successfully, HTTP 401 or 403 usually relates to authorization, and zero parsed items means the server returned content in a format the client did not expect.
Subscription updates keep timing out?
First verify that the device clock is accurate, then try a direct update. If the subscription URL requires a proxy, connect to an older node that still works and select “Update All Subscriptions (Through Proxy)” in v2rayN; in v2rayNG, keep the connection active and run “Update Subscription” again.
The subscription saved successfully—why is the list still empty?
Saving the URL only creates a group; it does not generate nodes automatically. Return to the main screen and update once, then check that the group is enabled. If the log shows a successful fetch but zero parsed items, ask the subscription provider about the response format.
Format error after copying the link?
Check for quotation marks, spaces, Chinese full stops, or line breaks before and after the link. Put subscription URLs in the subscription group address field; protocol share links belong in “Import from Clipboard.”
The original nodes disappeared after updating?
A subscription update refreshes the group from the remote list. First check whether you switched to another group, then see whether the provider changed its node list. Keep manually added local configurations under distinct remarks so they are not confused with subscription nodes.
The node imported, but the connection fails?
Upgrade the client and check the core type first, then verify that the server address, port, and transport parameters are complete. In v2rayN, open “Settings” → “Parameter Settings” → “Core Type” to confirm the active core. Restart the core and run another real-connection test.
After importing, run these five checks to confirm it really works
Seeing nodes in the list only means parsing succeeded; it does not mean the proxy is active. Check the active node, core startup, system proxy or connection status, and whether real traffic follows the expected route. This separates subscription issues from runtime issues.
- Check the node count: Make sure the parsed count in the update log roughly matches the list. If the sample list returns 42 entries, the client should show close to 42; if only a few appear, check whether a group filter is enabled.
- Test a real connection: A latency number only shows that the test request received a response. Open a webpage or run a real-connection test and check the log for handshake, DNS, or routing errors.
- Check local ports: Common SOCKS and HTTP ports are 10808 and 10809. If another program has a proxy entered manually, its port must match the client settings. If the port is already in use, change it and restart the core.
- Confirm the proxy entry point: In v2rayN, enable the system proxy according to your needs; in v2rayNG, keep the system connection active after starting it. Selecting a node without starting the core does not send traffic through the proxy.
- Review split routing: A subscription delivers nodes, not necessarily local routing rules. Direct domains, proxied domains, LAN bypasses, and DNS policies are still determined by the client’s local configuration.
The same subscription can produce similar node lists in v2rayN and v2rayNG, but their active nodes are not linked. If the desktop client switches to one node, Android keeps its own selection. Automatic update intervals, system proxy settings, per-app proxying, and TUN-related settings are also stored separately.
For future updates, you do not need to paste the original link again. Just select “Update Subscription.” If the subscription URL changes, edit the existing group and replace the address instead of repeatedly creating groups with the same name. This prevents duplicate lists and makes it easier to identify which request failed in the log.