v2rayN Speed Test Guide: Tcping, Real-Connection Latency & Download Speed

Why do three speed tests on the same node show such different results? Learn what Tcping, real proxy requests, and bandwidth tests measure—and how to interpret them.

At a glance

Use Tcping to check whether a server port is reachable, real-connection latency to test the proxy route, and download speed to measure sustained throughput. This guide is for anyone who sorts nodes by latency but finds that rankings don’t match their browsing experience. You’ll learn a consistent testing order to distinguish node problems from test-target issues and local network interference—rather than choosing a node by the lowest millisecond reading alone.

Three speed tests, three different things measured

The key takeaway: these results aren’t interchangeable. A low Tcping result doesn’t mean proxy authentication works. Low real-connection latency doesn’t guarantee fast large downloads. High download speed doesn’t ensure every webpage loads quickly. Each test measures a different stage—connection setup, a complete request, or sustained transfer—and each has different units and limits.

v2rayN is a graphical client that coordinates speed tests; some tests require the selected core. Xray and V2Fly don’t support exactly the same protocols or configuration fields. Before testing, make sure the node loads correctly with the current core. A reachable port doesn’t confirm protocol compatibility.

Tcping: Check port reachability

Attempts to connect to the server address and TCP port in the node configuration. It quickly filters out entries that can’t establish a TCP connection, but usually doesn’t verify proxy credentials or access through the exit node.

Best for: Quickly checking a large subscription list

Real-connection latency: Check everyday usability

Recommended

Sends a request to a test address through the node’s proxy route. This is more useful for everyday browsing, but results still depend on the test target, request method, and client version.

Best for: Finding browsing candidates among reachable nodes

Download speed: Check sustained throughput

Reads a test file through the proxy and measures the amount transferred over a set period. It better reflects sustained downloads, but uses data and may be affected by server-side throttling.

Best for: Comparing bandwidth across a few candidate nodes

Tcping: Establishes a connection, but doesn’t test the full proxy

Tcping isn’t the same as a standard ICMP ping. It typically measures how long it takes to establish a TCP connection to the node’s server address and port. For example, if the node uses port 443, that’s the port being tested—not an arbitrary web server port. A domain-based node must also resolve its address first; whether DNS lookup time is included depends on the implementation.

Even if the TCP connection succeeds, the proxy may still reject it because of an incorrect UUID, password, TLS server name, or other setting. For nodes behind a reverse proxy or content delivery network, Tcping may only confirm that the front end is reachable—not that the proxy service behind it is working. A nearby entry point also doesn’t mean the exit node is close to the destination website.

Real-connection latency: The test target is part of the route

Real-connection latency is closer to “how long does it take to complete a specific request through this node?” The route typically includes a local connection to the proxy entry point, proxy protocol negotiation, the node’s exit connection to the test target, and the response back to your device. Depending on the configuration and implementation, it may also involve DNS lookups, a TLS handshake, connection reuse, and redirects. It doesn’t measure the distance to the node server alone.

“Real connection” doesn’t mean the test fully simulates loading a webpage. A page may involve dozens of domains, scripts, and images; a latency test usually sends just one small request. Completion criteria can vary by version—for example, the test may wait for response headers, a specific status code, or the entire request to finish. For meaningful comparisons, use the same test address and client version.

StagePossible impactWhat to check
Proxy entry and authenticationThe port is reachable, but incorrect settings cause the request to failCheck the node settings and core logs before changing DNS
Test-domain DNS lookupLookup failure, address-family differences, or a slow DNS resolution pathNote the DNS settings and confirm which resolver and outbound route are actually used
Exit route to the test targetThe destination may throttle or block requests, or the route may take a detourTry a different small test target; don’t change the node and address at the same time
TLS and connection stateNew and reused connections may take different amounts of timeRepeat the same test process and record the first and subsequent results

A test address that returns 204 generally sends no response body, making it suitable for checking small requests. But don’t assume every v2rayN version accepts only this status code. Use an address supported by the client and follow its success criteria. Enabling the system proxy alone also doesn’t guarantee that the built-in speed test will work: it may use a dedicated test configuration rather than the routing used for everyday traffic.

Download speed: Measure throughput separately from latency

A download test measures how much data is read over a period of time—not how quickly the first response arrives. Results depend on your local connection, Wi-Fi, proxy exit capacity, server throttling, congestion control, test duration, and concurrency. If the download test and real-connection test use different targets, different rankings are normal.

Check the units first. MB/s means megabytes per second; Mbps means megabits per second. Using decimal units, 8 MB/s × 8 = 64 Mbps; actual transfers also have protocol overhead. The figures below are examples for illustration only, not measurements from this site or performance claims about any node service.

42 ms
Example node A: Tcping
310 ms
Example node A: Real-connection latency
8 MB/s
Example node A: Average download speed

These results don’t contradict each other: the connection to the entry point is quick, but a complete request involves more steps. Once connected, the node can still deliver good sustained throughput. If example node B has a real-connection latency of 180 ms and a download speed of just 2 MB/s, B may be better for small requests while A may be better for sustained transfers. Verify performance in your actual apps before deciding.

Choose by use case, not by a single overall ranking

For browsing, compare the consistency of real-connection latency first. For downloads, compare average throughput. Test only the two or three candidates that make the shortlist to avoid repeatedly using data across the entire subscription.

A consistent test process: Screen first, then compare

Select nodes in the v2rayN list, open the right-click menu, and run the tests you need. Common options include Tcping latency, real-connection latency, and server speed; labels vary across desktop versions. Look under “Settings” → “Parameter settings” for test options. The exact section may differ in your version. Note the existing values first; there’s no need to copy unfamiliar settings just to run a test.

  1. Control variables: Pause background downloads, use the same local network throughout, and record the client and core versions, test address, and time. Don’t compare results from Wi-Fi with results from a wired connection.
  2. Check reachability: Run Tcping and keep reachable entries. For transports that aren’t suitable for TCP checks, go straight to the relevant proxy request test.
  3. Verify usability: Run three real-connection tests for each candidate, about 10 seconds apart. Record failures and use the median of successful results instead of keeping only the best run.
  4. Limit download tests: Test only two or three candidates, one at a time. If you can set a test duration, use 15 seconds for each; otherwise, leave the default and record the actual duration.
  5. Test with your apps: Select a candidate node and open a website you use regularly to confirm that traffic exits as expected. If the built-in test succeeds but an app doesn’t, check routing rules, the system proxy, and TUN mode.

For example, three real-connection results of 180, 195, and 420 ms have a median of 195 ms. If another node returns 160 ms, timeout, timeout, you can’t call it better based on its one successful result. Record timeouts as usability data; don’t silently discard them or arbitrarily convert them to zero.

Test plan: Separate everyday responsiveness from sustained transfers

Web browsing and small requests
  • Use the same small test target each time.
  • Compare the median of three runs and the number of failures.
  • Check how quickly a commonly used website loads on the first visit.
Large files and sustained transfers
  • Use the same download target each time.
  • Keep the test duration and concurrency settings the same.
  • Compare average speed, not brief peak speeds.

Test nodes one at a time in either case. Parallel speed tests compete for local bandwidth and make results harder to compare.

Unexpected results: Find where the failure occurs

A negative value, blank field, or timeout in the latency column usually indicates a failed test—not “negative latency.” Its exact meaning depends on the client version, so check the logs. Change one condition at a time; otherwise, you won’t know whether switching nodes, changing the test address, or adjusting DNS made a difference.

Tcping returns a result, but real-connection tests keep timing out?

First make sure the current core starts and loads the node. Then check the authentication settings, TLS server name, and client logs. If the logs show that access to the target failed, keep the node unchanged and try another small test address supported by the client. A reachable port doesn’t rule out a node configuration error.

The real-connection test succeeds, but the browser still can’t load pages?

Check whether browser traffic is actually going through v2rayN. Verify the system proxy or TUN mode, then check the destination and outbound route in the logs. The built-in test may use a dedicated proxy route, while browser traffic may go direct because of routing rules. Don’t assume they follow the same path.

Latency is low, so why are downloads stuck at a few hundred KB/s?

Pause other downloads, test candidate nodes one at a time, and cross-check with a second download target. If only one target is slow, the issue is more likely with that service or the route to it. If all nodes are slow, check your local network and test settings.

Speed tests are slower in the evening. Should I reinstall the client?

Test the same node and address three times at different hours, keeping the test duration consistent. If several candidates all show lower throughput in the evening, shared bandwidth or network congestion is more likely. Keep a record before deciding whether to switch nodes or adjust your network.

Can I use desktop test results on Android?

Use them to shortlist candidates, but retest on the target device. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; device performance, Wi-Fi, and test implementations can all differ. Confirm protocol compatibility first, then compare performance under the same network conditions.

Keep test records for meaningful comparisons

The same node name doesn’t guarantee that its entry point, exit node, or upstream route stays the same. After updating a subscription, briefly retest your regular candidates. You don’t need to save subscription URLs or authentication credentials—just record the test conditions and results.

To check traffic routing, read the DNS setup guide and TUN mode guide. If the problem occurs during a subscription update rather than a speed test, see subscription update troubleshooting. Identify the failing part of the process before changing any settings.

Download v2rayNView platforms and installers