Importing V2Ray Subscriptions

Learn how to add subscriptions in v2rayN and v2rayNG, and how Base64 subscriptions, individual share links, and full configs differ.

At a glance

For anyone with a subscription URL who isn’t sure where to paste it. First, learn the difference between a subscription URL, a share link, and a full config. Then follow the desktop or Android steps to add and update it, and select a server. Finally, troubleshoot by stage: download, parsing, or connection—without repeatedly deleting subscription groups.

Subscription URLs vs. config formats

A “V2Ray subscription” usually means a client fetches a server list from a URL, but the response doesn’t follow one universal format. The URL points to a remote resource; the response body determines whether the client can parse it. A provider’s account login, purchase page, and subscription URL are separate entry points.

Save the subscription URL Fetch remote content Parse servers Select a server Start the proxy
What you haveHow to identify itWhere to import itHow to update it
Subscription URLUsually starts with https:// and may include an access tokenURL field in subscription groups or subscription settingsThe client fetches the URL again
Individual share linkCommon prefixes include vmess://, vless://, and trojan://Import the share link from the clipboardDoes not automatically track changes to the subscription source
Full configJSON commonly includes fields such as inbounds, outbounds, and routingThe client’s custom config sectionUpdate from a file or raw config

A Base64 subscription typically encodes a text list of share links. After decoding, you’ll often see one link per line. A VMess share link may itself contain Base64-encoded JSON. These are two different layers—don’t assume a long string is a single server address.

First identify the response format, then choose the right import option

If the provider offers formats for different clients, choose a share-link subscription compatible with v2rayN or v2rayNG. If the response is a webpage, another config syntax, or full JSON, selecting the correct subscription format is more effective than repeatedly clicking Update.

v2rayN: Add a subscription group and update it

In v2rayN, subscription groups store URLs and group details; the server list shows entries parsed from the response. Saving a group alone won’t create any servers. The steps below use common labels from the Chinese interface. Button placement may vary between versions, but saving the URL and updating the subscription are separate actions.

  1. Copy the original subscription URL.Copy the full URL from the provider’s subscription page, including any parameters after the question mark. Don’t copy the account login page from your browser’s address bar or include surrounding instructions.
  2. Go to “Subscription Group” → “Subscription Group Settings.”Add a group. Enter a recognizable name under “Alias,” such as “Daily,” then paste the subscription URL into “Optional address (Url)” or the equivalent URL field.
  3. Save the group.For your first import, leave keyword filters unset so servers aren’t filtered out. If a group with the same name already exists, check its URL instead of adding a duplicate.
  4. Choose “Subscription Group” → “Update current subscription (without proxy).”Select the group you want to update first. To update multiple sources, use “Update all subscriptions (without proxy).” Menu labels may vary slightly by version.
  5. Select a server and set it as active.Choose an imported server from the list, then use the right-click menu to make it active. Check the logs for core startup errors.

If the subscription is only reachable through an existing proxy, you can use the “through proxy” update option—but only if you already have a working connection. With no usable server on the first import, this option can’t create a proxy connection from nothing. First check whether your current network can reach the subscription source, or get a valid share link that can be imported on its own.

v2rayNG: Subscription settings and updates

The Android version of v2rayNG uses the Xray core. Subscription management is in the sidebar; import individual share links from the add menu on the main screen. Pasting a subscription URL into a regular server’s address field creates an invalid connection config—it won’t fetch a server list.

  1. Open the sidebar → “Subscription settings.”Tap the plus icon in the upper-right corner, then enter a “Remarks” label and the “Address.” Use the remark to identify the source; the address is used to fetch subscription data.
  2. Save and return to the main screen.Make sure the new subscription still appears in the settings list. If the URL was truncated or a line break was added to the token, go back and correct it.
  3. Open the upper-right menu → “Update subscription.”Watch for the status message at the bottom and check for changes in the list. Some versions offer updates by group; confirm the selected group before using that option.
  4. Tap a server, then tap the connect button.On the first connection, Android asks for permission to set up a VPN connection. Approve it, then check the system connection status and app logs.
  5. Import individual links from the add menu.If you have a share link such as vless://, tap the plus icon on the main screen → “Import from clipboard” instead of creating a subscription URL.

A successful subscription update doesn’t mean the proxy is connected. Seeing entries in the list means the request and parsing completed; the core starts and handshakes with a server only after you tap Connect. Android’s VPN permission lets the app handle device traffic, but doesn’t prove the server is reachable.

v2rayN desktop

Where to manage it
Subscription Group → Subscription Group Settings
Name field
Alias
URL field
Optional address (Url) or subscription URL
Update action
Update current subscription

After saving, update the subscription to populate the server list.

v2rayNG for Android

Where to manage it
Sidebar → Subscription settings
Name field
Remarks
URL field
Address
Update action
Main screen menu → Update subscription

After importing, select a server and connect.

After importing: check the list, core, and traffic

Verify each stage in order, from config to network. Check the server list first, then review core logs, and finally test real traffic. Don’t confuse the subscription URL’s port with the local listening port or the server’s port: they’re used to download config, accept traffic on your device, and connect to the remote server, respectively.

443
Default port when an HTTPS URL has no port specified
10808
Example local listening port; check your actual settings
3
Check the server list, core, and traffic separately

A server may use port 443 or another port—always check the subscription itself. Don’t change every entry to 10808; that example is a local listening port, not a remote server port. Protocol names such as VMess and VLESS don’t determine the transport on their own; TLS and transport path settings must also match the server.

Subscription update failed? Troubleshoot by stage

Match the error to the stage where it occurs. For “Download failed,” check the URL and network first. For “No available servers,” check the response format and filters. For “Connection failed,” check the core and remote parameters. This avoids changing correct protocol settings just to address a network timeout.

SymptomCheck firstWhat to do
HTTP 401 or 403URL token, access permissions, provider restrictionsGet a fresh subscription URL and check your account permissions. If access is still denied, ask the provider about any restrictions.
Timeout or DNS lookup failureCan your current network reach the subscription domain?Check the domain spelling and try direct access or an update through an existing proxy
No servers after updatingResponse content, group selection, keyword filtersRemove unnecessary filters and confirm you selected a compatible subscription format
Redirected to a login page or returned webpage contentDid you use the account page URL by mistake?Copy the URL again from the provider’s subscription page; don’t treat webpage HTML as Base64 content
List looks normal, but the core reports an errorProtocol support, config fields, selected coreUse the logs to identify the field causing the error, then confirm the client and core support that config entry
Connected, but apps can’t access the networkSystem proxy, TUN, per-app settings, routing rulesConfirm app traffic is going through the proxy, then check the server handshake and destination

Takeaway: If the list updates, stop changing the subscription URL

When the parsed server details are complete, focus on the active server, core logs, and traffic routing. The subscription URL delivers config; it doesn’t handle app proxy connections. Changing the URL won’t fix a local port conflict or incorrect routing rules.

Subscription updates and privacy

A token in a subscription URL may let anyone who has it access your server config. When troubleshooting, share only the status code, failure stage, and client menu—not the full URL. Before sharing a screenshot, hide the token, user ID, and any server details you don’t want public.

When importing a full config, also check the local listening address and routing rules. Setting the listening address to 0.0.0.0 may let other devices on the same network access that port. Don’t use it just because the config starts successfully. Beginners should use a subscription format tailored to their client so it can manage local inbounds, then learn advanced fields step by step.

Download the v2rayN client