· Troubleshooting · About 10 min

V2Ray Node Timeout: Troubleshoot from Local Ports to the Server

Troubleshoot V2Ray node timeouts step by step: check local ports, system proxy settings, subscription status, system time, and transport settings, with fixes for v2rayN and v2rayNG.

At a glance

Use this guide if your subscription is imported but nodes time out, or the client says it’s connected but webpages won’t load. First check that the core is running and listening locally, then confirm traffic is reaching the proxy. Next, check your subscription, system clock, transport settings, and server. Change one thing at a time and retest the same destination to avoid mistaking a local issue for a dead node.

1. Check Port Connectivity and Proxy Access Separately

A “timeout” only means a step did not finish within the allotted time; it does not prove the server is down. A browser request may pass through the app’s proxy settings, a local inbound port, routing rules, a remote connection, a protocol handshake, and the destination website. A failure at any point can leave a page loading indefinitely.

TCPing checks whether a TCP connection can be established to a port. A real connection test also uses the proxy protocol and test destination. A successful TCP check does not confirm VMess or VLESS authentication, and a failed real connection test may simply mean the test destination is unreachable. Identify which step failed before switching nodes.

10808
Example local proxy ports; check your settings
443
Common remote TLS ports; not used by every node
1 item
Change one troubleshooting variable at a time

2. Local Ports: Confirm the Core Is Listening

An open v2rayN window does not mean the core is running correctly. In “Settings” → “Parameter Settings,” check the local listening ports, then review the logs on the main screen. Menu names may vary by release; use the SOCKS, HTTP, or mixed listener shown in your version rather than copying a port from another guide.

This example uses local port 10808 on Windows. Run the command in PowerShell. A matching listener entry means a process has claimed the port; you still need to confirm it belongs to the currently running core.

Get-NetTCPConnection -LocalPort 10808 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

netstat -ano | findstr :10808

If the first command returns a process ID, use Get-Process -Id process ID to identify it. The second command may also show connection entries; look for the LISTENING line. Don’t terminate an unknown process based on its port number alone. First check for a second client instance or a leftover core process.

Error: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

Cause: Another process is using the listening port on Windows. Fix: Identify the process and close the duplicate instance, or change the client’s local port and update any manual proxy settings to match.

Error: bind: address already in use

Cause: A process is already listening on this address and port, often because the core was started twice. Fix: Stop the proxy, close the duplicate instance, then start it again and check whether the same error appears in the new logs.

On Android, tap Stop in v2rayNG, start the connection again, and check “Menu” → “Log.” If Android asks for permission to establish a VPN connection, approve it to create the traffic tunnel. Don’t run another app that uses Android’s VPN service at the same time; it may replace the connection. A notification icon does not prove the remote node is working.

3. Proxy Routing: Check Whether Browser Traffic Reaches the Local Listener

Once the local listener is working, check the system proxy. In v2rayN, right-click the tray icon and select “System Proxy” → “Set system proxy.” On Windows, you can also go to “Settings” → “Network & Internet” → “Proxy” and confirm the manual proxy address and port match the current client. On macOS, check “System Settings” → “Network” → your current network service → “Details” → “Proxies.”

  1. Select the node you want to test

    In v2rayN, set the server you want to test as the active server on the main screen. In v2rayNG, select the target configuration and reconnect. Don’t assume a result in the speed-test list reflects the active connection.

  2. Check the proxy mode

    Test the browser with the system proxy before trying TUN. If TUN is on, disable it temporarily to narrow down the cause. In v2rayNG’s VPN mode, also check whether the app is excluded from the VPN.

  3. Make a single test request

    Clear the log display, then visit a fixed HTTPS page and check for a request entry for its domain. You can temporarily increase the log level to help diagnose the issue, but restore the normal level afterward.

  4. Check the route and exit

    If the request reaches the core but goes direct, check the active routing rules. You can briefly switch to global proxy mode and retry the same page. Restore your original routing rules afterward, and don’t change nodes at the same time.

You can also bypass system proxy settings from the command line and test the local proxy directly. This example applies only if 10808 provides SOCKS service; if it is an HTTP-only port, use the corresponding HTTP proxy options. On Windows, use curl.exe to avoid command aliases in some PowerShell environments.

curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

Result: Explicit proxy works — check proxy settings

If this command returns HTTP response headers but the same site fails in your browser, check the browser’s proxy settings, extensions, and system proxy first. Don’t change the UUID, TLS settings, or server port yet.

4. Subscription Status: A Successful Update Doesn’t Guarantee a Working Node

A subscription distributes configuration; it is not the proxy server itself. A successful subscription request only means the client retrieved content it could parse. Data limits, expiration, node changes, and server issues can still prevent connections. Conversely, existing nodes may keep working even if a subscription update fails, so test these separately.

5. System Time and Transport: Check the Logs One Detail at a Time

A significantly incorrect system clock can cause certificate validity checks to fail and may also affect VMess time validation. On Windows, go to “Settings” → “Time & language” → “Date & time,” turn on automatic time setting, and sync now. On Android, search system settings for “Date & time” and enable automatic time. A different displayed time zone does not necessarily mean the clock is wrong; verify the actual date and time.

Next, compare the full configuration with the details from your provider. V2Ray is a name in the proxy protocol and core ecosystem; v2rayN is a client. That doesn’t mean every node works with any core or transport. v2rayNG uses the Xray core. If you’re reproducing the issue in v2flyNG, check the configuration against the capabilities of its v2fly core rather than comparing node names alone.

Setting to checkCommon mismatchWhat to do
Address and remote portOld domain, pre-migration port, or local port entered as the remote portImport the latest subscription and compare it with your provider’s instructions
VMess / VLESS identityExpired UUID, incomplete copy, or wrong protocolReimport the full configuration; don’t copy identity fields from another node
TLS and SNIServer name mismatch, expired certificate, or incorrect system clockCheck serverName against the certificate domain, and keep certificate verification enabled
WebSocketWebSocket path or Host mismatchCheck the path, capitalization, and Host exactly; don’t add a slash yourself
gRPCWrong serviceName or transport typeRestore the service name and TLS settings from the original configuration
VLESS + REALITYPublic key, shortId, serverName, or flow mismatchCheck the full set of parameters and core support; don’t apply standard TLS settings

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

Cause: The client clock is wrong, or the server certificate is outside its validity period. Fix: Sync the system clock first. If the time is correct, report the certificate issue to your provider. Disabling certificate verification is not a fix.

Error: websocket: bad handshake

Cause: The WebSocket upgrade request did not receive the expected response. The path, Host, reverse proxy, or server configuration may not match. Fix: Compare each setting with the latest subscription, then ask the server maintainer to check the proxy configuration.

Error: i/o timeout

Cause: A network read or write timed out. This message alone can’t tell you whether the cause is the server, DNS, or destination website. Fix: Check the surrounding log entries to identify the destination and failure stage, then test the same node on another network.

6. Network and Server: Narrow It Down with Cross-Tests

After checking the local setup, investigate the remote end. On Windows, use this command to check remote TCP connectivity: replace example.com with the node server’s domain and 443 with the configured remote port. This is a connectivity example, not a working node.

Resolve-DnsName example.com
Test-NetConnection -ComputerName example.com -Port 443

Successful DNS resolution doesn’t guarantee the result is correct, and a successful TCP test doesn’t mean proxy authentication worked. If the logs specifically show a DNS resolution failure, check system DNS, client DNS, and the resolver path in use. Don’t change DNS, routing, and transport settings all at once just because you see a timeout.

Result: If it fails across devices and networks, ask the server maintainer to investigate

If the latest configuration fails on two devices and two independent networks, while other nodes work, send the maintainer redacted logs and ask them to check the listening port, firewall, certificate, reverse proxy, and outbound network. Reinstalling the client repeatedly is unlikely to fix a problem at this layer.

7. Common Questions and What to Include in a Report

TCPing works. Why does the real connection still time out?

TCPing only confirms that a connection to the port can be established. Check the core logs from the real connection test, then verify protocol identity, TLS, transport settings, and the test destination. Try another fixed destination in a browser or with an explicit proxy command to distinguish a test-site issue from a node issue.

v2rayNG says it’s connected, but no apps can access the internet. What should I check?

First, confirm the selected configuration and check the logs for outbound errors. Then see whether per-app proxy settings exclude the app you’re testing. Temporarily stop other VPN apps, reconnect, and test over both Wi-Fi and mobile data.

Do I need to enable TUN to fix a timeout?

No. TUN routes traffic from more apps; it can’t fix an incorrect UUID, remote port, or server certificate. First confirm the local proxy and node work, then troubleshoot apps that don’t follow the system proxy.

It works briefly after a restart, then disconnects again. What should I do?

Note when the connection drops and check whether it coincides with sleep, network switching, battery restrictions, or duplicate core processes. On Android, go to “Settings” → “Apps” → “v2rayNG” and check battery and background activity permissions. Options vary by device and Android version.

When reporting the issue to your provider, include the failure time and time zone, client and core versions, operating system, network type, test destination, and a few relevant log lines from before and after the failure. Don’t send a full subscription URL, UUID, or screenshot containing an access token. Redact server addresses and personal IP addresses as appropriate for the audience.

Client downloadsChoose a download for your platform