At a glance

When you get a link, first figure out whether it contains one node's settings or is a subscription URL for fetching a list of nodes. This guide is for anyone importing a configuration for the first time: identify the link type, import it on desktop or Android, then check subscription updates, connection settings, and proxy routing. A successful import does not necessarily mean you can browse the web.

Share links vs. subscription URLs

vmess:// and vless:// are URI schemes that clients use to recognize node configurations. They are not web addresses you can browse to like ordinary websites. A link usually describes one node, including the server address, port, authentication details, and transport and security settings. You can import multiple links at once, but they remain a batch of static configurations—not a subscription.

Subscription URLs usually start with https://. The client fetches configuration data from the URL and parses it into a node list. A subscription can return one node or many; what matters is that it provides an endpoint the client can revisit to fetch updated content. A provider's website, purchase page, or account page is not a subscription URL.

Subscription URL: updates from the source

Recommended

If your provider explicitly offers a compatible subscription, save the URL as a subscription group. When you update it, the client fetches the latest node data from that source. How nodes are added or removed, and whether local changes are preserved, depends on the client settings.

Best for: Long-term use, especially when a provider may change servers or connection settings.

Share link: imports current settings

Import one or more nodes directly from the clipboard. If the server address or authentication details change, the old link will not update itself. Get a new link or edit the configuration manually.

Best for: Temporary testing, self-hosted nodes, or a single connection configuration.

Bottom line: Choose the import option that matches the link

For vmess:// or vless://, use “Import from clipboard.” For a subscription URL explicitly provided by your service, use “Subscription settings.” Don't identify a link by its length or whether it opens in a browser.

Parameters in VMess and VLESS links

A common VMess share link has Base64-encoded JSON after vmess://. Decoded, it typically contains fields such as add, port, id, net, host, path, and tls. Share formats vary, so not every Base64 string is a VMess node. Base64 is an encoding, not a way to hide authentication details.

VLESS links usually look more like standard URIs: authentication details appear before @, followed by the server address and port; connection parameters come after the question mark, and the display name usually follows #. The example below is for illustration only: it uses a reserved example domain and an all-zero UUID, so it cannot be used to connect.

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fproxy#Example
1
Nodes typically described by a single share link
36 characters
Length of a standard UUID string with hyphens
443
Example remote TLS port—not a fixed requirement
  • Address and port: This example uses example.com:443. This is the remote server endpoint, not the client's local listening port. Use the port specified in the server configuration.
  • Transport and security: type=ws means WebSocket, and security=tls enables TLS. VLESS encryption=none does not mean the connection has no transport-layer protection.
  • Host, SNI, and path: The WebSocket Host, TLS server name, and server address are separate settings. path=%2Fproxy decodes to /proxy. Don't remove these fields just because the addresses look alike.
  • REALITY parameters: A REALITY link may also include a public key, short ID, server name, and fingerprint. Simply changing a TLS example to security=reality will not make it connect.

If you're just importing a link, there's no need to decode and re-encode it. Manual editing can drop query parameters or corrupt escaped values such as %2F and %23. Copy the provider's complete original link; inspect its structure only when troubleshooting specific fields.

Import nodes from the clipboard in v2rayN

On desktop, open the v2rayN main window before copying the link. The menu labels below are commonly used in the Chinese interface; wording and placement may vary by version. Look for the “Import from clipboard” function, not the option for importing a full configuration file.

  1. Copy the entire link. Start at vmess:// or vless:// and copy through to the end. Leave out any introductory text, bullets, or quotation marks around the link. Put each link on its own line when copying multiple nodes.
  2. Import the link. Go to “Servers” → “Import bulk URLs from clipboard.” If your version supports a keyboard shortcut in the main window, press Ctrl+V. Before importing, make sure focus is not in the search box or a text field.
  3. Check that the node appears. Review its remarks, server address, and port in the list. If a group filter is active, switch to the group where the imported nodes were added or show all nodes. The filter may simply be hiding them.
  4. Verify the key settings. Open the node editor and check the protocol, UUID, transport, and TLS or REALITY settings. Seeing a node in the list only means the link was parsed; it does not confirm that the server will accept its credentials.
  5. Set it as the active server. Select the node, use the context menu to set it as the active server, then test the connection. To route apps that follow the system proxy through it, configure the system proxy as well.

If only some websites connect directly after import, don't immediately reimport the node. First check whether the app uses the system proxy, then see if routing rules send the destination domain direct. For help checking each setting, see the guide to routing and proxying traffic.

v2rayNG import and cross-device setup

The Android app v2rayNG uses the Xray core. Copy the share link, then tap “+” in the top-right corner of the main screen → “Import from clipboard.” Once the new configuration appears, select it and tap the connect button. The first time you connect, approve the VPN connection request shown by Android.

  1. Copy the link, then open the import menu. If the system clears the clipboard or another app overwrites it, copy the link again and import it right away. Don't copy the text of a subscription webpage as if it were a node link.
  2. Check the settings on the edit screen. Verify the server port, user ID, transport, transport security, and any required server name and path. Don't check only the node remarks.
  3. Select the configuration before connecting. A newly added configuration may not automatically replace the one already selected. Make sure the imported entry is selected, then connect and check the logs.
  4. Check per-app settings if needed. If only one app can't connect, see whether it is excluded from proxying. Test with an app that should use the proxy.

Using both clients: check compatibility on each device

Desktop: v2rayN
  • Import individual nodes from the clipboard; save subscription URLs in a subscription group.
  • After importing, select the active server and check the system proxy and routing settings.
  • Keep manual local edits separate from subscription-managed nodes to avoid losing changes during updates.
Android: v2rayNG
  • Import nodes from the “+” menu, or add a URL in the subscription group settings.
  • Select a configuration, approve the system VPN request, then check per-app access.
  • Before using the same subscription, confirm that the provider allows it on both devices and that the returned configurations are compatible.

Sharing a subscription source does not sync settings automatically: update it on each device, and configure the active node, routing, and per-app settings separately.

v2flyNG uses the V2Fly core. Don't assume that its similar name means it supports every VLESS extension and REALITY configuration just like v2rayNG. When choosing a client, check support for the specific protocol combination and core. To switch installers, choose a platform on the client download page.

How to add and update a subscription URL

To use a subscription, save its URL and then update it. Don't paste it into the single-node import option. A subscription response may contain multiple share links or Base64-encoded content; raw JSON is not necessarily a node subscription format the client can parse. Seeing text in a browser doesn't guarantee the client can parse it.

ClientWhere to add itHow to fetch nodes
v2rayN “Subscription groups” → “Subscription group settings.” Add a group and enter the URL and remarks. From the subscription group menu, choose Update subscription. Depending on your network, update directly or through the proxy.
v2rayNG Top-right menu → “Subscription group settings” → “+”. Enter the remarks and subscription URL. Save and return to the main screen, then choose “Update subscription for current group” or the equivalent option to update all groups.

Menu locations may change between versions, but adding a URL and fetching its contents are always separate actions. If the group is still empty after saving, first check whether you ran an update, then review the logs for the HTTP status and parsing messages. A connection timeout means the request did not complete. If you get a login page, authentication error, or other error page, check the URL and authorization again.

  • Keep manual configurations before updating. Put custom settings you need to retain in a separate manual group. A subscription update may rebuild its nodes, so don't assume manually edited entries will be preserved.
  • Choose an update method based on reachability. Update directly if the subscription URL is reachable without a proxy. If it is only accessible through a proxy, connect to a working node first, then use the client's proxy update option. Enabling proxy updates won't help if no working proxy is available.
  • Check your selection again after updating. The source may remove nodes or rename them, and the currently active configuration may no longer work. Check the node list, selected entry, and connection logs before testing access.

Import failures and link security: common questions

Why does importing report that there is nothing to import?

Paste the content into a local text editor temporarily and check that it starts with vmess:// or vless://, not a webpage title or a QR code image. Remove quotation marks and explanatory text around the link. If a long link contains an actual line break, get the complete original link again rather than guessing how to join it.

I imported a single node. Why doesn't updating the subscription change anything?

Clipboard import saves node settings, not a subscription source the client can fetch again. Get the actual subscription URL from your provider, add it to a subscription group, and update it. If you only have a single-node link, reimport it when its settings change.

The node shows a latency result, but websites still won't load. Why?

First, check what the test measures: an open TCP port does not mean protocol authentication succeeded. Check the active node, UUID, TLS server name, transport path, and logs. On desktop, also check the system proxy; on Android, check VPN authorization and per-app access. Don't judge the connection by a single latency number.

Can I send someone my link so they can help troubleshoot?

Don't publicly share a complete link, QR code, or subscription URL. Share links contain authentication details, and subscription URLs may include access tokens. When asking for help, share the error and redact sensitive settings. If a link has already been exposed, replace the relevant credentials on the server or in your provider account; changing the node remarks will not help.

Follow the same troubleshooting order each time: check the link type and make sure it is complete, verify parsing and settings, confirm that the connection is established, then check app proxy settings and routing. This separates malformed input, an unreachable server, and traffic that never enters the proxy—without repeatedly deleting configurations and missing the real issue. For more subscription update problems, see subscription troubleshooting.