V2Ray Connection Timed Out? Troubleshoot from Your Device to the Server

Troubleshoot V2Ray timeouts by checking your device clock, subscription, core logs, transport and TLS settings, then server status. Find the relevant log locations in v2rayN and v2rayNG.

At a glance

A node timeout means one step did not finish in time; it does not prove the server is offline. This guide is for v2rayN and v2rayNG users seeing timed-out latency tests, failed connections, or websites that will not load. Work through the checks in order: confirm the scope, sync your clock and update the subscription, read the logs, verify transport and TLS, then check the server. Change one thing at a time and keep notes you can share with the maintainer.

1. First, Is the Node Timing Out—or Is the App Bypassing the Proxy?

Pinpoint where the failure occurs before changing settings. A latency test in the node list, the core connecting to a server, and a browser loading a site are three different operations. An unreachable test endpoint can make a working node appear to time out. Conversely, a successful TCP connection does not guarantee that authentication, the TLS handshake, and proxy forwarding are all working.

Observed symptomCheck firstWhat you cannot conclude yet
Only the latency test times out; websites loadThe test URL, test method, and route to that URLThis alone does not mean the node is down
All nodes fail at the same timeLocal network, system clock, and whether the core startedIt does not necessarily mean every server failed at once
Only one node failsThat node's settings, remote port, and account statusOne failed attempt does not prove the node is permanently unavailable
Browser works, but terminal does notTerminal proxy environment variables or explicit proxy settingsThis is usually not caused by a node timeout

Set up a minimal, reproducible test to eliminate unrelated variables. Run only one client, select one node and a test URL you know is reachable, and note the time. Do not change routing, DNS, TUN, and transport settings all at once. v2rayNG uses Android's VPN service to route traffic, so make sure its connection switch is on and no other VPN service is occupying the connection.

2. Check Your Device Clock, Then Update the Subscription

Make sure the system clock is correct before investigating authentication or certificate errors. VMess authentication depends on time, so a significantly inaccurate clock can cause connection failures. TLS certificate validity checks also rely on the local clock. Do not apply VMess's time-based authentication explanation directly to VLESS, but keep the clock accurate when using TLS. Changing only the displayed time zone will not fix an incorrect system clock.

  1. Sync your system clock

    On Windows, open Settings → Time & language → Date & time, turn on Set time automatically, then select Sync now. On Android, search Settings for Date & time and enable automatic time. Menu locations vary by device.

  2. Update the current subscription

    In v2rayN, open the Subscription group menu and select Update current subscription. You can try Update current subscription (without proxy) first. In v2rayNG, open the top-right menu on the main screen and select Update current group subscription. Menu wording may vary by version; check the update result rather than just noting that you tapped the button.

  3. Select the node again

    After updating, select the target node again and start the connection. Check whether its server address or port changed. A successful subscription update does not mean the node can connect: the subscription endpoint and node server may use entirely different addresses and network routes.

  4. Record one failed attempt

    Note the current time, make one request, then check the logs immediately. Keep the entries around that attempt; a batch of latency tests can flood the logs and obscure the actual connection issue.

3. Check the Core Logs for the First Useful Error

Read the logs from local startup errors through remote connection errors; do not search only for the final timeout. In v2rayN, start with the log or information area at the bottom of the main window. For more detail, open Settings → Parameter settings and look for the log level options. In v2rayNG, open Log from the top-right menu on the main screen. Menu locations and log level names vary by version, so note both the client version and the core version shown in the logs.

Temporarily increase the log level, restart the connection, and reproduce the issue once. Debug logs may include visited domains and server addresses, so restore your usual log level when finished. These are common error snippets; different cores may add connection IDs, destination addresses, or more context.

Error: address already in use

Cause: The local listen address or port is already in use, so the core may not have started at all.

Fix: Close duplicate client instances and identify the process using the port. If you change the local port, update the proxy port configured in your app too.

Error: no such host

Cause: A domain could not be resolved. It might be the node's domain or the destination you are trying to reach.

Fix: Identify the domain in the error and check its spelling and the DNS route in use. If the node's domain cannot be resolved, fix DNS resolution before troubleshooting the connection itself.

Error: i/o timeout

Cause: A connection or read/write operation timed out. This message alone cannot tell you whether the cause is packet loss, remote filtering, or no response during the handshake.

Fix: Use the destination address and surrounding handshake entries to identify the stage that failed. Then test the remote port, transport settings, and server status separately.

Error: x509: certificate has expired or is not yet valid

Cause: Your device clock is wrong, or the remote certificate is genuinely outside its validity period.

Fix: Sync your device clock first. If the error persists with the clock correct, ask the maintainer to check the certificate validity period and the certificate actually loaded by the reverse proxy.

Bottom line: Fix local startup errors before checking the remote server

If the logs show a listening port conflict and no record that the core started successfully, resolve the conflict first. Changing the server address, TLS settings, or subscription parameters repeatedly will not fix a local bind failure.

4. Test the Local Listener and Remote Port Separately

Keep the local proxy port and server port separate. An app connects to the local proxy first; the core then connects to the remote server. The numbers below illustrate these two connections and are not universal defaults. For v2rayN in particular, check the current settings for HTTP, SOCKS, or mixed listening modes.

127.0.0.1
Local loopback address, not the remote node address
10808
Example local SOCKS port below; adjust it to match your settings
443
Common remote TLS port; use the port in your subscription

On Windows, use this interactive PowerShell command to test the remote TCP port. Enter the server address and remote port shown in the node editor—not the subscription URL or local proxy port. A true TcpTestSucceeded value means only that the TCP connection succeeded; it does not confirm proxy protocol authentication. This test also cannot fully diagnose transports that use UDP.

$nodeHost = Read-Host "Enter the node server hostname or IP"
$nodePort = [int](Read-Host "Enter the remote node port")
Test-NetConnection -ComputerName $nodeHost -Port $nodePort

To check whether a terminal is actually using the local SOCKS proxy, first confirm it is listening on 127.0.0.1:10808, then run the command below. Enter a test URL when prompted. socks5h sends the destination hostname to the proxy for resolution, so this does not directly test local DNS. The 15-second limit is for this test only; it is not a performance benchmark for the node.

$testUrl = Read-Host "Enter the full HTTPS URL to test"
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 15 --max-time 30 -I $testUrl

5. Check Transport, TLS, and REALITY Settings One by One

Check the full set of parameters, not just the server address and UUID. A subscription typically includes protocol, transport, and security settings. After manual edits or a migration between cores, one incompatible field can cause a handshake failure. v2rayNG uses the Xray core, while v2flyNG uses the v2fly core; do not assume they support exactly the same protocol extensions and configuration fields.

Setting groupWhat to checkCommon point of confusion
Protocol and authenticationVMess or VLESS, UUID, and settings supported by the serverChanging only the protocol name does not make the other fields compatible
WebSocketTransport type, path, Host, and reverse proxy routing targetPaths are case-sensitive and include slashes; Host is not the server address
gRPCserviceName, TLS, and HTTP/2 support in the reverse proxyserviceName is not the WebSocket path field
TLSserverName/SNI, certificate hostname, validity period, and ALPN requirementsWhen connecting to an IP address, the certificate name must still match the expected hostname
REALITY and VisionServer-provided public key, shortId, serverName, fingerprint, and flowFor Vision, set flow as required by the server; do not guess

After making changes, reload the configuration and confirm the logs are for a new connection. In v2rayN, stop and restart the current service; in v2rayNG, turn the connection switch off and back on. If refreshing the subscription overwrites manual changes, keep a record and ask the provider to fix the subscription rather than repeating the same edits after every update.

6. Check Server Status and the Network Route

Server-side evidence is easier to interpret after you have checked local startup, subscription settings, and handshake requirements. If you do not administer the server, send the provider the time of the issue, node identifier, network type, and redacted logs. Ask whether the listener, account validity period, or entry point changed. Do not post screenshots that reveal your full subscription URL.

Bottom line: Narrow it down with a network comparison

If the same configuration fails on home Wi-Fi but works on a mobile network, compare the network routes first. If other nodes work on the same network but one target node does not, check that node's entry point. These comparisons are more useful than repeatedly reinstalling the client.

7. Still Timing Out? Gather the Missing Details

The latency test always times out, but websites load. Should I switch nodes?

Not yet. Check the test URL and method, then try visiting the same URL normally. The test target may be routed separately, reject requests, or be temporarily unreachable, so test results may not reflect everyday browsing.

v2rayNG says connected. Why won't anything load?

Connected usually means the local VPN service has started; it does not mean every remote request succeeds. Open Log from the top-right menu, make one request, and check for remote dial or handshake errors. Also check whether per-app proxy settings exclude the app you are testing.

My computer works, but the same node times out on my phone. Which settings should I compare?

First confirm both devices use the same up-to-date subscription and network. Then compare transport type, SNI, path or serviceName, REALITY settings, and flow. Note the core version on each device. Do not copy the entire desktop configuration, since local inbound settings and system-level traffic routing differ.

Will increasing the timeout fix it?

It can help distinguish a slow response from a persistent failure, but it will not fix a wrong port, failed authentication, or certificate issue. Keep the original setting and reproduce the problem with a fixed test limit. If the logs keep showing a handshake error, fix the relevant settings instead of extending the wait indefinitely.

The most useful information to include when asking for help is a reproducible sequence of steps. Provide the client and core versions, time and time zone, Wi-Fi or mobile network, whether all nodes or just one fail, remote port test results, and the logs around a single failed attempt. Redact UUIDs, subscription tokens, and other credentials before sharing. If you need to provide the server address, send it through a trusted private channel.

Download v2rayN