Add subscription URLs to a subscription group; import individual node links from the clipboard. This guide is for first-time v2rayN and v2rayNG users: identify the link type, follow the desktop or Android menu path to update nodes, then check protocol fields, connection status, and update errors. Saving a subscription does not mean its nodes have been downloaded, and seeing nodes does not mean proxying is handling app traffic.
1. Tell subscription URLs from node links
A subscription URL usually starts with https://. The client fetches the remote resource, retrieves a node list, and parses it into local configurations. A node share link describes a single node and commonly starts with vless:// or vmess://. These link types use different menus—don't paste them into the same field just because both can be copied.
| What you have | How to identify it | Where to import it |
|---|---|---|
| Subscription URL | Usually an HTTPS URL that returns node data | URL field in a subscription group |
| VLESS share link | Starts with vless:// | Clipboard import for multiple links |
| VMess share link | Starts with vmess:// | Clipboard import for multiple links |
| Base64-encoded subscription content | Usually decodes to share links, one per line | Get the original subscription URL and add that instead |
| Account management page | Opens a login, plan, or node management page | Find the subscription option intended for your client |
An HTTPS prefix alone doesn't mean a URL is usable. An account page and a subscription endpoint may share a domain but return completely different content. If the provider offers multiple subscription formats, choose one explicitly intended for v2rayN, v2rayNG, or a generic list of share links. Don't give the client a file for a different configuration system and expect it to parse it.
2. v2rayN: Add a subscription group, then update it
On desktop, create a group before updating it. In common versions, go to “Subscription Group” → “Subscription Group Settings” in the main window. The add button may appear as “Add” or “+” depending on the version; either opens a window for the group remarks and URL. The steps below use common menu labels in the Chinese interface. Button placement can vary between versions.
-
Copy the subscription URL
Copy the complete subscription URL intended for this client from the provider's page. Make sure it doesn't include explanatory text, leading or trailing spaces, or line breaks. Don't copy the account management page URL from your browser's address bar.
-
Add a group
Go to “Subscription Group” → “Subscription Group Settings” → “Add”. Enter a recognizable remark, such as “Daily”, and paste the URL into the “URL” field. The remark is only for local identification; it doesn't change the server configuration.
-
Save and update
Save the group, then go to “Subscription Group” → “Update All Subscriptions (without proxy)”. If this is your first setup and no usable nodes are available yet, try this option first. Watch the log at the bottom and wait for the request and parsing to finish.
-
Select a node
Switch to the new subscription group and check the node count and protocol column. Select a node, then choose “Set as active server” from the right-click menu. In some versions, you can also select a node and press Enter.
-
Verify app traffic
Select “Set system proxy automatically” under “System Proxy” at the bottom of the main window or in the tray menu, then test with a browser that uses the system proxy. Adding a subscription without enabling the system proxy won't automatically change how every app connects.
If you only have a single node link, you don't need to create a remote subscription first. In the main window, choose “Servers” → “Import bulk URLs from clipboard”, or use the shortcut shown in the interface. The common Windows shortcut is Ctrl+V. When importing multiple links, put each share link on a separate line. Manually imported nodes don't gain subscription updates just because you copied a link once.
If an update without proxy fails but an existing node still connects, try “Update All Subscriptions (through proxy)”. This only changes the network route used for the subscription request; it won't fix an invalid token, expired account, or incompatible response format. First make sure the active node works.
3. v2rayNG: Subscription groups and clipboard import
v2rayNG on Android uses the Xray core to handle connections; subscription management retrieves and converts node information. The usual path is the top-left “☰” menu → “Subscription group settings”. If your version displays the menu with a different icon, look for the “Subscription group settings” label. Don't enter a subscription URL on the single-node editing screen.
-
Open group settings
Go to “☰” → “Subscription group settings” and tap “+” in the top-right corner. On the new group screen, enter a “Remark” and “URL”. You can use the same remark as on desktop to make the source easy to recognize.
-
Save the URL
Paste the complete subscription URL and tap the save icon in the top-right corner. Return to the list and confirm the new group appears. Saving only creates a local record; the nodes haven't been downloaded yet.
-
Update nodes
Return to the main screen, open the “⋮” menu in the top-right corner, and select “Update subscription”. Wait for the result, then open the relevant group to view its nodes. If the request fails, check the error first instead of adding the same group repeatedly.
-
Start a connection
Tap a node, then tap the connection button on the main screen. The first time you connect, Android will ask to set up a VPN connection. Approve it, then check the notification shade and the app's connection status. This authorization creates a local traffic path; it doesn't guarantee the remote node is reachable.
Single-node import follows a different path: copy the complete vless:// or vmess:// link, then tap “+” → “Import from clipboard” on the main screen. A QR code is just another way to carry a link; scan it using “Scan QR code”. A QR code containing a subscription URL should still be handled as a subscription—not assumed to represent a single node.
4. Base64, VLESS, and VMess: What the fields mean
Base64 is an encoding, not a proxy protocol or a form of encryption. A common subscription format encodes multiple share links, arranged one per line. A VMess share link often encodes a JSON object after its protocol prefix. Both can contain long strings, but their structures and purposes differ. String length alone doesn't tell you which import option to use.
VLESS share link
- Prefix
vless://- Identity
- Usually a UUID in the user information
- Transport
- The
typeparameter describes the transport method - Security layer
securitycan specify TLS or REALITY
VLESS is not the same as REALITY. The security layer and transport must match the server configuration.
VMess share link
- Prefix
vmess://- Common payload
- Base64-encoded JSON
- Address and port
add、port- Identity and transport
id、net
These fields are part of a common share-link format, not a core configuration file to use as-is. The importer converts them.
After importing, check the address, port, user ID, transport type, and security layer first. For WebSocket, also check the Host and path. For TLS or REALITY, verify the server name and related parameters. Don't change every node's port to 443 just because the import succeeded, or disable certificate verification to make an error go away.
These three numbers refer to different things. The HTTPS port on a subscription URL is used to download the node list; a node's remote port is used to establish the proxy connection; and a local listening port accepts app requests. A reachable subscription URL doesn't prove that a node's port is reachable. When reviewing JSON fields, use the subscription configuration guide and glossary to distinguish client settings from core configuration.
5. Troubleshoot update errors, empty node lists, and connection failures
Start by identifying when the failure occurs. A subscription download fails while fetching the list; a parsing error occurs while reading the response; a connection failure happens when the client tries to connect through a node that's already listed. Mixing these issues up can lead to reinstalling the client repeatedly without checking the URL or field that actually failed.
| Symptom | Check first | Next step |
|---|---|---|
| Request timed out | Current network, DNS resolution, and whether updates are routed through a proxy | Switch networks; if a node is available, compare with an update through the proxy |
| HTTP 401 or 403 | Token, account status, and access restrictions | Copy your unique subscription URL again and confirm access with the provider; a 403 doesn't always mean the subscription has expired |
| HTTP 404 | Check whether the URL path is complete and the endpoint has moved | Get the current subscription URL again from your account page |
| Request succeeds, but no nodes appear | Check whether the response is a login page and whether the format is compatible | Choose a format intended for your client and check the group filters |
| Duplicate nodes appear | Check for duplicate groups or repeated manual imports | Organize groups by source and remove records you've confirmed are redundant |
| Nodes appear, but none connect | Remote port, protocol parameters, device time, and core logs | Try another node in the same group for comparison; don't assume the subscription import is at fault |
Base64 content may contain line breaks, and some encodings omit the trailing padding characters. If parsing fails, don't randomly add or remove characters and retry. Ask the provider for a compatible raw subscription endpoint instead. Preserve &, %, and query parameters in the subscription URL. In particular, don't treat & in page source as the actual separator in the URL.
Copied a link, but the clipboard has nothing to import. What should I do?
First check whether you copied a node share link. If it's an HTTPS subscription URL, use subscription group settings instead. For a share link, confirm the prefix is complete and that it doesn't include chat text or quotation marks, then copy it again from a trusted source. On Android, also make sure the app is in the foreground when it reads the clipboard.
Will updating a subscription keep manually edited node settings?
Don't rely on subscription updates to preserve individual edits. The client may regenerate subscription entries, and the provider may change node identifiers. If you need to make manual changes, save a separate entry and label its purpose to avoid confusing it with the subscription source. You'll still need to sync it manually when the remote configuration changes.
Why can't my browser open pages when the latency test succeeds?
A port or latency test checks only part of the connection; it doesn't confirm that a complete request will succeed. Check the active node, system proxy, DNS, and routing rules, then review the actual connection logs. Test results don't replace checks for TLS, authentication, or access to the destination site.
6. Share a subscription across devices, but manage routing separately
Whether one account can be used on multiple devices depends on the provider's device and concurrency limits. If sharing is allowed, you can save the same subscription URL on both devices, but you must update each one separately. A successful desktop update won't push nodes to your phone. Even with identical node lists, active nodes, routing rules, and the apps whose traffic is proxied remain local to each device.
Two-device setup: share the source, verify each device independently
Desktop: v2rayN
- Save the source URL in a subscription group and update it.
- Select an active node and check that the system proxy is enabled.
- Set routing for your needs; a subscription isn't a complete rule set.
Android: v2rayNG
- Add the same URL separately and confirm that your account allows multiple devices.
- After updating, select a node and approve the Android VPN connection.
- If per-app proxying is enabled, check that the target app is included.
A shared subscription only keeps the node source consistent. Check the update time, active node, and traffic policy on each device.
How TUN relates to subscription updates
On desktop, TUN mode handles traffic; it's not required to download a node list, and there's no universal “subscription TUN field” across cores. Start with a minimal configuration to verify the node, then adjust traffic handling for your apps. Android VPN authorization likewise doesn't prove that the remote connection is working. For configuration boundaries, see the routing guide and TUN mode guide.
- Check the source after updating: The group remark, update time, and node count should be as expected. If the list is empty, check the logs.
- Check the active node before connecting: Newly imported nodes may not become active automatically, and an update doesn't switch nodes immediately.
- Keep essential details when migrating: Record the subscription source and the purpose of local rules. Don't share full node credentials in public channels.
- Update each device after changing a token: Replace the URL on both devices, update each one, then remove the old group.