How to Import vmess:// and vless:// Links: Sharing Links vs. Subscription URLs

Learn how sharing links and subscription URLs work, import them into v2rayN and v2rayNG from the clipboard or a QR code, and find out when to use each method.

At a glance

First identify whether you have a single configuration or a subscription URL, then choose clipboard import, QR code scanning, or a subscription group. This guide is for first-time v2rayN and v2rayNG users. By the end, you'll know how to import a configuration, check its key fields, and tell the difference between a configuration appearing in the list, connecting successfully, and traffic actually going through the proxy.

Sharing Links vs. Subscription URLs: Choose the Right Method

vmess:// and vless:// are typically sharing formats for a single configuration. They contain details such as the server address, port, authentication, and transport settings. The client parses the link and saves it as a local configuration. Copying several links at once may import multiple configurations, but that still doesn't create an updatable subscription.

Subscription URLs usually start with https://. The client fetches a set of configurations from the URL and parses them in a supported format. Think of it as an endpoint for retrieving the latest configurations, not as a server node itself. Regular websites and login pages also use HTTPS, so the prefix alone doesn't prove that a URL is a subscription.

Subscription URL

Recommended

Save it as a subscription group and update it when needed. The client can fetch the latest configurations when the provider changes servers or settings, as long as the URL is valid, reachable, and returns a supported format.

Best for: ongoing use, managing multiple configurations, and updating them on several devices.

Single sharing link

Import directly from the clipboard or a QR code to add a specific configuration. Changes on the server won't automatically update the copy saved on your device.

Best for: quick tests, self-hosted servers, and checking a specific configuration.

How to tell: look for the provider's subscription link

If you have a subscription URL, add it as a subscription group. If you have complete text starting with a protocol name, import it as a sharing link. Don't enter an account-management page URL in the subscription field or use a subscription URL as a server address.

VMess vs. VLESS: What the Links Contain

A common VMess sharing format puts a Base64-encoded JSON payload after vmess://. Its fields may include add, port, id, net, path, and tls. Base64 is an encoding, not encryption; unreadable text doesn't mean the authentication details are securely hidden.

A common VLESS sharing link uses a URI format: authentication details come before the hostname, the port follows the hostname, transport and security settings come after the question mark, and a label usually follows the hash. Sharing-link details may vary across clients. Recognizing vless:// doesn't mean the current core supports every combination of settings.

Parameter typeCommon fieldsWhat to check after import
Server and authenticationadd, port, id; VLESS host, port, and UUIDMake sure the address, port, and user ID match the provider's details. Don't rely on the label alone.
Transportnet、type、path、serviceNameDistinguish WebSocket from gRPC; don't use a path in place of a service name, or vice versa.
Connection securitytls、security、sni、fpCheck whether the connection uses TLS or REALITY, and confirm the domain and fingerprint required by the server.
REALITY and flow controlpbk、sid、flowUse the public key, short ID, and flow control settings specified by the server. Don't reuse values from another node.

VLESS doesn't provide transport encryption on its own; consider the security layer used in the actual deployment. encryption=none in a link doesn't necessarily mean the entire connection is unencrypted—check settings such as security too. Don't disable certificate verification or change the SNI at random to troubleshoot a failed connection.

v2rayN: Import from the Clipboard or Scan a QR Code on Screen

On desktop, start with the complete, original text. Don't copy a truncated preview or include quotation marks and explanatory text from a chat message. The steps below refer to a common Chinese-language interface; menu names may vary slightly across desktop versions. Look for the functions to import from the clipboard and scan a QR code on screen.

  1. Copy the link. Select the entire line, starting with vmess:// or vless://. For bulk imports, put each link on its own line without breaking it across lines.
  2. Import the link. Open v2rayN and select “Servers” → “Import batch URLs from clipboard.” Check the import result and confirm the expected configuration appears in the list.
  3. Check the fields. Open the new configuration for editing and compare the protocol, address, port, transport, and security settings with the provider's details. Don't rely on the label alone.
  4. Set it as the active server. Select the new configuration in the list and set it as the active server. Check that the core starts normally before testing access.

What to do if you only have a QR code

Display the full QR code on screen, then select “Scan QR code on screen” from the “Servers” menu. This desktop feature usually scans what is displayed on screen; it doesn't use a phone's camera. If the option isn't available, ask the provider to show the original sharing link and import it from the clipboard instead.

A successful import only means the format was accepted. If websites still won't load, first check the system proxy status at the bottom of the window, then confirm that your apps use the system proxy. For installation steps, see the Getting Started guide. Don't change the system proxy, TUN, and routing rules all at once before confirming that the basic configuration works.

v2rayNG: Import from the Android Clipboard or a QR Code

v2rayNG uses the Xray core, but whether it can connect depends on the bundled core version and the server settings. These steps cover a single sharing link. Add subscriptions through the subscription group menu, and keep them separate when troubleshooting.

  1. From the clipboard: Copy the complete link, open v2rayNG, then tap “+” in the top-right corner of the main screen → “Import from clipboard.” If prompted for clipboard access, approve it for this action.
  2. From a QR code: Tap “+” → “Scan QR code,” grant camera permission if prompted, and fit the full code in the viewfinder. If the image is saved on your device, select it in the scanner if image recognition is supported.
  3. Check the configuration: Return to the configuration list, select the newly imported entry, and check its address, port, and transport settings on the edit screen. Make sure you haven't mistaken an older configuration with the same name for the new one.
  4. Connect: Tap the connect button. The first time you connect, Android will ask for permission to set up a VPN connection. Approve it, then check the status and logs.

If a configuration passes syntax checks but won't start, note the exact error message. Unsupported protocol settings, authentication failures, and connection timeouts are different problems. Don't switch protocols at random, and never copy VMess fields straight into a VLESS configuration.

Add a Subscription: Save the URL, Then Update

Adding a subscription usually takes two steps: save the URL, then update it. Entering a name and URL alone doesn't guarantee that configurations will appear in the list immediately. During an update, the client fetches content from the server, parses it, and adds the configurations to the relevant group.

Use the same subscription on desktop and Android

Desktop: v2rayN
  • Open “Subscription Group” → “Subscription Group Settings.”
  • Add a group, enter a recognizable label, paste the complete URL into the URL field, and save.
  • Open the “Subscription Group” menu and select “Update subscriptions.” For the first update, you can choose not to use a proxy.
  • Check the update results, then select an active server from the relevant group.
Android: v2rayNG
  • Open “Subscription Group Settings” from the side menu.
  • Tap “+”, enter a label and subscription URL, then save.
  • Return to the main screen and select “Update subscription” from the menu.
  • Confirm that the configurations appear in the correct group, then select one and connect.

Each device updates independently; local settings aren't synced between them. The configurations returned may also differ depending on the request. Check the provider's rules for using a subscription on multiple devices.

A subscription update typically refreshes the configurations in its group, and may overwrite manual changes. To keep custom settings, back them up first, then consider saving a separate configuration that isn't managed by the subscription. Local settings such as the system proxy, TUN, and per-app proxy rules won't transfer just because you copied a subscription URL.

After Import: Check Remote and Local Ports Separately

The server port connects to the remote service; the local listening port accepts proxy requests from apps on your device. They don't need to match. The numbers below are examples to help identify each port, not default settings to copy. Use the provider's server details and your client's current settings.

443
Example remote TLS server port
10808
Example local SOCKS listening port
10809
Example local HTTP listening port

For example, if the provider specifies remote port 443, don't change it to 10809 just because your browser's proxy settings show 127.0.0.1:10809. Some versions use a mixed local listener, with HTTP and SOCKS sharing a port, so check the current settings directly.

  1. Check the core first: If the logs say a listening port is already in use, resolve the local conflict first. That's separate from whether the subscription content can be parsed.
  2. Then check the configuration: Select the target entry and check its authentication, transport, and TLS settings. Make sure your system clock is correct.
  3. Finally, check the apps: On desktop, confirm the system proxy or in-app proxy settings. On Android, make sure the connection is active and the app is included in the proxy rules.

Recommended order: Test one configuration before expanding

First, make sure one configuration starts the core and works for actual browsing. Then configure automatic updates, TUN, and more specific routing rules. A configuration appearing in the list doesn't mean it connected successfully, and a successful latency test doesn't mean every app is using the proxy.

FAQ: Import Errors, Duplicate Entries, and QR Code Results

Why does it say there are no valid configurations after I copy a link?

Paste the text into a local text editor and check that the protocol prefix is complete, the end of the link hasn't been truncated, and no quotation marks or explanatory text were included. Don't remove parameters after the question mark. Copy the original link again and retry. If it still fails, check whether your client supports that sharing format and its parameters.

Why doesn't a QR code add a node even though it scans?

A QR code only carries text; it may contain a subscription URL or a regular web page. Check the prefix of the scanned result: import protocol sharing links as configurations, and add subscription URLs through a subscription group. Don't upload your QR code to a public scanning site to troubleshoot it.

Will importing the same link more than once update the existing configuration?

Deduplication and overwrite behavior can vary by version, so don't rely on repeated imports as an update method. Check the address and settings, then keep the entries you need. For ongoing updates, use the subscription URL provided by the service.

Can I use one subscription on my computer and phone at the same time?

You can save the same URL on both devices, but device limits, concurrent connections, and format compatibility depend on the provider and client. Update each device separately. Configurations you add manually on one won't appear on the other automatically.

Does having a VLESS link guarantee that it will connect?

No. The server setup, authentication, transport, and security settings must all match, and the core must support that combination. Check the startup and connection logs, then ask the provider to verify the specific fields. The protocol name alone doesn't tell you whether a configuration will work.

Keep one simple rule in mind: treat subscription URLs as credentials and imported configurations as unverified until tested. When switching devices, adding the subscription again is easier to maintain than saving screenshots of each configuration. When asking for help, share only redacted error details and parameter names.

Download v2rayNChoose the installer for your operating system