This guide is for cases where a node connects and webpages load, but downloads, video, or large file transfers are noticeably slow. Keep test conditions fixed, compare several nodes from the same subscription, check how performance changes by time of day, and only then adjust v2rayN routing, the core, DNS, Mux, or local proxy settings.
Establish a Reproducible Speed Baseline First
“Slow” needs to become comparable data. Page-load times are affected by DNS, caching, scripts, and the destination site's load, while a single latency reading says nothing about sustained throughput. A more reliable method is to choose one resumable large file and run three consecutive tests on the same network, device, and download tool.
Before testing, pause cloud sync, system updates, and other downloads. Keep Wi-Fi on the same access point, and do not switch between wired and wireless during a test. Each run should last at least 60 seconds; record the average speed during the stable phase rather than the launch-time peak.
Any segment of this path can become the bottleneck. A direct test establishes the local access ceiling; a proxy test shows node and route overhead; testing another destination rules out throttling by a single download source. Record all three separately—one speed-test page is not enough to draw a conclusion.
- Turn off v2rayN's system proxy, test direct-download speed, and record the current ceiling of the access network.
- Restore the system proxy, select node A, wait for a stable connection, then run three tests and use the median.
- Keep everything else unchanged and test nodes B and C in turn.
- Retest with another download source to determine whether the slowdown affects only a specific destination.
- Record the core version, local port, and test time from the v2rayN log so the result can be reproduced later.
Layer 1: Check Whether the Node Itself Is Throttled
Node-level issues are usually stable and repeatable. If node A stays below node B for three consecutive runs in the same time window and speed immediately returns after switching nodes, check node load, server bandwidth, destination region, and node configuration. Repeatedly changing local DNS or the system proxy usually will not change the result.
Use comparable configurations within the same protocol stack when testing nodes. For example, when comparing two VLESS nodes, keep the destination region, transport, and encryption layer as similar as possible. Comparing a distant VMess node directly with a nearby VLESS node only shows that the two complete paths perform differently; it does not prove that one protocol is faster.
| Test subject | Run 1 | Run 2 | Run 3 | Initial assessment |
|---|---|---|---|---|
| Direct baseline | 286 Mbps | 281 Mbps | 288 Mbps | Local access is normal |
| Node A | 92 Mbps | 88 Mbps | 94 Mbps | Stable speed |
| Node B | 31 Mbps | 29 Mbps | 30 Mbps | Possible node-side cap |
| Node C | 84 Mbps | 18 Mbps | 67 Mbps | Highly variable; continue checking the route |
Node B stays near 30 Mbps across all three runs, showing stable low speed that is more consistent with a bandwidth cap, sustained high load, or a limited server egress. Node C varies sharply, so it cannot be labeled node-throttled yet; continue by checking packet loss, time of day, and route changes.
Conclusion: Switch nodes when speed is consistently low
With the same device, download source, and time window, if one node delivers only one-third the speed of others for three consecutive runs, flag it as a node-side issue first. Do not change Mux, DNS, and routing at the same time, or you will lose a comparable baseline.
Protocol names do not replace real-world testing
- VMess and VLESS have different protocol structures, but actual throughput is still affected by server CPU, route quality, TLS configuration, and congestion control.
- REALITY and XTLS Vision address specific connection and transport requirements; they do not guarantee higher download speeds on every network.
- Low node latency only means a quick round trip; it does not mean the server has sufficient egress bandwidth.
- Multipliers, names, and region labels in a subscription describe the service and cannot replace three local test runs.
Layer 2: Use Time and Packet Loss to Detect Route Congestion
Route problems are most apparent when performance changes over time. If the same node is fine in the morning, slows during a recurring evening window, and recovers late at night, the cause is often link congestion or load at an inter-network gateway. The node server itself may also be busy in the evening, so compare multiple nodes.
- Test the same set of nodes at 08:00, 14:00, and 21:30, running the same three download tests in each window.
- Record real connection latency, the median download speed, and any obvious stalls—not just ICMP ping.
- Choose nodes in two different regions. If all remote nodes slow down during the same window, a route issue is more likely.
- If only one node slows while the others remain stable, return to the node layer.
| Observed result | More likely cause | Next step |
|---|---|---|
| 90 Mbps in the morning, 18 Mbps in the evening | Peak-hour congestion | Retest with another region or ingress route |
| Stable at 30 Mbps all day | Node bandwidth or service-side limit | Compare with other nodes in the same subscription |
| Speed fluctuates between 5 and 100 Mbps | Packet loss, retransmissions, or Wi-Fi interference | Switch to a wired network and check the logs |
| Only one destination is slow | Destination throttling or return-path differences | Verify with another download source |
ICMP ping provides only basic clues about round-trip time and packet loss. Some servers restrict ICMP responses while TCP or UDP proxy connections remain healthy; the reverse can also happen, with good ping numbers but persistent retransmissions on the high-volume transfer path. Use ping to watch trends, not to rank node speed on its own.
Error: context deadline exceeded
Cause and fix: The connection or request did not complete within the allowed time. First retest with another node in the same region; if several nodes fail mainly in the evening, investigate route congestion.
Error: failed to find an available destination
Cause and fix: The destination could not be resolved, or no outbound route was available. Check the node address and DNS settings, update the subscription, and restart the core.
Error: connection refused
Cause and fix: The remote port actively refused the connection, commonly because the service is not listening or the port configuration is invalid. Confirm that the node port matches the original subscription configuration, then switch nodes to verify.
Layer 3: Rule Out v2rayN Local Settings One by One
Enter the local-configuration layer only when other nodes perform normally and time-of-day differences are minor. The rule remains: change one thing at a time, reconnect the current node after each change, and repeat the same test. Changing several options at once makes the true cause impossible to identify, even if speed returns.
- Check the running core: Open the log and record the actual v2rayN and Xray versions. For example, write “v2rayN 7.12.5, Xray 25.5.16” in the troubleshooting record instead of simply “latest version.”
- Check routing mode: Under “Settings” → “Routing Settings,” confirm the active rules. Run one comparison using global proxy mode first. If global mode is normal but rule mode is slow, check whether the download domain was incorrectly sent to direct access or a restricted outbound.
- Verify local ports: Go to “Settings” → “Parameter Settings” and make sure the SOCKS, HTTP, or mixed port does not conflict with another program. The test tool must point to the actual port shown in the interface.
- Compare with Mux disabled: Edit the current server configuration, record the original Mux state, disable it, reconnect, and run three tests. Large-file transfers do not always benefit from multiplexing, which can add contention on an unstable route.
- Check the DNS path: If the first page load is slow but speed is normal after the connection is established, focus on resolution time. If downloads remain slow throughout, DNS is usually not the main bottleneck.
- Watch device resources: Check CPU, memory, and network-adapter usage during a download. If a single core process stays near 100% of one core, reduce concurrency and compare with another device.
Test system proxy and TUN mode separately as well. Use the system proxy first for ordinary browser traffic; test TUN only when more application traffic needs to be captured. The two modes use different traffic entry points and routes, so do not combine their results in one speed table.
Error: address already in use
Cause and fix: The local listening port is already occupied by another process. Close duplicate client instances, or change the port under “Settings” → “Parameter Settings” and restart the core.
Error: proxy connection ended unexpectedly
Cause and fix: The proxy connection ended before the transfer completed. First disable Mux for comparison, then check the node transport parameters, network changes, and preceding errors in the log.
An Android device can also provide a cross-check. Import the same subscription into v2rayNG or v2flyNG, select the same node, and test on the same Wi-Fi network. If the desktop remains slow while Android is normal, inspect the local port, routing mode, and desktop resources first. Note that v2rayNG uses the Xray core and v2flyNG uses the v2fly core; record any core and configuration differences.
Common Misdiagnoses and Specific Fixes
Speed issues are often distorted by a single number. Latency, handshake time, time to first byte, and sustained download speed are different metrics. Troubleshooting results matter only when conditions are fixed and tests are repeatable.
Why is the download still slow with only 40 ms latency?
40 ms only indicates a quick round trip. Continue with a sustained download of at least 60 seconds and compare two nodes in the same region; if the server egress is limited to 20 Mbps, low latency will not increase throughput.
Will switching to VLESS definitely improve speed?
Do not judge by protocol name alone. Keep the same destination and test window, then run three tests for each option. If the difference is under 5%, focus on the route, server load, and local resources.
Will reinstalling v2rayN help if speeds are slow at night?
Retest the same node in the morning and evening first. If speed consistently drops from 90 Mbps to 20 Mbps and multiple devices show the same result, reinstalling the client usually cannot fix congestion on the route.
What if webpages are faster with Mux enabled but downloads are slower?
Record both the time to first byte for a webpage and the download speed of a 512 MB file with Mux enabled and disabled. Choose the setting according to your main use case and retain the node's original configuration instead of relying on browser impressions alone.
Should I switch nodes if only one website is slow?
First test a second download source through the same node. If other destinations are normal, suspect destination throttling, regional routing, or return-path differences before changing every node configuration.
A subscription update may also change node addresses, ports, or transport parameters. If speed changes suddenly after an update, keep the update time, node name, and core log, then rerun the three tests. Do not combine pre-update and post-update results into one average.
Reach a Conclusion: Stop at the Layer the Evidence Supports
A complete investigation does not mean changing every setting; it means finding the first set of data that consistently reproduces the difference. If switching nodes restores speed immediately, stop at the node layer. If speed varies by time of day, move to the route layer. Check local settings only when one device or one proxy mode behaves differently.
- Node-layer conclusion: During the same time window on the same device, a specific node is markedly slower than the others for three consecutive runs.
- Route-layer conclusion: Multiple nodes slow down together during a recurring peak period and recover when tested off-peak.
- Local-layer conclusion: The same node works normally on another device, or the result consistently recovers after changing one local option.
- Destination conclusion: Only a specific domain or download source is slow while other destinations remain normal.
Final Rule: Change Only One Variable at a Time
Node, time, destination, proxy mode, and Mux are all variables. Change only one per run, and retain the three results plus the log version. That is how “it sometimes gets faster” becomes a reproducible diagnosis.
Keep the final record to five columns: test time, node name, core version, configuration change, and the median of three runs. When slow speeds return, reuse the same conditions to quickly determine whether the old issue has returned or the route has changed.