· Getting Started · About 8 minutes

V2Ray Subscription Import Guide: Add Subscription URLs in v2rayN and v2rayNG

Learn how to add and update subscriptions in v2rayN and v2rayNG, and how subscription URLs, Base64 lists, and single-node links differ.

At a glance

For a node list you maintain over time, save the subscription URL in a subscription group and update it when needed. To import a single node temporarily, use the clipboard or QR code option. This guide covers the steps in desktop v2rayN and Android v2rayNG, along with URL formats, network routing for updates, and how to read error logs—useful for a first-time setup or when moving to a new device.

Subscription URLs vs. single-node links

A subscription URL is usually a web address that starts with https://. The client fetches it to retrieve a list of nodes. A single-node share link usually starts with vmess://, vless://, or trojan:// and contains the details for one node. Use the right import option for each: enter a subscription URL in a group's address field, or import a single-node link from the clipboard.

Subscription URLs: Save the source and refresh the list

Recommended

A group stores the subscription source so you can fetch the nodes again later. If the provider changes an address, port, or node name, update the subscription to sync those changes locally.

Best for: A subscription you maintain over time and nodes you update on both a computer and an Android device.

Single-node links: Import the current configuration

Importing from the clipboard or a QR code adds the node settings as they are at that moment; it usually does not create a subscription you can refresh later. If the settings change, import the link again or edit the node manually.

Best for: A quick test, importing one specific node, or ruling out subscription parsing issues.

A link opening in a browser does not necessarily mean it is a subscription. Login pages, plan management pages, and download pages can also use HTTPS but return a web page. Copy the full URL from the provider's clearly labeled subscription section, including everything after the question mark. Those query parameters may contain authorization details; removing them can make updates fail.

v2rayN: Save the URL in a subscription group, then update

On desktop, save the subscription URL and fetch the nodes as two separate steps. These instructions use common Chinese-language UI labels; punctuation and button names may vary by version. Look for the subscription group settings and update-current-subscription actions rather than changing other settings to match a label exactly.

  1. Open the group settings. In the main window, go to “Subscription Group” → “Subscription Group Settings” and add a group. If the toolbar has a group management button, it opens the same window.
  2. Enter a label and URL. Use a label that helps identify the source, such as “Daily subscription,” then paste the full subscription URL into the address field. Make sure there are no spaces, quotation marks, or extra text from a messaging app at either end.
  3. Save the group. Make sure the group is enabled. If the interface offers an automatic update interval, keep the current setting for the first import and adjust the schedule after a manual update succeeds.
  4. Run an update. Select the group you just created, then use the Subscription Group menu to update the current subscription. If you see options to update with or without a proxy, try without a proxy first if no usable node is available yet.
  5. Check the group results. Look for fetch or parsing errors in the log at the bottom, then check whether the group contains nodes. Don't rely on the “All” list alone, or you might mistake old nodes for the results of this import.
  6. Select a node and test the connection. Set the node you want as the active server, confirm the core is running, and enable the system proxy if needed. A successful subscription update does not mean your browser is already using that node.

Nodes in a subscription group are managed by the subscription source. An update may overwrite manually changed names or connection settings. Save custom nodes you need to keep in a separate, non-subscription group. Subscription groups are for syncing with a source, not for storing the only copy of your manual configurations.

v2rayNG: Add the subscription, update it, then connect

Android v2rayNG uses the Xray core, but importing a subscription is a client management task—you don't need to edit the core JSON first. The menu is usually in the upper-left navigation drawer or the upper-right overflow menu. Its location varies by version, so follow the function names below.

  1. Open the subscription settings. Find “Subscription Group Settings” in the main menu; some versions call it “Subscription Settings.” Tap the add button to create a subscription entry.
  2. Enter a label and subscription URL. Paste the full address into the URL field. The label is for local identification only; it does not replace the URL or determine the node protocol. Save, then return to the main screen.
  3. Update the subscription. Choose “Update subscription” from the menu. If separate options are available to update with or without a proxy, choose based on whether the subscription source is reachable on your current network. If you don't have a working connection yet, try without a proxy first.
  4. Check the current group. After the update, open the corresponding group and check its nodes. If the main screen has search or filter settings, clear them first in case imported nodes are hidden.
  5. Select a node and connect. Tap a node, then tap the connect button. The first time you connect, Android may ask you to approve VPN access. Grant permission before testing web access.

QR codes also need to be distinguished by content: a code may contain a single-node link or a subscription URL. Scanning a node and seeing it in the list does not mean the client has saved a subscription source. To enable future updates, check that the corresponding URL is listed in the subscription settings.

These are three separate states. If a node appears but won't connect, check the connection log rather than repeatedly adding the same subscription.

Base64 subscriptions vs. configuration JSON: different content, different import options

A common Base64 subscription is a text list of single-node share links encoded in Base64. The client fetches the URL, decodes the content, and parses the links one by one. Base64 is an encoding, not encryption. Sharing the subscription contents can still expose node credentials.

Content receivedCommon signsWhere to import it
Subscription URLUsually starts with HTTPS and returns node data when openedEnter it in the URL field under subscription group settings, then update
Single-node share linkStarts with a protocol prefix such as vmess:// or vless://Import from the clipboard or scan a node QR code
Base64 node listA long encoded text that decodes to multiple lines of share linksPrefer the subscription URL provided by the source. Whether the raw text can be imported directly depends on the client's parser.
Full core configuration JSONContains structures such as inbounds, outbounds, and routingUse the client's custom configuration import—not the regular subscription URL field

Check the source format first, then protocol compatibility

If an update downloads data but parses zero nodes, first check that the response is subscription content, not a login page or a full configuration file. Once the format is confirmed, check whether the node protocol is supported by your client and core.

VMess share links commonly encode node settings as JSON, while VLESS links often include the address, port, and transport settings in the URI. Neither is a complete V2Ray configuration file. Don't remove ?, &, or # from a link without a reason: query parameters may specify transport and security settings, while the fragment is often used as a node label. Understand what each field does before editing it.

Subscription update failed? Check network access, authorization, and parsing

When troubleshooting, start with the log for the update request rather than the node's latency. Fetching a subscription uses a different network path from connecting to a node. These HTTP status codes can help identify the server response, though the client may not display the code directly; check the log messages as well.

200
Request succeeded; check the response format
401
Valid authentication credentials are missing
403
The server denied access

A 200 response means the HTTP request succeeded, not that the response contains a parseable node list. The site may have returned a verification page instead. For 401 or 403 errors, check your account status, subscription token, and access restrictions rather than repeatedly switching nodes. For timeouts, DNS failures, and certificate errors, check the network route, DNS settings, and device clock respectively.

Subscription updates keep timing out. Should I enable the proxy?

Try updating without a proxy first. If your current network cannot reach the subscription source and you already have a working node, connect through it and try updating with a proxy. Selecting the proxy option alone won't help if you have no working node.

The update says it finished, but the node list is empty. Why?

Select the right group and clear any filters, then check the log for parsing results. Make sure you copied a subscription URL, not an account page. If the provider offers multiple output formats, choose a node subscription format supported by v2rayN or v2rayNG.

The link opens in a browser, but the client reports an error. Why?

Your browser may be logged in, while the client has no access to the same session. Copy the dedicated subscription URL again from your account page, make sure all query parameters are intact, and confirm the browser shows node data rather than a login or verification page.

The update added more nodes or duplicate labels. What should I do?

Check whether you created multiple groups for the same source or also imported single-node links. Back up your settings first, then keep one subscription group. Identify manual entries separately from subscription entries before removing duplicates; don't delete items in bulk just because their labels match.

Use one subscription on desktop and Android: sync the source, not local settings

You can save the same subscription in v2rayN and v2rayNG, but multi-device access depends on the provider's authorization rules and device limits. Update each client separately: a recent update on your computer won't automatically sync the list to your phone. Results can differ even with the same source because requests happen at different times, output formats vary, or protocol support differs.

Set up both devices: share the source, verify each separately

Desktop: v2rayN
  • Save the dedicated subscription URL in subscription group settings.
  • After a manual update, check the current group and active server.
  • Configure the system proxy or TUN to suit your apps.
  • Back up routing rules, listening ports, and local settings separately.
Android: v2rayNG
  • Save the same source separately in subscription settings.
  • Update independently and check the parsed nodes.
  • Approve the system VPN permission when connecting.
  • Adjust per-app proxying and local routing as needed.

Subscriptions mainly update node data. Confirm the system proxy, app selection, and local routing separately on each device.

Treat the subscription URL like an account credential. Hide the full address, token, and node authentication fields in screenshots, and don't paste subscriptions into public online decoding tools. If the URL is exposed, reset the subscription token in your provider account, replace the old URL in both clients, and update. Deleting a local group only removes its record from that device; it does not invalidate an exposed URL.

Download v2rayN

Choose a client for your operating system and processor architecture. After installation, import the subscription, run a manual update, and test the proxy connection.

View download options View guide
Download v2rayNChoose a client for your platform