First, check whether you have a subscription URL or an individual proxy share link, then choose the right import method. This guide is for first-time v2rayN desktop and v2rayNG Android users: add subscription URLs to a subscription group and update it; import individual share links from the clipboard or a QR code. Finally, check the server list, active configuration, and proxy settings—adding a subscription does not necessarily mean you're connected.
Subscription URLs vs. share links
A subscription URL lets the client periodically retrieve a set of configurations, and usually starts with https://. An individual share link describes a single server and commonly starts with vmess://, vless://, trojan://, or ss://. The former requires a request to a remote server; the latter can usually be parsed locally. Don't treat them as interchangeable just because both are called links.
Import via a subscription group
RecommendedSave the subscription URL, then use it to retrieve the server list. When servers or settings change, update the subscription to sync them instead of pasting everything again.
Best for: subscription URLs that need to stay up to date.
Import from clipboard
Copy one or more supported proxy share links and import them as servers. This does not create an ongoing update link to the original subscription.
Best for: testing a single server or migrating a few manually configured servers.
Import from QR code
Scan the text in a QR code, then handle it according to its contents. A QR code is just a way to carry information: it may contain a share link, a subscription URL, or an ordinary web address.
Best for: transferring a configuration between a computer and a phone without typing it manually.
Import a subscription group in v2rayN
Start by choosing the v2rayN version for your system from the download center, then open the client. The steps below use common Chinese menu labels; button locations and wording may vary slightly between versions. Look for the functions corresponding to “Subscription Group Settings” and “Update Subscription.” Adding a group only saves the URL—you must update it before servers appear.
-
Copy the subscription URL
On the provider's page, click “Copy Subscription URL.” Make sure you copy the complete URL—not the page title or login page address—and don't include surrounding quotation marks or line breaks.
-
Open subscription group settings
From the main window, select “Subscription Group” → “Subscription Group Settings.” In the settings window, click “Add”; some versions use “+” to add a group.
-
Enter the group details
Enter a recognizable name in “Remarks,” then paste the URL into “Optional address (Url)” or the subscription URL field. Leave other settings unchanged for the initial setup, then save.
-
Update the subscription
Return to the main window and select “Subscription Group” → “Update All Subscriptions (without proxy).” If you have several groups, use the update option for the specific group to avoid changing the others.
-
Select an active server
Switch to the group you just added and check that its server list is populated. Right-click the server you want and select “Set as active server.” Enable the system proxy if needed—selecting a server alone does not activate it.
If a direct connection can't retrieve the subscription and the client already has a working server, try “Update All Subscriptions (through proxy).” This requires an existing proxy connection; it can't fix network access if you have no working configuration. After updating, check the client’s status area for confirmation that the content was retrieved and parsed—not just that the group name appears.
- The group is there, but the list is empty: Update the subscription, then check whether the response contains a valid subscription.
- Importing a single server? Copy its share link and select “Servers” → “Import batch URLs from clipboard.” Don't paste a share link into the subscription URL field.
- Edited subscription servers manually? Back up your changes first. Updating the subscription may overwrite or replace entries it generated.
Clipboard and QR code import in v2rayNG
v2rayNG is an Android client that uses the Xray core. Importing from the clipboard, scanning a QR code, and adding a subscription group are separate options. If you have a subscription URL, save it in a subscription group. Don't assume “Import from clipboard” will recognize an ordinary web address as a subscription.
-
Add a subscription group
Open the side menu and select “Subscription Group Settings” → “+”. Enter a remark and the subscription URL, then save. Back on the main screen, open the top-right menu and select “Update subscription.” Wait for the list to refresh.
-
Paste a share link
Copy the complete server share link. On the main screen, tap “+” → “Import from clipboard.” If Android asks whether to allow clipboard access, verify the source and allow access for this import.
-
Scan a server QR code
Tap “+” → “Scan QR code,” grant camera access, and point the camera at the complete code. If your version can scan from an image, you can use a saved picture. If scanning fails, check that the image hasn't been cropped.
-
Select and connect
Select the imported configuration, then tap the connect button. The first time you connect, confirm the VPN connection request when prompted. Importing a configuration or granting camera access alone won't start a proxy connection.
Importing a server that already exists may create a duplicate. Check the group and server remarks first, then decide which entry to keep. On a phone, make sure the selected configuration is the new server—not an older one you tested earlier.
Base64 subscriptions vs. individual share links
A typical subscription response is text containing multiple proxy share links; sometimes the entire text is also Base64-encoded. The client requests the subscription URL, then attempts to identify and parse the response. Base64 is encoding, not encryption: anyone who obtains it can usually recover the text. Don't treat an encoded subscription as safe to share publicly.
| Content type | How to identify it | What to do |
|---|---|---|
| Subscription URL | Usually an HTTPS URL identified by the provider as a subscription link | Add it to a subscription group, save, then update |
| Base64-encoded subscription content | A block of encoded text that usually decodes to multiple lines of share links | Use the original subscription URL where possible; let the client process the response |
| VMess share link | Commonly starts with vmess:// and contains an encoded configuration | Import from the clipboard or a server QR code |
| VLESS share link | Commonly starts with vless:// and includes a user ID, server, and query parameters | Import from the clipboard or a server QR code |
| Web page or other configuration format | A login prompt, HTML page, or format the client doesn't support | Return to the provider's page and choose a compatible subscription format |
Don't remove ?, &, or percent-encoded characters from a link just to “fix” its format. VLESS and other share links may use query parameters to carry the transport, TLS, SNI, path, or other required settings. Removing any of them may leave you with a configuration that imports but won't connect.
- There may be multiple encoding layers: A subscription may be encoded as a whole, while VMess share links inside it may contain their own encoded data. Don't assume everything needs to be decoded just once.
- A URL isn't the same as its contents: Copying a long block of encoded text displayed in your browser doesn't give you a subscription URL that can be updated over time.
- Check format compatibility: If the provider offers multiple export formats, choose one explicitly intended for v2rayN, v2rayNG, or the relevant share link.
Use one subscription on both devices, then check each import
You can save the same compatible subscription URL on desktop and Android, but each client makes its own requests and updates; they don't sync with each other in real time. Using both at once also depends on the provider's device, connection, and data limits. Sharing a subscription URL won't sync system proxy settings, routing rules, or per-app settings on your phone.
Use one subscription on both devices
v2rayN for desktop
- Save the URL in a subscription group, update it, then select an active server.
- Set the system proxy for the apps you use, and check routing rules separately.
- If automatic updates are enabled, check the client's update interval.
v2rayNG for Android
- Add the subscription group separately, update it, then select a configuration.
- Confirm Android's VPN permission and check per-app proxy settings if needed.
- When switching devices, update the subscription on that device instead of relying on the desktop's refresh.
Using the same subscription avoids entering it twice, but the lists on each device may differ depending on update times, response contents, and client compatibility.
Check these three things to confirm setup
- Confirm the content was retrieved: The subscription update completed without parsing errors, and servers appear in the current group. An empty group alone does not mean the import is complete.
- Confirm the server connects: Select the server and run the client's connection test, then check the results in the logs. Some tests only check whether a port is reachable; they don't replace testing a complete web page load.
- Confirm your apps are using the proxy: On desktop, check the system proxy; on a phone, check the connection status and which apps are covered. Test a site you know is reachable before deciding whether to adjust routing.
If the server test passes but your browser can't connect, first check whether the app is using the proxy—don't rebuild the subscription right away. For a more detailed walkthrough, see the subscription import guide in Getting Started. To distinguish direct connections from proxy rules, read the routing rules guide.
Common subscription import questions
I added a subscription, but no servers appear. Why?
In v2rayN, select “Subscription Group” and update the subscription; in v2rayNG, select “Update subscription” from the main screen menu. If the list is still empty, check the error message: an expired URL, a login page response, or an unsupported format can all cause parsing to fail. Copy a compatible URL from the provider again instead of repeatedly adding the same empty group.
Why does clipboard import say there are no valid configurations?
Check that the link starts with a prefix supported by the client. If you copied an HTTPS subscription URL, add it to a subscription group instead. If it's an individual share link, copy the complete link again, remove any explanatory text added by the chat app, and make sure Android allows the client to read the clipboard.
Should I change the server port if a subscription update times out?
Don't change the server port as a first step. Retrieving a subscription and connecting to a server are separate stages. First check your local network, system time, and whether the URL is valid; then check whether the subscription domain is reachable. If you already have a working proxy, try updating through it. For HTTP 401 or 403 errors, check your access credentials and the provider's authorization status first.
The QR code scanned successfully, so why can't I connect?
A successful scan only means the text was read. First check whether the QR code contains a server configuration or a subscription URL, then verify that the server, port, transport, and TLS settings are complete. If the configuration in the QR code has expired, scanning the same image again won't fix it—get an updated configuration from the original source.
I sent someone my subscription URL. Is deleting the message enough?
Deleting the message won't invalidate a URL that's already been copied. Look in the provider's dashboard for an option to reset the subscription URL or access token, then revoke the old URL as instructed. Replace the URL in the subscription groups on both devices and update them. If server credentials may also have been exposed, change those through the provider's process as well.