After v2rayN is installed, the most important workflow is not simply turning the proxy switch on. You still need to bring node information into the client, confirm that each link contains usable parameters, test several servers, and select the node that performs well on your current network. A subscription may contain dozens or hundreds of servers, while a manually copied share link may represent only one VMess or VLESS profile. Treating both sources in the same way can lead to missing nodes, failed imports, or an apparently connected client that is using the wrong server.
This guide explains the complete process in v2rayN 7.x: importing a subscription URL, adding individual proxy links, scanning a node QR code when the option is available, updating the node list, measuring latency, sorting servers, and switching the active node. The examples focus on common VMess and VLESS links, but the same checks also apply to Trojan and other formats supported by the installed core and client version.
This guide is for v2rayN users who have installed the client but need a reliable method to import proxy links and choose a working node. It covers subscription groups, individual share links, QR-code imports, latency testing, sorting, active-node selection, system-proxy verification, and recovery steps when an imported profile cannot connect.
Understand the three ways to add nodes
v2rayN normally receives node information from one of three sources: a subscription URL, a copied share link, or a QR code. A subscription URL is a web address that returns a list of profiles when v2rayN requests it. The provider can update that list without asking you to copy every node again. An individual share link contains the configuration for one node, such as a VMess or VLESS server address, port, UUID, transport, TLS settings, or Reality parameters.
A QR code is usually an encoded share link rather than a separate protocol. Scanning it tells the client which profile to create, but it does not verify that the remote server is online. Similarly, successful import only proves that v2rayN could parse the text. It does not prove that the UUID, password, domain, certificate, transport path, or server itself is valid.
| Source | Best use | Important limitation |
|---|---|---|
| Subscription URL | Managing a large list and receiving provider updates | The URL may expire, require access through a proxy, or return an unsupported format |
| Individual share link | Adding one VMess, VLESS, Trojan, or compatible profile | Every parameter must be complete and correctly encoded |
| QR code | Transferring one profile from another screen or device | The camera or image scanner may not be available in every v2rayN build |
Import and update a subscription URL
For a list of multiple nodes, start with a subscription group. Open v2rayN and find the subscription management area, commonly shown as “Subscription Group” or “Subscription Settings” depending on the installed release. The exact labels can change between minor versions, but the operation remains the same: create a group, paste the URL into the address field, save it, and run an update.
-
Create a group
Open “Subscription Group” → “Add” or “Edit Subscription,” enter a recognizable name such as “Primary provider,” and leave the group enabled.
-
Paste the URL
Paste the complete subscription address into the URL field. Do not add spaces, quotation marks, or a line break at the beginning or end of the address.
-
Save the entry
Click “Confirm” or “Save,” then return to the main window. Check that the new group appears in the subscription list before attempting an update.
-
Update profiles
Use “Subscription” → “Update Subscription” or the corresponding toolbar command. If several groups exist, choose the intended group or select the update-all option.
-
Check the result
Look at the main node list and confirm that new profiles have appeared. A successful HTTP request with zero imported nodes usually indicates an expired, empty, or incompatible subscription response.
Some networks cannot open the subscription address directly. If the client provides an “update through proxy” option, first select any known working node, enable that update mode, and try again. Do not enable proxy-based updating before the client has at least one usable node, otherwise the update request may depend on the same unavailable subscription that it is trying to download.
After the import, inspect the group name and node names. Avoid deleting old profiles immediately. Keeping the previous list for one update cycle gives you a fallback if the provider temporarily returns an incomplete response. When the list is clearly refreshed, remove duplicates or expired entries only after confirming that the new profiles work.
Add individual links and scan QR codes
Use an individual share-link import when you have a single VMess, VLESS, Trojan, or compatible URI. Copy the complete link to the clipboard first. In v2rayN, open the node import command from the main menu, context menu, or “Servers” menu. Common commands include wording such as “Import share links from clipboard” or “Add server from clipboard.” Select the command and check whether v2rayN reports the number of parsed profiles.
When several links are copied at once, place one link on each line unless the source explicitly provides another format. Do not paste explanatory text, labels, or a browser page around the links. A link can be syntactically valid but still fail because its hostname, UUID, port, SNI, public key, short ID, WebSocket path, or password is wrong. If the imported name looks truncated or contains unexpected HTML characters, return to the source and copy the link again.
Choose the import method that matches your source
Subscription workflow
- Create a named subscription group
- Update the list when providers change nodes
- Test several profiles before choosing one
Single-profile workflow
- Copy one complete share link
- Import it from the clipboard or QR code
- Check parameters when the link fails
Subscriptions are easier to maintain at scale, while individual links are useful for temporary testing or a profile supplied separately.
If the profile is displayed as a QR code, use the QR import function exposed by your v2rayN build. Depending on the release and platform package, the command may appear under “Servers” → “Import QR Code,” “Scan QR Code,” or a toolbar icon. A QR code stored as an image may require an image-selection command, while a camera-based scan may not be present on every desktop build. If v2rayN cannot scan the image, use another trusted device or viewer to copy the underlying share link, then import the text from the clipboard.
After importing a profile, right-click it and open the server settings before testing if you have reason to doubt the source. For a VLESS + Reality profile, check the address, port, UUID, flow, security mode, server name indication, public key, short ID, and fingerprint. For VMess + WebSocket + TLS, check the host, path, TLS switch, server name, and WebSocket settings. Do not change several fields at random: one incorrect value is enough to cause a timeout or handshake failure.
Test latency and sort the available nodes
Importing a large subscription often creates a list that is too long to evaluate manually. v2rayN commonly provides right-click actions for testing server latency, testing real connectivity, or measuring URL response time. The exact test name depends on the client version and core integration. A lightweight latency test may only measure whether a connection can be opened, while a real-traffic test may use the proxy to request a test URL.
Run the test only after selecting the correct group or node range. Testing 100 profiles at once can create a burst of connections and may trigger provider rate limits. Start with 10 to 20 likely candidates, wait for the results, and then test the best five again. A single result is not enough because Wi-Fi interference, congestion, DNS cache state, and temporary server load can change the number from one run to the next.
| Observed result | What it indicates | Next action |
|---|---|---|
| Low latency and successful connectivity | The node is a strong candidate at this moment | Run a second test, then use it for normal browsing |
| Low latency but websites fail | The test may not cover complete proxy traffic or the node has routing restrictions | Run a real connectivity test and inspect the core log |
| High latency but stable access | The server is reachable but has a longer network path or congestion | Compare it with nearby nodes during another test window |
| Timeout or handshake failure | The profile, server, route, or transport may be unavailable | Check parameters and test a different node |
Sort the list using the available latency or test-result column. If the interface does not provide automatic sorting, use the result column to identify the lowest stable values and move preferred nodes into a dedicated group if supported. Do not select the smallest number blindly. A node with 80 ms latency and repeated successful tests is usually more useful than one showing 35 ms once and timing out during actual browsing.
Why does the latency column show a dash?
The test did not complete or the node has not been tested yet. Confirm that the profile is enabled, then run the test again instead of treating the dash as zero latency.
Why does a fast node still open pages slowly?
The latency check may measure only connection setup. Check packet loss, throughput, DNS routing, TLS negotiation, and the actual response time of the destination website.
Should every imported node be tested?
No. Begin with a manageable sample, remove obvious failures, and test the most promising profiles again during the time period when you normally use the connection.
Can I sort by country name instead?
Yes, if the node names contain useful location labels, but a country label is only an identifier. Sort or compare by repeated connectivity results before making a final choice.
Switch the active node and verify the proxy
Once a candidate has passed repeated tests, click it or use the context-menu command to set it as the active server. In many v2rayN builds, the selected profile is marked with a check symbol or highlight. Selecting a node and starting the system proxy are separate actions: the first changes the outbound profile, while the second makes applications use v2rayN’s local HTTP or SOCKS listener.
- Select the profile: Click the tested node in the main list and confirm that the selection marker moves to it.
- Start the core: Use the main “Run” or “Start” command and wait for the core log to show that the inbound listeners have started.
- Enable the system proxy: Choose “Set system proxy” or the matching tray-menu option if you want supported applications to use v2rayN automatically.
- Test one destination: Open a browser page or use an application that respects the system proxy. Avoid changing DNS and routing settings during this first check.
- Record the result: Keep the node name, test time, latency range, and any log error so that you can compare it with the next candidate.
The local proxy ports are commonly SOCKS on 127.0.0.1:10808 and HTTP on 127.0.0.1:10809, although your configuration may use different values. If a browser is configured manually, its proxy type and port must match the corresponding v2rayN inbound. If the core is running but the browser cannot connect, compare the browser setting, system proxy setting, and v2rayN inbound port before changing the remote node.
Troubleshoot failed imports and unreliable switching
An empty node list after a subscription update usually points to the subscription request or response, not to the remote node. Confirm that the URL is complete, the subscription has not expired, and the response is not an HTML login page. If the provider requires a specific user-agent or update method, follow its instructions. Try updating through an already working proxy only after you have selected a usable profile.
If an individual link imports but cannot connect, compare the profile with the source information. For VMess, check the UUID, alter ID when used, security setting, network type, host, path, and TLS configuration. For VLESS, check the UUID, encryption value, flow, transport, SNI, Reality public key, short ID, and fingerprint. A VLESS profile should not be repaired by copying VMess-only fields, and changing the core from Xray to another implementation may alter which fields are accepted.
Error: subscription update failed or request timed out
Cause and fix: The address may be unreachable, expired, or blocked on the current route. Confirm the URL, test it through a working node if appropriate, and update the subscription again.
Error: failed to parse share link
Cause and fix: The copied text is incomplete, contains extra characters, or uses a format unsupported by the current build. Copy one complete line again and verify that the scheme and encoded parameters are present.
Error: dial tcp: i/o timeout
Cause and fix: The remote address did not respond within the timeout period. Check the server address and port, then compare another node before changing local proxy settings.
Error: TLS handshake timeout
Cause and fix: The TLS server name, transport, certificate path, or network route may not match the profile. Recheck SNI, WebSocket path, Reality parameters, and system time.
If switching nodes appears to have no effect, verify that the selected profile belongs to the group you just updated and that the core has restarted or reloaded the configuration. Look at the active server name in the status area and inspect the log for the remote address it is dialing. If the system proxy remains enabled while the core is stopped, applications may display connection failures that look like a bad node.
For a clean comparison, stop the core, select one tested node, start the core, enable the system proxy, and test the same destination three times. Then repeat the exact sequence with the second node. This produces a more meaningful comparison than switching profiles while several browser tabs, downloads, and background applications are generating traffic.