When you get an address, first identify whether it’s an updateable subscription URL or a single server share link. This guide covers adding a group, entering a URL, updating subscriptions, and selecting a configuration in Android’s v2rayNG and desktop v2rayN. It also explains Base64 encoding and common import errors. Use it for your first subscription import, moving to a new device, or troubleshooting an empty server list after adding a subscription.
Subscription URLs, share links, and clipboard imports
A subscription URL is usually an HTTPS address provided by your service provider. The client requests it to retrieve a set of connection configurations and add them to the associated subscription group. It is not the provider’s homepage or account login page. Copy the URL from the provider’s subscription section and choose one intended for v2rayNG or v2rayN. An HTTPS prefix alone doesn’t guarantee that an address will work.
Individual share links usually begin with vmess://, vless://, trojan://, or ss:// and contain the details for a single connection. The clipboard is just a way to transfer text, not a subscription format of its own. Importing a subscription URL from the clipboard won’t necessarily create an updateable subscription group.
Import as a subscription group
RecommendedSave the URL from your service provider in a group, then update it manually. When addresses, ports, or server lists change, you can fetch the group’s configurations again.
Best for: Anyone with a subscription URL who needs to keep configurations up to date.
Import a single share link
Copy the entire share link and use the clipboard import option. This imports the connection details as they are at that moment; it usually doesn’t link them to a subscription source for future updates.
Best for: Testing one configuration or importing a connection shared directly by an administrator.
Import subscription content as text
You can import multiple existing share links as text. Whether a client accepts a block of Base64 text depends on its version and the import method. For the most reliable updates, keep the original subscription URL.
Best for: Moving existing configurations offline when you don’t need updates from the subscription source.
v2rayNG: Add a URL in Subscription Group Settings
On Android, use v2rayNG. Subscription management is separate from the “+” in the top-right corner of the main screen, which is generally for adding a configuration manually, scanning a QR code, or importing from the clipboard. Add subscription URLs under “Subscription Group Settings,” not in the address field for a manually configured server. Icon placement may vary by version; the steps below refer to menu labels.
-
Open the group settings
Open the side menu from the top-left corner of the v2rayNG main screen and select “Subscription Group Settings.” Check whether a group already exists to avoid adding the same subscription more than once.
-
Enter the URL
Tap “+” in the top-right corner of the subscription groups screen. Enter a recognizable name under “Remarks,” then paste the full subscription URL into “Optional address (Url).” Despite the word “optional,” a valid URL is required to fetch subscription content over the network.
-
Save the group
Tap the save icon in the top-right corner to return to the main screen. Saving stores the group and URL; it doesn’t download servers. If no configurations appear yet, that alone doesn’t mean the import failed.
-
Update the subscription
Open the More menu in the top-right corner of the main screen and select “Update subscription.” Some versions let you update all subscriptions or just the current group. Choose the option you need, wait for the completion message, then check the relevant group.
-
Select a configuration and connect
Tap a configuration in the group, then tap the connect button on the main screen. The first time you connect, approve Android’s VPN connection request. Seeing a server in the list doesn’t mean the proxy is running.
v2rayN: Subscription group menus and update options
On desktop, manage subscriptions from the “Subscription Group” menu at the top of the v2rayN main window. Don’t paste a subscription URL into the address field for manually adding a VMess or VLESS server: that field expects a server hostname or IP, not a web address that returns a list of servers. Layouts may vary slightly by operating system or version, but the process has two steps: save the group, then fetch its contents.
-
Open subscription settings
Select “Subscription Group” → “Subscription Group Settings.” In the settings window, click “Add” to create a separate group that you can update, disable, or troubleshoot independently.
-
Save the subscription
Enter an “Alias” and “Optional address (Url),” make sure the group is enabled, and save. Keep the full URL, including its path and query parameters. Don’t remove the token after the question mark or include quotation marks added during copying.
-
Choose an update option
Return to the main window and select “Subscription Group” → “Update all subscriptions (without proxy).” This requests the subscription URL directly and works when your current network can reach the subscription source.
-
Use a proxy if needed
If a direct request to the subscription source times out and you already have a working connection, enable it first, then select “Update all subscriptions (through proxy).” Menu wording and spacing may vary by version; look for the option that says it updates through a proxy.
-
Set the active configuration
After the update, select the configuration you want from the group and use the right-click menu to set it as the active server. To let apps that follow the system proxy use the connection, open the tray menu and select “System Proxy” → “Automatically configure system proxy.”
“Update through proxy” changes the network path used for the subscription request. It won’t fix an expired token or make an unsupported subscription format readable. On a fresh install with an empty list, there’s no working connection to use for proxy updates, so switching to that option usually can’t bootstrap the setup.
Base64 subscriptions: Encoded wrappers and the share links inside
A common way to create a Base64 subscription is to put multiple share links on separate lines and encode the resulting text as Base64. After fetching the response, a client decodes the outer text and parses the share links one by one. Some subscription sources return plain-text link lists or other configuration formats, depending on the request, so not every response will look the same.
Standard Base64 uses letters, digits, +, and /, and may end with = padding. URL-safe variants may use - and _; some implementations omit padding. So the presence or absence of an equals sign alone doesn’t tell you whether a subscription is valid. The example below illustrates the encoding only and contains no usable connection configuration.
Original text: Man
Base64:TWFu
Original text: M
Base64:TQ==
Keep the outer Base64 encoding separate from encoding inside individual links. A common VMess share link carries encoded parameters after vmess://; a VLESS share link usually uses a URI structure with a server address, port, and query parameters. Their parsing rules differ even when both appear in the same outer subscription. Don’t repeatedly decode the entire URL and save the result as if it were the original address.
Use one subscription on both clients: shared source, separate local settings
You can add the same subscription URL to v2rayNG and v2rayN if your provider allows multiple devices and both clients support the protocols and transport settings it returns. v2rayNG uses the Xray core. The protocols supported by v2rayN also depend on the selected core and the core version bundled with the client. Being able to parse a subscription doesn’t mean every configuration in it will work.
Recommended setup: Separate groups, update each client
Desktop (v2rayN)
- Save the original URL in “Subscription Group Settings.”
- Choose direct or proxied updates based on whether the subscription source is reachable.
- Configure the active server, system proxy, and routing rules separately.
Android (v2rayNG)
- Add the same subscription source in “Subscription Group Settings.”
- After selecting “Update subscription,” check the group and server names.
- Confirm VPN permission and per-app proxy coverage separately.
Using the same source doesn’t mean the clients stay in sync. Update each one separately. Differences in update times, subscription output, and protocol support can all lead to different server lists.
When refreshed, a subscription typically replaces or rebuilds configurations in that group according to the client’s behavior. Don’t rely on subscription-generated servers to retain important manual changes. For custom connections you need to keep, create a separate manual configuration and note why you changed it. Deleting a subscription server locally doesn’t remove it from the provider’s source, so it may return after the next update.
- Automatic updates: If your version has an “Auto-update interval (minutes)” setting, check its units and requirements. For example, 1440 minutes is 24 hours, but that doesn’t guarantee the app will run on schedule while it’s closed.
- Number of configurations: If the server count changes, first check whether the subscription source has changed. Then look at group filters and protocol compatibility; a different count alone doesn’t mean the client lost data.
- Local settings: System proxy, routing, and per-app proxy settings are separate from the server list. A successful update doesn’t remove the need to check them.
Troubleshooting subscription updates and unusable imports
First, separate troubleshooting into three stages: Was the URL saved? Was the subscription fetched and parsed? Can the selected configuration connect? Mixing these up leads to wasted steps, such as reimporting because a server won’t connect or changing routes because an update failed. Check the update message or request result in the logs before deciding what to do.
I saved the group, so why is the server list still empty?
Saving a group doesn’t automatically update it. In v2rayNG, return to the main screen and select “Update subscription.” In v2rayN, open “Subscription Group” and choose an update option. After it finishes, check the relevant group. If it’s still empty, look for a parsing error.
The update timed out. Should I use a proxy?
First check that your device has a working internet connection and that the subscription domain is reachable. If you already have a working configuration, v2rayN can use “Update all subscriptions (through proxy).” In v2rayNG, connect using a working configuration and try again. If the proxy connection itself is down, fix it or switch to a network that can reach the subscription source.
I got a 401, 403, or 404 error. What should I change?
A 401 usually points to an authentication issue; a 403 may indicate a permissions, token, or access restriction problem; a 404 often means the path is no longer valid. Copy the current subscription URL again from your provider’s site and check your account status. Don’t remove URL query parameters just to get around the error.
The page opens in a browser, but the client says there are no valid configurations. Why?
The browser may be showing a login page, an access verification page, or an error message instead of subscription content. On your provider’s site, choose an export format for v2rayNG or v2rayN. If you received a full configuration file, don’t assume a standard share-link subscription importer can parse it.
The update succeeded, but websites still won’t load after I select a server. What should I check?
Make sure the server is set as the active configuration and the service is running. On desktop, check the system proxy or other connection method; on Android, check VPN permission and app coverage. Then review the connection logs for DNS resolution issues, timeouts, or incompatible parameters. A successful import only means the configuration parsed; it doesn’t prove the server is reachable.
What to check after importing
The goal of subscription management is to keep an updateable source, not just populate a server list. Run through a full check after your first import to make it easier to pinpoint issues later. For installation and first-connection steps, read the Getting Started guide.
- Check the source: The subscription URL is in the group’s address field, its query parameters are intact, and it isn’t a login page URL or a single share link.
- Check the update: Look for a completion message and confirm the target group contains configurations. If it fails, keep the error text after removing sensitive information instead of repeatedly retrying without checking.
- Check the connection: Select a configuration and start the service. Make sure the active one isn’t an expired configuration imported manually.
- Check app access: Desktop apps use the configured proxy entry point; Android apps must be covered by the VPN and per-app settings.
- Check maintenance: When switching devices, add the subscription source again instead of relying on the old device’s cached list as the provider’s current configuration. Reset the token promptly if the subscription URL is exposed.