Comparing Xray and V2Fly How to Add a Subscription in v2rayNG and Refresh Nodess: VLESS, XTLS, and REALITY support

Learn how to add a subscription URL in v2rayNG, refresh your server list, select a node, and start a connection. This beginner-friendly guide also helps troubleshoot expired links and failed node updates.

At a glance

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.

1 URL
Address used to retrieve a subscription
3 stages
Fetch, parse, and connect
2 checks
List update and node availability

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.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

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.

SymptomLikely area to checkUseful next action
Update fails immediatelyURL spelling, expired link, account access, or endpoint responseCopy the current URL again and check the provider account status
Update times outNetwork reachability, DNS resolution, or endpoint accessTest ordinary connectivity, then try a different network if available
Update succeeds but the list is emptyReturned format, selected group, or provider responseConfirm the correct group and ask the provider which format to use
Nodes appear but connection failsNode availability, credentials, server address, or protocol parametersTry another current node and inspect the latest core log
Connection appears active but apps failVPN permission, DNS, routing, or app-specific network behaviorTest 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.

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.

Download v2rayN