Check what you copied before choosing an import method: save subscription URLs in subscription settings, import individual protocol links from the clipboard, and remember that Base64 is usually an encoded response from a subscription server. Follow the steps below to add, update, and select configurations on desktop and Android, then troubleshoot request, parsing, and connection failures separately.
First, tell subscription URLs, share links, and Base64 content apart
A subscription URL is an address used to retrieve a list of configurations, usually beginning with https://. The client saves this URL and requests the latest list from the server when you update it. The URL itself is not a node configuration, and its appearance alone does not reveal which protocols it supports. A provider's login page, purchase page, or instructions page is not a substitute for its dedicated subscription URL.
An individual share link usually begins with vmess://, vless://, trojan://, or ss:// and contains connection details for one server. Importing it from the clipboard gives the client a snapshot of that configuration. If the server address or credentials change, the snapshot will not update automatically just because the original link still exists.
Subscription URL
RecommendedSave it in a subscription group, then update. This works well for configuration lists that are maintained over time. “Recommended” describes the management method; it does not mean the source is trusted.
Best for: regularly syncing server lists and connection details.
Individual share link
Copy the complete protocol link and choose “Import from clipboard.” If you copy several links, preserve the line breaks and make sure the client supports each protocol.
Best for: testing a single configuration or importing a server you manage yourself.
Base64 subscription content
A common format encodes multiple share links together. Base64 is a way to represent content, not a standalone proxy protocol; whether you can paste it directly depends on the client's parser.
Best for: identifying subscription response formats and troubleshooting compatibility issues.
Don't assume that “contains Base64” means “every field uses the same encoding.” Traditional VMess share links often encode a configuration JSON and append it after the protocol prefix. VLESS and Trojan usually express configuration as URI parameters, while Shadowsocks has its own credential-encoding rules. Decoding and rebuilding links by hand can easily break links that were valid as-is.
v2rayN: Add and update subscriptions in subscription group settings
Start v2rayN on desktop before setting up subscriptions. Don't change local listening ports, DNS, or routing rules first; those settings won't fix a URL copied incorrectly. The menu names below reflect common Chinese-language interfaces. The add button may appear as “Add” or “+” in different versions, but it is in the subscription group management window.
-
Copy the subscription URL
On the provider's page, choose “Copy subscription link.” Check that the clipboard content begins with
https://or another scheme explicitly provided by the service. Don't copy a page title, instructions, or the URL of a QR code image. -
Open group settings
In the main window, go to “Subscription Group” → “Subscription Group Settings,” then choose “Add” or “+.” If group management is in the toolbar in your version, open the setting with the same name.
-
Save a name and URL
Give the group a recognizable name, such as “Desktop favorites,” paste the complete subscription URL into the “Address” or “Subscription URL” field, and save. The name is a local label and does not affect the content returned by the server.
-
Update the subscription
Return to the “Subscription Group” menu and choose “Update all subscriptions (without proxy).” Some versions use standard parentheses. Only try the corresponding “Update via proxy” option if your current network cannot reach the URL directly and you already have a working proxy.
-
Select an imported configuration
Check the update log and group list. Once configurations appear, set the one you want to use as the active server. Then enable the system proxy or another traffic entry point as needed. An import succeeding does not mean your apps are using the proxy.
For a single vless:// share link, use an import option such as “Servers” → “Import batch URLs from clipboard” in the main window, rather than putting it in the subscription URL field. Menu labels may vary slightly by version. Look for “clipboard” and “import,” not “update subscription.”
v2rayNG: Use subscription settings and clipboard import for different tasks
On Android, subscription management is usually in the upper-left navigation drawer, while importing an individual configuration is under the “+” in the upper-right of the main screen. Both can add configurations to the list, but they save different things: the former keeps the update source, while the latter usually saves only the parsed node. A phone clipboard may add leading or trailing spaces or line breaks, so check that the URL is complete after pasting.
-
Open subscription settings
Tap the upper-left menu → “Subscription settings.” Some versions call this “Subscription Group Settings.” You should see existing sources and an option to add another.
-
Add a subscription source
Tap “+,” enter a “Remarks” label and an “Address” or “URL,” then tap the confirm icon to save. The label can differ from the one on desktop, but the address must match the complete URL supplied by the provider.
-
Update subscription content
Return to the configuration list, open the more menu in the upper-right, and choose “Update subscription.” Wait for the completion message, then check the relevant group. If the interface lets you update a selected subscription, first make sure the newly added source is selected.
-
Select a configuration and connect
Select the configuration you want, then tap the connect button on the main screen. The first time you start it, approve the VPN connection request when prompted by Android. Other apps' traffic will not automatically go through the client just because configurations are listed.
To import an individual share link, copy it, then go to the main screen and tap “+” → “Import from clipboard.” If no valid configuration is found, check whether the clipboard contains only a subscription URL or includes extra text such as “Node name:”. Never paste content containing a subscription token into a public online decoder.
Use one subscription on both devices: same URL, separately saved state
Desktop: v2rayN
- Save the URL in subscription group settings.
- After updating, select the active server separately.
- Configure the system proxy and routing mode separately.
Android: v2rayNG
- Save the same URL in subscription settings.
- Update and select configurations separately.
- Manage connection status and app coverage on each device.
Only the subscription source is shared. Update times, selected nodes, routing, and connection status do not sync across devices. Follow the provider's device limits and terms of use.
Check the link format: a complete URL doesn't guarantee compatible content
A subscription update typically involves several steps: request the URL, receive a response, parse the configurations, and save the list. Success at one step does not guarantee the next will succeed. If a URL opens in a browser, that only means the browser received a response in the current environment. The response could be a login page, an access verification page, or a configuration document the client doesn't support.
Subscription URL checks
- Starts with
- Usually https://; follow the format provided by the source.
- Query parameters
- Keep the token and other parameters after the question mark; don't remove them.
- Copy boundaries
- Remove leading and trailing whitespace, but don't change characters within the URL.
- Where to import
- The address field in subscription settings.
Punctuation added by a chat app isn't part of the URL. Percent-encoded characters, equals signs, and separators within the URL may be significant.
Subscription content checks
- Common content
- Multiple share links, or their Base64-encoded form.
- Other formats
- Don't assume a structured configuration document is a list of share links.
- Unexpected content
- HTML login pages, verification pages, or error messages.
- What to check
- The client's update log and the provider's format instructions.
Prefer a subscription URL the provider identifies as compatible with v2rayN, v2rayNG, or generic share-link lists.
Base64 is encoding, not encryption, and it doesn't guarantee that a subscription is trustworthy. Decoded server addresses, user IDs, and passwords are still sensitive. If a subscription includes VLESS and REALITY parameters, make sure the client and core in use can recognize them. Successfully downloading text doesn't mean every configuration is ready to run. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; don't assume they support exactly the same protocols just because the subscription URL is the same.
Subscription update failed? Troubleshoot requests, parsing, then connections
Note the complete error type before choosing what to do. Timeouts, certificate errors, HTTP status codes, and “no valid configurations found” point to different stages. Don't change DNS, routing, system proxy settings, and the subscription URL all at once, or you won't know which change fixed the problem.
- Request timed out: Check whether your current network can reach the subscription domain. On desktop, compare updates “without proxy” and “via proxy,” but the latter requires an already working proxy connection. Repeatedly choosing “via proxy” with an empty list won't create a working connection out of nowhere.
- Certificate error: First check your device's date, time, and time zone, then confirm the subscription domain is correct. Don't treat disabling certificate verification as a routine fix; the provider should fix the certificate or supply the correct URL.
- 401 or 403: Copy the subscription again from the provider's page. Check whether the token has been reset, account permissions have changed, or device or request-rate limits apply. The status code helps narrow down the issue, but check the server's message for the actual cause.
- Unable to parse: Make sure the response isn't a webpage and that the subscription format matches the client. If the source provides only an incompatible document, ask for the correct URL instead of simply Base64-encoding the text.
- Update succeeded, but no configurations appear: Check the selected group, search terms, and whether the list is empty. Keep the existing group entry while you investigate whether you need to add it again, so you don't mistake a filter issue for a download failure.
- Configurations are listed, but won't connect: Check the active server, core startup logs, and app traffic entry point. This is a connection-stage issue; repeatedly importing the subscription won't help troubleshoot it.
What to check after an update and how to maintain subscriptions
An update may replace configurations in a group or remove entries that are no longer provided. Don't use a subscription group as a long-term archive for manually maintained configurations. Save connections you manage separately and keep a record of their source. Even if a configuration keeps the same name after an update, its server address and credentials may have changed.
- Check the group first: Confirm new entries belong to the expected source so you don't select a same-named server from the wrong group.
- Then check the active configuration: An update may have replaced the previous one. Select a configuration again if needed, then confirm the client starts its core normally.
- Finally, test the app: Check the connection with an app that needs network access. A configuration test does not replace checking the app's traffic entry point and routing.
- Update only as needed: Follow the provider's guidance and avoid repeated refreshes in a short period. Frequent requests may trigger restrictions and won't improve the server's connection quality.
Use the same steps every time: identify the link type, choose the right import method, update, select a configuration, enable a traffic entry point, and test the app. Keeping subscription management separate from connection settings makes it easier to change providers or move to another device without reconfiguring unrelated network settings.