V2Ray Subscription Setup: Add Links to v2rayN and v2rayNG

Learn where to add subscriptions in v2rayN and v2rayNG, how Base64 subscriptions differ from vmess:// and vless:// links, and what to check when an update returns no servers.

Quick overview

First identify whether you have a subscription URL or a single share link, then choose the matching import option. This guide covers first-time setup, moving from desktop to Android, and empty lists after an update. Follow the steps to add a group, save the URL, refresh its contents, and test the connection—so you can tell a failed download from an unsupported format or a connection problem.

Subscription URLs, Base64, and share links

A subscription URL usually starts with https://. The client requests this URL and retrieves a list of configurations, adding the entries it can parse. The URL itself is not server configuration data, and it may not display as a normal webpage in a browser. An account login page, plan details page, and subscription API can share a domain, but they are not interchangeable.

A single share link usually starts with vmess:// or vless:// and describes one configuration. Import it from the clipboard rather than pasting it into a subscription URL field. You can copy and import multiple share links at once, but this is a one-time import: if the server address or port changes, the client will not fetch an updated configuration from that text.

Client-compatible subscription

Recommended

Choose a subscription option from your provider that is specifically intended for v2rayN or v2rayNG. Save the URL used to retrieve configurations, then refresh the list with the subscription update command.

Best for: ongoing use and configurations that need to stay in sync with the provider

Single or multiple share links

Copy the complete VMess, VLESS, or other share link text and import it from the clipboard. These links generally are not tied to a subscription group that refreshes automatically.

Best for: quick tests or importing specific configurations only

Base64 is an encoding format, not a proxy protocol or encryption. A typical subscription response encodes a list of share links as a whole; parameters inside a VMess share link are often Base64-encoded too. They may look similar, but serve different purposes: one wraps a list, while the other represents a single configuration. A long string of characters is not necessarily a subscription URL.

v2rayN: Set Up and Update a Subscription Group

On desktop, create a subscription group first, then fetch its configurations. These steps use common Chinese-language menu labels; button placement and punctuation may vary by version. Look for “Subscription Group Settings” and the subscription update command. The subscription URL field is not under “Parameter Settings.”

  1. Copy the subscription URL

    On your provider's subscription page, choose the option for v2rayN and copy the complete URL. Do not copy the account page URL from your browser's address bar or paste a block of text that includes instructions.

  2. Create a subscription group

    Open “Subscription Group” → “Subscription Group Settings” from the main window, then click “Add” in the settings dialog. Enter a name for the source and paste the URL into the subscription address field. Check that there are no extra spaces or line breaks at either end.

  3. Save and update

    Save your changes and return to the main window, then run an update from the “Subscription Group” menu. If you do not have a working connection yet, choose “Update all subscriptions (without proxy).” If you already have a working proxy but a direct update fails, try “Update all subscriptions (through proxy).”

  4. Check the import result

    Select the group and check the server list and log at the bottom of the window. Once the expected configurations appear, choose one as the active server, then enable the system proxy or another traffic-routing method as needed.

If you only have a share link, use “Servers” → “Import batch URLs from clipboard” in the main window. After importing, check the server address, port, and transport settings—not just whether a name appears. Subscription updates may regenerate source configurations, so save any manual changes you want to keep as a separate configuration to avoid having them overwritten on the next refresh.

v2rayNG: Set Up and Update Subscriptions

v2rayNG on Android uses the Xray core, but subscription parsing is handled by the client. Whether the client can parse a subscription format is separate from whether the underlying connection protocol is supported. Confirm the import first, then test whether each server connects; troubleshoot these as separate issues.

  1. Open subscription settings

    Open the side menu in the upper-left corner of the main screen and tap “Subscription settings.” This is where subscription sources are managed. The “+” in the upper-right corner is mainly for importing or adding configurations; it is a different entry point.

  2. Enter a name and URL

    In “Subscription settings,” tap “+” and enter a name and subscription URL. Make sure the subscription is enabled, then tap Save. For the first import, leave server keyword filters unset.

  3. Update subscription contents

    Return to the main screen, open the more options menu in the upper-right corner, and select “Update subscription.” Some versions offer “Update current group subscription.” Select the intended group first to avoid updating a different source and assuming the command did nothing.

  4. Connect and grant permission

    Select a configuration in the list and tap the connect button. The first time you connect, Android will show a VPN connection request; approve it, then check the connection status and logs. You do not need to grant VPN permission just to update a subscription.

For a single share link, copy the complete text first, then tap “+” → “Import from clipboard” on the main screen. Importing and connecting are separate steps: an entry in the list means the client parsed it, not that the server is online or that the account, certificate, and transport settings are correct.

Using one subscription on desktop and Android

Whether you can use the same subscription URL depends on the source's response format, account rules, and what each client can parse. Some APIs return different content based on request parameters or client identifiers. A successful update on both devices only confirms that each retrieved configurations it could recognize; it does not guarantee identical ordering, names, or supported protocols.

Import on both devices: save and verify separately

Desktop: v2rayN
  • Save the source under “Subscription Group Settings.”
  • After updating, check the selected group and its logs.
  • After connecting, check the system proxy status.
Android: v2rayNG
  • Save a compatible URL under “Subscription settings.”
  • After updating, clear searches and filters that could hide entries.
  • Connect and confirm the VPN permission request.

If the provider allows the URL to be shared, use the same one on both devices. Still check subscription updates, routing, and connection status separately on each.

Subscriptions mainly update the configuration list. They generally do not transfer the desktop system proxy mode or routing rules, or Android per-app proxy settings. Do not blindly copy an entire configuration file just to make both devices look the same. First confirm that the imported entries work, then set up traffic routing separately on each device.

No servers after an update? Troubleshoot by log message

Keep any working configurations and error logs, then change one setting at a time to isolate the cause. If the log shows an HTTP status code, use it to check whether the request received a successful response. The numbers below are protocol status codes—not client versions or speed test results.

200
HTTP request succeeded; check the response format
401
Authentication issue; check your subscription credentials
403
Access denied; check permissions or access restrictions
  1. Check the selected group and display filters. Switch to the target subscription, clear the search box, and temporarily remove server keyword filters. If the log reports a successful import but the list is empty, start here.
  2. Confirm the source actually returned configurations. An HTTP 200 response can still contain a login page, an expiration notice, or an error message. Opening a page in a browser does not mean the client received subscription data.
  3. Check that the URL is valid. See whether the subscription was reset or the account restricted, and make sure no query parameters were cut off when copying. Do not remove the token parameter after the question mark.
  4. Identify the network error. A timeout, DNS resolution failure, and certificate error are different problems. Check the device's date and time and your current network first; then decide whether to update through an existing proxy.
  5. Check the content format. If the URL is reachable but parsing fails, go back to the source and choose a format intended for v2rayN or v2rayNG. Changing a file extension will not convert one configuration format into another.

Test the connection and fix common import issues

After importing, select a configuration, connect, check the logs, then test access to the services you need. A latency test only reflects its specific test method; it does not verify the entire connection. For TLS handshake or authentication errors, check the device time, server address, port, and provider settings instead of disabling certificate verification.

Why does import fail if the URL opens in a browser?

Check whether the page shows configuration text or a login screen. Your browser may be signed in, while the client usually is not. Return to the provider's subscription page, copy the dedicated URL again, and confirm that you selected a format supported by your client.

The update succeeded. Why is the configuration list unchanged?

Select the group you just updated, clear the search, and check the logs around the update time. If the source returned the same content, an unchanged list is expected. If you updated a different group, select the intended one and update it again.

Why do the same subscription's imports differ between devices?

First confirm that both devices use the exact same URL, then check their filters. If the results still differ, see whether the source returns different formats by client and whether both clients support the same protocols and transport settings. Do not compare names alone.

The server appears, but webpages will not load. Should I import it again?

Check the connection logs first. In v2rayN, check the active server and system proxy. In v2rayNG, check that the VPN is running and that the target app is not excluded by per-app rules. Re-fetch the configuration only if it is missing or its settings are wrong.

Subscription URLs often contain account tokens, so treat them like credentials. Before sharing logs or screenshots, hide the full URL, tokens, user identifiers, and sensitive server parameters. Do not submit a complete subscription to an unfamiliar online decoder or converter. If the URL has been exposed, reset it with the provider, replace the old URL in both clients' subscription settings, and update again.

Download the clientChoose the installer for your platform