This guide is for v2rayN users who have a subscription URL but are unsure whether their nodes work or proxy traffic is actually being handled. The full process covers six steps: import the subscription, filter nodes, run a real-connection latency test, enable the system proxy, check the exit IP, and verify with a browser. By the end, you can tell the difference between a dead node, traffic not being captured by the client, and a problem with the destination site.
Before you connect: subscription, core, and local ports
v2rayN is only the client interface. Whether a node connects depends on the subscription content, the selected core, and compatible server-side settings. For your first attempt, avoid changing routing, DNS, transport parameters, and ports at the same time. The more variables you change, the harder it is to identify the failing layer. Keep the default routing settings and establish one minimal working connection first.
This guide uses the v2rayN 7.x interface as an example. Menu labels may vary slightly between minor releases, but the workflow remains the same. For VLESS, VMess, Trojan, or Shadowsocks nodes in a subscription, Xray is usually the first core to try. If the subscription provider specifies a required core, follow its configuration instructions.
Start the client
After launching v2rayN, make sure the main window opens and check that the client icon appears in the taskbar notification area. Closing the window may leave the program running in the background.
Check the core
Go to “Settings” → “Parameter Settings” → “Core Type”. Keep the Xray configuration that matches the subscription protocol whenever possible, and avoid switching cores repeatedly during the first connection.
Add a subscription
Open “Subscription Group” → “Subscription Group Settings” → “Add”. Enter a group name, paste the complete subscription URL, and save it.
Update the subscription
From the main window, select “Subscription Group” → “Update all subscriptions (without proxy)” and wait for the node list to finish refreshing.
Check the ports
Check the local listening ports in Parameter Settings. If you set SOCKS to 10808 and HTTP to 10809 manually, other applications must use those same values.
How to choose your first candidate from the node list
Region, traffic multiplier, and protocol labels in a node name are useful for sorting, but they do not prove that a route works. For the first connection, choose nodes with a normal multiplier, a clearly stated region, and no maintenance or expiration notice, then filter them using the client’s test results. If the list has dozens of nodes, do not connect to each one manually. Select 3–5 candidates from the same region and test them in a batch.
Standard latency, real-connection latency, and download speed tests answer different questions. Standard latency mainly measures host reachability. Real-connection latency completes the proxy-protocol handshake and accesses a test target. Download tests also depend on the test file, server-side throttling, local bandwidth, and concurrent connections. For first-time troubleshooting, the middle test is the most useful.
Standard latency
It runs quickly, but some servers restrict this type of probing. A timeout does not necessarily mean the proxy protocol is unavailable.
Best for: quickly checking network reachability
Real-connection latency
RecommendedIt goes through the core, completes the protocol handshake, and sends a proxy request, making it closer to the connection process used when opening a webpage.
Best for: filtering out dead nodes on the first connection
Download speed test
It measures sustained transfer capacity, but consumes traffic and can be affected by local network conditions and congestion at the test endpoint.
Best for: comparing bandwidth among working nodes
- For everyday browsing, start with a node below 300 ms that returns a result in two consecutive tests.
- When nodes in the same region differ by 20–40 ms, do not chase the lowest number. Consistent results usually matter more.
- A negative value, blank result, timeout, or fixed 0 should not be treated as proof that a node works. Test it again or check the logs.
- A high-multiplier node may be faster, or the multiplier may simply reflect billing rules. Multiplier does not equal performance.
Run a real-connection latency test and read the results
Select the candidate nodes in the list, open the test menu with a right-click, and choose “Test server real-connection latency”. For batch tests, wait until the entire round finishes. Do not repeatedly switch the system proxy or restart the core during testing, or the same batch may reflect different runtime states.
For example, three candidates on the same network might return 86 ms, 214 ms, and a timeout. Both 86 ms and 214 ms mean the test request completed, with the former establishing the connection faster. A timeout means no valid response arrived within the limit. Check the core logs to determine whether the cause was a failed protocol handshake, DNS resolution failure, refused connection, or unreachable test target.
| Test result | Typical meaning | Next step |
|---|---|---|
| 80~180 ms | Connection completed; fast response | Set it as the active server and verify it in the browser |
| 180~500 ms | Connection works, but the handshake or route is slow | Test twice more and watch for fluctuation |
| Over 500 ms | Congestion, a detour, or high server load | Compare it with other nodes in the same region |
| Timeout or blank result | The test request did not complete successfully | Update the subscription and check the core logs |
Latency is not a fixed quality score. The same node can produce completely different results over home broadband, a mobile hotspot, or an office network. The test target’s response time also contributes to the total. For a more reliable comparison, use the same network, client settings, and roughly the same time of day.
Enable the system proxy and confirm that traffic is being captured
After identifying a working node, right-click it and choose “Set as active server”. Then open v2rayN’s system proxy menu and select “Auto-configure system proxy”. The client will point the system proxy to its local listening address, while the core forwards incoming traffic to the active node.
Do not treat the “active node” and “system proxy enabled” as the same setting. The first tells v2rayN which route to use; the second determines whether applications that follow the system proxy settings hand their requests to v2rayN. If a node is selected but the system proxy remains cleared, a standard browser will usually connect directly.
Recommended approach: cross-check with two networks
Primary network
- Record the exit IP without the proxy
- Reopen the check page after connecting
- Test two frequently used websites
Backup network
- Switch to a mobile hotspot and test again
- Keep the same node and routing settings
- Compare latency and page-loading results
If the same node fails on only one network, check the local network, DNS, and connection restrictions first instead of immediately assuming the entire subscription is invalid.
- Before connecting, search for “IP address” in your browser and record the direct-connection exit address and region.
- Set the active server, enable “Auto-configure system proxy”, and confirm that the taskbar icon status has changed.
- Fully refresh the IP-check page. If needed, open a new private browsing window to reduce the effect of old caches and persistent connections.
- Compare the exit IP before and after connecting. If the address or region changes to the exit associated with the selected node, the check request has entered the proxy chain.
- Open two more target pages that previously failed or loaded slowly, and confirm that DNS resolution, the TLS connection, and page resources all complete successfully.
- Finally, disable the system proxy and refresh the same check page. The exit IP should return, helping rule out caching by the check page itself.
With rule-based routing, some addresses in mainland China may be sent directly, so an unchanged exit IP when visiting a mainland Chinese site is not necessarily contradictory. For the first verification, temporarily use global proxy mode for one comparison. Once the basic connection works, restore rule mode and check whether each routing rule matches your needs.
Troubleshoot connection failures layer by layer
Change only one condition at a time while troubleshooting. First confirm that the subscription updates, then check whether the node passes a real-connection test, followed by the system proxy and finally the browser or app settings. Changing the node, port, core, and DNS all at once often destroys useful clues.
Subscription update timed out?
First check that the subscription URL is complete and that no spaces were copied before or after it. If at least one node works, enable “update through proxy” in the subscription settings and try again. If it still fails, ask the subscription provider to confirm the URL status.
Every node times out on the real-connection test?
Open the runtime log and look for a port conflict, core startup failure, or DNS resolution error. Then go to “Settings” → “Parameter Settings” → “Core Type” and verify the selected core. Test the same node on another network as well.
A latency result appears, but webpages will not open?
Confirm that the node is set as the active server, then check that the system proxy is set to “Auto-configure system proxy”. If the browser has its own proxy setting, verify that the address is 127.0.0.1 and the port matches v2rayN’s current listening port.
The exit IP does not change?
Open a new browser window and hard-refresh the check page, then temporarily switch to global proxy mode and test again. If the address changes in global mode, the basic connection works and the earlier result was most likely caused by routing rules.
The connection drops after a while?
Run three consecutive real-connection tests and note the log timestamps, then compare another node and another network. If only one node drops, replace that node first. If all nodes drop at once, check local network sleep settings, port conflicts, and the core’s runtime status.
What to look for first in the logs
- Did the core start? If the core process did not start successfully, no local listening port will be created and the browser cannot hand traffic to the proxy.
- Is the port already in use? If 10808 or a custom port is already occupied by another program, switch to an unused port and update the browser’s independent proxy settings as well.
- Did the handshake fail? If protocol or TLS handshake errors keep recurring, update the subscription first instead of guessing the server parameters manually.
- Did the domain resolve? If only the domain fails while a direct address works, check DNS settings and routing rules before reinstalling the client.
- Was the target routed elsewhere? The direct and proxy destinations in the logs can show whether a request went directly or through the active node.
Create a repeatable first-connection checklist
One successful webpage load does not prove that a configuration will remain stable, but it does confirm that the basic route is working. A more practical completion standard is: the subscription updates, at least two nodes return real-connection latency results, the active server is clearly set, the system proxy can be controlled, the exit IP changes as expected, and the browser loads several pages continuously.
When something goes wrong later, repeat the same sequence instead of changing every parameter from scratch. Use a backup node to rule out a single-node failure, then a backup network to rule out the current access environment, and only then inspect custom routing, DNS, and the app’s independent proxy. Each step then has a clear question to answer.
Update the list
Manually update all subscriptions and confirm that the node count and groups match expectations.
Batch test
Select 3–5 nodes from the same region, run a real-connection latency test, and keep two candidates with stable results.
Set as active
Set the candidate with stable latency as the active server. Selecting a row is not enough if the actual exit route has not changed.
Enable the proxy
Choose “Auto-configure system proxy” and confirm that the local listening port matches the system proxy target.
Verify twice
Check both the exit-IP change and the browser’s actual loading results. Do not replace full verification with a single latency number.
Restore settings
Restore the routing mode as needed after testing. When the proxy is not in use, clear the system proxy so the browser does not keep pointing to a local port after the core exits.