This guide walks Android users through adding a subscription URL in v2rayNG, refreshing its server list, selecting a node, and starting a VPN connection. It also explains how to tell a subscription-download problem from a node-connection problem, what to check when a link has expired, and how to protect subscription credentials. Menu labels can vary slightly between app versions, so use the described actions and verify the result in the node list and connection status rather than relying on one exact screen layout.
1. Understand subscriptions and nodes
A subscription is a URL that the client uses to retrieve a set of server configurations. It is not itself a connection to a server. After v2rayNG downloads the subscription data, it parses the entries and displays the resulting nodes. You then choose one of those nodes and start a connection. These are separate operations, and success at one stage does not guarantee success at the next.
Think of the process as three checks: the subscription address must be reachable, the returned data must be readable by the client, and a selected node must complete its connection to the remote server. For example, an updated list may contain several nodes even if your account has expired or the servers are temporarily unavailable. Conversely, a node may still work even when a later subscription refresh fails, because the client already has a previously imported configuration.
The exact screens and labels can differ between v2rayNG releases. A subscription may be managed from a side menu, a group or subscription screen, or an add control in the main interface. Look for an action named something like “Add subscription,” “Subscription settings,” or “Add a group.” If your version uses different wording, the goal is to create a subscription entry that stores the provider’s URL, not to add each server manually.
2. Prepare the subscription URL
Obtain the subscription URL from the service provider’s account page or setup instructions. Copy the complete address using the provider’s copy control when available. The URL may contain a long token or other access credential, so treat it like a password. Do not paste it into a public chat, include it in an unredacted screenshot, or place it in a note that is shared with other people.
A subscription address often begins with https://, but providers may use different formats. Do not edit its hostname, path, query parameters, or token to make it look shorter. A copied URL such as https://subscription.example.invalid/path?token=TEST-ONLY is only a documentation example; it will not retrieve a real subscription. Use the exact address issued to your account.
- Check that the address starts and ends at the expected characters. A missing character at either end can make the request fail.
- Remove accidental spaces or line breaks added when copying. Do not remove punctuation that is part of the URL.
- Confirm that the account is active and that the provider has not replaced the subscription address.
- If the provider offers separate links for different clients or formats, choose the one intended for a V2Ray-compatible client.
Some services rotate subscription links after a password reset, account change, or security incident. In that case, an old URL can stop working even though the account itself remains active. Check the provider’s account page for a current link before repeatedly retrying an address that returns an authorization error. A subscription URL is a credential-bearing endpoint; avoid testing it by sending it to unrelated online URL-checking services.
3. Add the subscription and refresh the list
Use the following sequence as a practical baseline. The labels may vary between versions, but the order is the same: create the subscription entry, save the URL, and request an update. If your version offers a separate subscription group name, give it a short label such as “Main” or the provider’s name. The label is for local identification and does not change the subscription address or the server settings.
-
Open subscriptions
Launch v2rayNG and open the subscription or group-management screen. Depending on the installed version, use the navigation menu, a group selector, or the add control on the main screen. Choose the option for adding a subscription rather than importing a single server configuration.
-
Create an entry
Choose the add or create action. If a name field is available, enter a recognizable label. Keep the label free of the actual URL or access token, especially if you may share screenshots of the app.
-
Paste the URL
Paste the complete subscription address into the URL field. Check the beginning and end of the pasted value, then save or confirm. Do not add quotation marks, a trailing comment, or a space unless the provider explicitly includes it as part of the address.
-
Update the group
Select the new entry and use its update or refresh action. Wait for the request to finish before closing the screen. If the app provides an option to update through an existing proxy, use it only when a working connection is already available and the provider endpoint cannot be reached directly.
-
Verify the result
Return to the server list and confirm that nodes appear or that the displayed list has changed. If the list remains empty, check for an error message and continue with the subscription troubleshooting steps below instead of repeatedly tapping refresh.
After a successful update, v2rayNG may replace, add, or reorder entries according to the format and contents returned by the provider. A changed node count is not automatically evidence of an error: a provider may remove retired servers or change its available regions. If you maintain more than one subscription group, make sure you refreshed the intended group and that the node list is currently showing that group.
Some client versions include an automatic update option or a refresh interval. These settings affect when the client requests new subscription data; they do not keep a connection active and do not guarantee that every returned node is reachable. For a first setup, update manually and confirm that the list is usable before relying on automatic refresh.
4. Select a node and start the connection
Once the updated nodes appear, select one entry in the server list. If the provider’s list includes location names, protocol labels, or a load indicator, treat these as aids for choosing a candidate rather than a guarantee of speed or availability. Start with one node and keep the test conditions consistent. Switching several settings and nodes at once makes it difficult to identify what changed the result.
Use the app’s connection control to start the VPN service. Android displays a system permission prompt the first time an app requests a VPN connection, or after the permission has been reset. Review the prompt and allow the connection if you intend to proceed. Only one app can normally own Android’s VPN interface at a time, so stop another VPN service before starting v2rayNG if the system reports a conflict.
- Check the selected node name before connecting. A node displayed in the list is not necessarily the node currently selected.
- Wait for the app to show a connected or running state. A tap on the connection control alone is not proof that the remote handshake succeeded.
- Open a test site or app after the connection is established. Confirm that the test reflects the intended route and that ordinary local network access still behaves as expected.
- If the client provides logs, check the latest connection attempt rather than relying on an old error from a previous node.
Subscription refresh and node selection solve different problems. Refreshing updates the client’s stored server entries; selecting a node tells the client which entry to use; starting the VPN service asks the core to establish the connection and route eligible traffic. If the list updated successfully but the connection fails, re-downloading the same subscription is usually not the first useful step. Test another current node and inspect the connection error instead.
Bottom line: verify each stage separately
If nodes are visible, the subscription was parsed at least once. If the app reports a running connection, check actual traffic next. Keep the subscription update result, selected node, and connection status as three separate observations.
5. Troubleshoot update and connection failures
Start by identifying exactly which action failed. An update error occurs while v2rayNG requests or parses subscription data. A connection error occurs after a node has been selected and the client tries to contact its server. A connected status with no usable traffic points to a later stage, such as routing, DNS, or the destination app’s network settings. Treating all three symptoms as “the node is broken” can lead to unnecessary changes.
| Symptom | Likely area to check | Useful next action |
|---|---|---|
| Update fails immediately | URL spelling, expired link, account access, or endpoint response | Copy the current URL again and check the provider account status |
| Update times out | Network reachability, DNS resolution, or endpoint access | Test ordinary connectivity, then try a different network if available |
| Update succeeds but the list is empty | Returned format, selected group, or provider response | Confirm the correct group and ask the provider which format to use |
| Nodes appear but connection fails | Node availability, credentials, server address, or protocol parameters | Try another current node and inspect the latest core log |
| Connection appears active but apps fail | VPN permission, DNS, routing, or app-specific network behavior | Test a second app and review the client’s connection status and logs |
If an update reports an authorization or access error, first check whether the account has expired, reached a usage limit, or had its subscription URL rotated. Re-copy the current URL from the provider rather than guessing which characters may be wrong. If the provider has a service-status notice, check it before changing local settings. An active account does not necessarily mean an older link remains valid.
For a timeout, verify that the device has ordinary internet access and that the subscription hostname can be reached on the current network. If the app offers an update-through-proxy option, it can help only when you already have a working proxy connection and the relevant endpoint is accessible through that route. It cannot repair an expired token, incorrect URL, or provider-side outage. If changing networks is possible, compare one update attempt on each network and note the result.
If the update succeeds but no nodes appear, confirm that you selected the correct subscription group and that the provider supplies a format supported by the client. Some services return an error page or an account notice instead of a node list when access has been suspended. Do not try to repair the returned text by manually editing server fields; ask the provider whether the link and format are intended for v2rayNG.
Why did my refresh succeed but nothing changed?
The provider may have returned the same list, or the app may be displaying a different group. Check the selected group and its update time, then compare the node names with the provider’s current service information.
Can I refresh without a working node?
Often the subscription endpoint is reachable directly, so try a normal update first. If it times out and the app supports updating through a proxy, use that option only after establishing a working connection by another available method.
Do I need to import the URL every time?
No. Keep the saved subscription entry and use its update action to retrieve the latest list. Add a new entry only when you receive a replacement URL or intentionally need a separate subscription group.
When a node fails to connect, try one other node from the same freshly updated list. If both fail, check the device clock, network availability, and the latest log details, then verify account status with the provider. TLS-based connections can fail when the device time is substantially wrong. A working subscription download does not validate the node’s address, port, credentials, or security parameters; those are used in a separate connection attempt.
6. Keep subscriptions secure and maintainable
Store the subscription entry rather than repeatedly copying its URL between apps and notes. If the provider replaces the URL, update the saved entry with the new address and remove the obsolete one if it is no longer needed. Keeping several old entries with similar names makes it easy to select a stale group and mistake an outdated node list for a current one.
Update when the provider announces changes or when you need to retrieve recently added or replaced servers. There is no need to refresh continuously: a refresh makes a network request but does not improve a node that is already unavailable. If automatic updates are enabled, choose an interval supported by the installed version and provider guidance, and still refresh manually when troubleshooting a specific change.
- Use clear local group names, but do not include tokens or full URLs in the name.
- Keep the app current through a trusted distribution channel, and review update notes when a change affects subscription handling or core support.
- Before sharing logs, inspect them for subscription addresses, account identifiers, server hostnames, and other sensitive values.
- If a link may have been exposed, ask the provider whether it can be revoked or regenerated; deleting a screenshot alone may not invalidate a copied credential.
A reliable setup is one you can verify: the saved subscription entry uses the provider’s current URL, an update completes and produces the expected list, a selected node starts, and a test app can reach its destination. Record the time and exact symptom when any stage fails. This makes it easier to distinguish a temporary network issue from an expired subscription or an unavailable server without repeatedly reinstalling the client or changing unrelated settings.