v2rayNG Subscription Setup: How To Add Nodes Step By Step

Learn how to use v2rayNG after installation. Follow clear Android steps to add a subscription URL, update your node list, choose a server, and fix common problems such as invalid links, empty profiles, or failed updates.

v2rayNG becomes useful only after it has a valid server profile. In most cases, the easiest way to create that profile is to import a subscription URL supplied by your service provider. A subscription is not the same as one server address: it is a remotely hosted list that may contain VLESS, VMess, Trojan, or Shadowsocks entries, together with transport and security parameters. v2rayNG downloads that list, stores the profiles locally, and lets you select one without entering every field by hand.

Before adding anything, make sure you have copied the complete URL. Subscription links can contain long paths, query parameters, or characters such as ?, &, and =. If Android's clipboard contains only part of the address, the update may finish with an empty profile list. Do not add quotation marks, spaces, or explanatory text around the link. If the provider gives several links, confirm whether the address is for Android clients, a universal Base64 list, or a specific application format.

Article overview

This guide explains the complete v2rayNG subscription workflow on Android: copy a valid URL, add a subscription group, update profiles, select a node, connect through the local VPN service, and diagnose invalid links, empty lists, timeouts, and profiles that import but do not work.

What you need

Client
v2rayNG with an Xray-compatible core
Source
A complete subscription URL
Network
Temporary internet access for the first update

The first update must reach the subscription server before any downloaded node can be used.

Information to verify

Expiry
Subscription account is active
Format
URL matches the format requested by the provider
Quota
Traffic or device limits have not been exceeded

A correct URL can still return no profiles when the account has expired or reached its service limit.

For a normal Android installation, you do not need to manually create a VLESS or VMess configuration when the subscription already contains complete nodes. Manual editing is useful for advanced users, but changing the protocol prefix or copying only a UUID will not produce a working server profile. Keep the original subscription intact until the import has been tested.

Add a subscription group in v2rayNG

The exact wording can differ slightly between v2rayNG releases, but the workflow is usually located in the subscription settings rather than in the individual server list. Open v2rayNG and look for the menu item named Subscription settings, Subscription groups, or a similar translation. You should see an existing group or an option to add one. A group is a container for the URL and the profiles downloaded from it.

  1. Open subscriptions

    Launch v2rayNG, open the main menu, and enter Subscription settings or Subscription groups. If an old group is present, do not delete it until the new URL has been tested.

  2. Add a group

    Tap the plus button or Add. Enter a short group name such as “Main service” or “Travel nodes” so that you can identify it later.

  3. Paste the URL

    Tap the subscription URL field and paste the complete address. Check the beginning and end of the text, remove accidental spaces, and save the group with OK or Save.

  4. Update profiles

    Return to the subscription list, select the group, and tap Update or Update all subscriptions. Wait for the result notification instead of leaving the screen immediately.

  5. Choose a node

    Return to the main profile list, select a downloaded node, and check that the active marker moves to that profile before starting the VPN connection.

If the application offers an option such as Update through proxy, leave it disabled for the first attempt unless the subscription domain is reachable only through an existing working node. After one profile is already connected, enabling proxy-assisted updates can help when the subscription server itself is filtered or slow. This option affects how the subscription URL is fetched; it does not change the routing behavior of the nodes that are downloaded.

Use a descriptive group name instead of the provider's full URL. Long URLs are difficult to recognize in a small Android interface, while a clear name makes it easier to distinguish work, personal, test, and temporary subscriptions. If you add several groups, update them one at a time and confirm which group produced the profiles. This prevents selecting a node from an old list and assuming that the new URL failed.

Update the node list and make the first connection

After a successful update, v2rayNG decodes the returned content and places the imported profiles in the main list. The list may contain several geographic locations, protocol types, or transport combinations. The first node shown is not necessarily the fastest or most reliable one. Start with a nearby location or a profile marked as recommended by the provider, then test normal browsing rather than selecting only by name.

Screen or action What to check Expected result
Subscription settings Group name and complete URL The saved group remains visible after reopening the screen
Update result Success message, profile count, and update time One or more profiles appear in the main list
Main profile list Selected profile and protocol details The intended node has the active selection marker
VPN connection Android permission prompt and connection state v2rayNG shows a connected state and Android displays the VPN indicator
Connection test Browser, DNS-dependent sites, and ordinary downloads Several real requests work without repeated disconnects

To start the connection, tap the selected profile if necessary and use the main connect button. Android may display a VPN permission dialog the first time. Approve it only if you recognize that v2rayNG is the application requesting the local VPN service. The connection is local to the phone: applications send traffic to the VPN interface, v2rayNG matches that traffic against its routing rules, and the selected outbound node handles the proxy connection.

Copy URLSave groupFetch profilesSelect nodeStart VPN

Run a basic test after connecting. Open a normal website, load a page with images, and try one service that normally requires the proxy. If the client reports that it is connected but pages do not load, check whether Android's VPN indicator is present, whether the selected profile is current, and whether the service provider has given separate routing instructions. A successful local VPN connection does not prove that the remote server accepted the handshake.

When several nodes are available, compare them under similar conditions. A latency value of 80 ms does not guarantee better video playback than a node at 150 ms, because packet loss, congestion, and bandwidth also matter. Test one node for a few minutes, record whether pages open consistently, and then switch to another. Avoid changing the core, routing mode, and node at the same time; otherwise the cause of an improvement or failure becomes difficult to identify.

Practical conclusion: test stability before chasing the lowest latency

For everyday Android use, a node that keeps connections alive through screen-off, Wi-Fi changes, and a ten-minute download is usually a better choice than a node that reports the lowest single latency measurement.

Fix invalid links, empty profiles, and failed updates

Most subscription problems occur before the node itself is tested. First separate an import problem from a connection problem. If no profile appears after an update, inspect the URL, account status, response format, and network path. If profiles appear but none connect, the subscription was decoded successfully and the investigation should move to server availability, core support, time settings, transport parameters, and routing.

Why does v2rayNG say the subscription URL is invalid?

Open the group again and check that the address begins with the provider's required scheme, contains no spaces or quotation marks, and was copied in full. If the provider uses a web login page, an account dashboard URL may not be the actual subscription endpoint. Request a fresh URL from the provider and paste it into a new group.

The update succeeds, but the profile list is empty. What should I do?

Check the reported profile count and open the URL in a normal browser only to confirm that the account responds; do not edit the returned content. An expired account, a traffic limit, an HTML error page, or an unsupported response format can all produce an empty list. Confirm that the provider supports v2rayNG and ask for a compatible subscription format.

Why does subscription update keep timing out?

Verify that the phone has working internet access, then retry on another network. If an old working node exists, enable update through proxy and update the group again. Also check whether Android restricts background or data access for v2rayNG, but remember that battery restrictions usually affect background refresh rather than a manual update performed in the foreground.

Profiles import correctly, but every node fails to connect. Is the URL broken?

Not usually. Confirm the phone's date and time are set automatically, update v2rayNG and its selected core when appropriate, and try another imported node. If all nodes fail with the same message, check the service status, account expiry, and any provider notice about changed ports, domains, SNI, or security settings.

An invalid-link message is commonly caused by copying a shortened management link, an expired token, or a URL with a line break inserted by a messaging application. Some providers display a subscription URL behind a button; use the copy-link action rather than copying the visible label. If the link contains a token, treat it as a password. Do not post it in a public support channel or include it in screenshots.

An empty list can also result from a format mismatch. A provider may offer separate outputs for sing-box, Clash, or V2Ray-compatible clients. v2rayNG expects a format it can parse, and a successful HTTP response alone does not guarantee that the content is a valid node list. Ask specifically for a v2rayNG, V2Ray, or Xray-compatible subscription if the provider distinguishes formats.

When an update fails after working previously, compare the current update time with the subscription expiry date. A provider may rotate the URL, impose a device limit, or temporarily disable an account after too many requests. Repeatedly tapping update will not repair an expired token and may trigger additional rate limiting. Save the old working group, obtain a confirmed replacement URL, and test the replacement separately.

Maintain the subscription safely on Android

Once the first node works, establish a simple maintenance routine. Update the subscription when the provider changes nodes, before a planned trip, or when the current list begins returning repeated failures. Do not refresh it every few minutes. A reasonable manual interval is once per day when changes are expected; otherwise follow the provider's recommended schedule. Keep the group name stable so that other settings and your own troubleshooting notes remain easy to follow.

Android may stop background activity when battery optimization is aggressive. If automatic updates or reconnection stop after the screen has been off, open Android Settings → Apps → v2rayNG → Battery and review the background policy. The exact choices may be “Unrestricted,” “Optimized,” or “Restricted,” depending on the device manufacturer. Use the least restrictive setting only when background reliability is important, because unrestricted activity can increase battery use. A manual connection test should be completed before changing this policy.

  • Keep the subscription URL private because it may grant access to the entire account.
  • Use automatic date and time so authenticated protocols and TLS certificates are evaluated correctly.
  • After an update, confirm that the selected profile belongs to the newly updated group.
  • Keep at least one known-good profile or group until the replacement has been tested.
  • Record the v2rayNG version, selected core, error message, and update time when requesting support.

Do not manually change server address, port, UUID, path, SNI, Reality public key, or flow-control fields just to make a node look different. These values form a matched server configuration. If a provider publishes a corrected profile, update the subscription or import the corrected entry instead of guessing at individual parameters. Manual edits can be useful for diagnosis, but they should be reversible and documented.

For a fresh setup, the complete decision path is straightforward: verify the account and URL, create one subscription group, update it once, select a nearby profile, approve the Android VPN request, and test several real connections. If the list is empty, solve the import or account issue before changing node parameters. If the list is populated but connections fail, investigate the core, time, transport, server status, and network path separately. This order prevents most v2rayNG setup problems from becoming unnecessary configuration changes.

Download v2rayN