VMess and VLESS Links vs. Subscription URLs: How to Import Them

Learn what single-server links and subscription URLs contain, when to use each, and how to import via clipboard or QR code and update subscriptions in v2rayN and v2rayNG.

At a glance

Choose the import method based on what the link is for: vmess:// and vless:// links usually describe a single server, while a subscription URL retrieves and updates a set of configurations. This guide is for anyone who has a link but isn't sure where to paste it. Follow the steps for desktop or Android, and learn the difference between a successful import, a successful subscription update, and a working proxy connection.

Share links vs. subscription URLs: one stores a configuration, the other retrieves it

vmess:// and vless:// are URI prefixes that clients use to recognize connection configurations, not regular web addresses. A common VMess share link encodes a JSON configuration after the prefix. A typical VLESS link organizes details as a user ID, server address, port, and query parameters. Supported fields vary by client and core version.

Subscription URLs usually start with https://. The client fetches a list of servers or other supported configuration data, then saves it locally. A subscription isn't a separate proxy protocol: one subscription can include servers using VMess, VLESS, and other protocols. Regular websites also use HTTPS, so the prefix alone doesn't prove that a URL is a subscription.

Subscription URLs: maintain a set of servers over time

Recommended

A subscription saves the source of your configurations so you can fetch them again later. If the provider changes domains, ports, or its server list, update the subscription in your client to get the changes. The result also depends on group settings and the content returned by the provider.

Best for: keeping multiple servers in sync when your provider offers a subscription URL.

Share links: import one specific configuration

Importing a share link saves the server details it contains. If the server settings change, the old link won't update automatically; import the new link or edit the configuration manually. You can also import multiple links at once, but that doesn't give them subscription update support.

Best for: quick tests, self-hosted servers, or moving a single configuration.

Bottom line: keep the subscription source if you need ongoing updates

If you received a subscription URL, don't export just one server and then delete the subscription group. Keep the group and its update option so you can sync changes when the provider updates its configurations.

Link parameters: what they contain and what to preserve

A server name is just a label; it doesn't tell you whether the connection works. The actual connection depends on the server address, remote port, user ID or password, and transport and security settings. VLESS doesn't provide traffic encryption on its own; security depends on settings such as TLS or REALITY. A VLESS link doesn't necessarily mean encryption is configured correctly.

ParameterCommon valuesWhat to check after import
Connection targetServer hostname or IP address, remote portMatch the provider's details; don't use the local listening port.
IdentityUUID and protocol-specific authentication fieldsKeep all values intact; don't use credentials from another server.
TransportWebSocket, gRPC, and moreThe path, Host, service name, and other values must match the server.
SecurityTLS, SNI, REALITY public key, and moreDon't disable verification or remove parameters just to get past an import error.
Display nameLink fragment or configuration noteIf the name displays incorrectly, edit the note without changing connection settings.

These three ports illustrate different roles; they aren't values to apply to every configuration. Use the server port specified in the node configuration and the local listening port set by the client.

443
Default HTTPS port, also commonly used by TLS servers
80
Default HTTP port; it doesn't mean TLS is enabled
10808
Common local listening port in v2rayN; check the client settings

v2rayN: import VMess and VLESS from the clipboard

These steps use the common Chinese-language interface; menu labels may vary slightly by version. First, choose the right v2rayN for your system from the download center, then follow the setup guide to get started. If you only have a server link, import it from the clipboard. Don't paste the full link into a subscription group's URL field.

  1. Copy the entire link. Copy everything from vmess:// or vless:// to the end. Leave out quotation marks, explanatory text, and any line breaks added by chat apps. For bulk imports, put each link on its own line.
  2. Import the link. In the v2rayN main window, open the “Servers” menu and choose “Import bulk URLs from clipboard.” A similar option labeled “share links” does the same thing. On Windows, the common shortcut is Ctrl+V. Make sure the server list in the main window is focused, not the search box.
  3. Check the result. Verify the new server's name, protocol, and port. Open its settings and confirm the transport and security options match the original configuration. If you see a warning about unsupported parameters, check whether your client version supports them.
  4. Set the active server. Select the imported server and choose “Set as active server” or the equivalent option from the context menu. Importing adds a configuration; it doesn't switch the connection.

If you only have a QR code, ask the provider for the original text if possible. You can also scan it from within the client if it has an on-screen scanning option. Make sure the whole code is visible, sharp, and unobstructed. Don't upload a QR code containing credentials to a public scanning service. Check the imported configuration afterward; a QR code is only a way to carry text.

v2rayN: add a subscription group and update it

A subscription group stores where to fetch configurations from; the server list shows what was fetched last time. If the list is empty after you create a group, you probably haven't updated it yet. That doesn't necessarily mean the URL is wrong.

  1. Create a group. Go to “Subscription Groups” → “Subscription Group Settings.” Add a recognizable name, such as “Everyday servers,” paste the complete subscription URL from your provider into the URL field, and save.
  2. Fetch the subscription. Open the “Subscription Groups” menu and choose “Update all subscriptions (without proxy)” or the equivalent direct-connection option. Start with the network connection currently available; you don't need to enable a server that isn't working yet.
  3. Check the result. Look in the update log for a success message and check whether servers appeared in the group. A completed HTTP request isn't enough: if the response was a login or error page, the client may still be unable to parse it.
  4. Switch the update route if needed. If the subscription service isn't reachable on your current network and you already have a working server, try “Update all subscriptions (through proxy).” Don't keep switching to proxy updates if you don't have a working proxy.

v2rayNG: clipboard imports, QR codes, and subscription updates

v2rayNG is an Android client that uses the Xray core. The clipboard and QR scanner are ways to enter configurations; VPN permission controls whether the app can route traffic. These are separate steps. The first time you connect, Android will ask you to approve the VPN connection.

Single links: use the add button in the top-right corner

  1. Copy the full share link, open v2rayNG, and tap “+” in the top-right corner → “Import config from clipboard.” After importing, check that the configuration appears in the list rather than relying only on a confirmation message.
  2. If the QR code is on another screen or printed on paper, tap “+” → “Scan QR code.” Grant camera access if prompted and fit the entire code in the viewfinder.
  3. If the QR code is saved on the same device, use the gallery option if the scanner offers one. If it doesn't, use the original text instead; there's no need to keep taking and saving screenshots.
  4. Select the configuration you want, then tap the connect button on the main screen. Approve the VPN connection when Android prompts you, then check the status and logs.

Subscription URLs: save the URL, then fetch the servers

  1. Open the top-right menu → “Subscription Group Settings.” Tap the add button, enter a note and the full URL, save, then return to the main screen. Some versions call this “Subscription Settings.”
  2. From the main screen menu, select “Update current group subscription.” To fetch from all sources, choose “Update all subscriptions.” If the list is filtered by group, make sure the right subscription group is selected.
  3. Wait for the update to finish, then check the server count and any error messages. To choose whether subscription requests go through a proxy, look for the relevant option in settings. Proxy updates only make sense if you already have a working connection.

A QR code can contain either a share link or a subscription URL. If scanning returns an HTTPS URL but adds no servers, first check whether it's a subscription link, then add it in the subscription group settings. Being able to scan a QR code doesn't mean the current import option can handle every type of content it contains.

One subscription on desktop and Android: same source, separate connection settings

If your provider allows multiple devices, you can add the same subscription URL to both clients. Whether they can connect at the same time, how many devices are allowed, and the available data allowance are determined by the provider's rules, not the subscription format. The clients may also differ in core versions and supported fields.

Use one subscription on both devices, then verify each connection separately

Desktop: v2rayN
  • Create a separate subscription group and confirm the update returns servers.
  • Choose an active server and configure the system proxy as needed.
  • Use the desktop settings for local ports and routing rules.
Android: v2rayNG
  • Add the same source, then run a subscription update on the device.
  • Select a server and approve the Android VPN connection.
  • Check that per-app proxy settings include the apps you want to route.

A subscription syncs server sources, not system proxy settings, per-app selections, DNS, or routing rules. Update each client separately too.

Set the subscription update interval as the provider recommends to avoid rate limits from repeated requests. When switching devices, move the subscription source and verify the new setup; exporting a server list doesn't automatically transfer all settings.

After import: check proxy behavior in three stages

“The server appears in the list” only means the configuration was parsed. “Subscription updated successfully” only means supported content was retrieved. “The website loads” also depends on the connection, DNS, proxy routing, and traffic rules. Troubleshoot one layer at a time instead of repeatedly reinstalling the client.

Bottom line: if the server connects but an app doesn't work, check routing first

Keep the server you've already verified and check the system proxy, per-app settings, DNS, and routing rules first. A site loading doesn't prove that every app uses the proxy. Requests matched by a direct-connection rule won't be routed through the proxy just because a server is active.

Troubleshooting: import errors, subscription timeouts, and missing servers

Why does importing a vless:// link say there is no valid configuration?

Paste the link into a local text editor and check that the prefix and full link are intact and that the chat app didn't truncate the end. Remove any surrounding quotation marks, but keep the link parameters. Then make sure you're using clipboard import, not the subscription URL field. If the client doesn't support some fields, update to a compatible version or ask the provider for a supported format. Don't remove security settings yourself.

The subscription URL opens in a browser, but the client can't parse it. Why?

Your browser may be logged in, while the client receives a login page instead of subscription data. Make sure you copied the dedicated subscription URL, not an account management page. Check whether the link has expired and whether its output format works with v2rayN or v2rayNG. A page loading in your browser doesn't mean it returned a server list the client can use.

The subscription update keeps timing out. Should I enable the proxy first?

First check your current network and system clock, then try a direct update. Use an update through proxy only if you already have a working server. For a 401 or 403 response, check the URL's access permissions and subscription status. For a 429 response, stop retrying and wait as the provider recommends. Not every error is a network timeout.

Fewer servers after an update, and my custom names are gone. What happened?

Clear any list filters and check the other groups, then review the update log and the provider's server list. Subscription contents can change, and the client may rebuild the server list from the latest response. Save important custom configurations in a separate group outside the subscription. Keeping a copy of a server won't restore a service that's no longer available.

I accidentally shared a subscription QR code. Is deleting the message enough?

Treat it as leaked credentials. Reset the subscription URL or token in the provider's management portal, then replace it on every device and update the subscriptions. If server authentication details were exposed, reset those credentials through the provider as well. Deleting the message can't retract copies others may have made. When asking for help, share only redacted error details.

Download v2rayN