V2Ray Connection Timeout: Troubleshooting from Your Network to Server Settings

When all nodes time out or one won’t connect, narrow down the cause by checking your network, client mode, node settings, transport, and server—in that order. Each step includes a practical test.

At a glance

For v2rayN users seeing test timeouts, websites failing after enabling the proxy, or no connection even after switching nodes. First, compare direct and explicit-proxy requests to isolate your network from the client. Then check node settings, transport, and server listeners. Change one thing at a time and keep the relevant logs to distinguish port conflicts, DNS failures, and unreachable servers.

First, tell apart a test timeout from a failed request

“Node timeout” isn’t a diagnosis. A TCP connection test only tells you whether a connection to the remote port can be established. A real connection-latency test also depends on the proxy protocol, test URL, and request timeout. A timeout in the node list doesn’t necessarily mean every website is inaccessible; a latency value doesn’t prove that certificates, routing, and every app are working correctly.

Select one node as the active configuration, then open a fixed HTTPS URL. Don’t change nodes, routing mode, and DNS at the same time. Note the time the problem occurs to the nearest minute and check the core log for that same time. A screenshot of the node list alone usually won’t show where the connection is getting stuck.

Local network Local listener Rule matching Node connection Target response

Step 1: Disable the proxy and check your network and DNS

In the v2rayN tray menu, go to “System Proxy” and select “Clear System Proxy.” Turn off TUN mode as well. Temporarily quit other tools that manage network traffic so it can’t keep routing through a virtual adapter. Then visit a site that normally works without a proxy. If it still won’t load, check your Wi-Fi sign-in, gateway, or ISP connection first.

  1. Restore direct access

    Clear the system proxy and turn off TUN, then reopen your browser. If the browser has its own proxy configured, switch it back to using system settings too. Closing the client’s main window alone isn’t enough.

  2. Check your IP configuration

    Run ipconfig in Windows Terminal and check the current adapter’s IPv4 address and default gateway. If the address is 169.254.x.x and there’s no usable gateway, reconnect to the network or troubleshoot DHCP first.

  3. Check DNS resolution

    Run the DNS commands below. First confirm that a regular domain resolves, then run the same check for the domain used by the node. If the node uses an IP address, this won’t test resolution of the node address.

  4. Try another network

    Connect to a mobile hotspot and test the same node once. If it fails only on your usual network, investigate that network’s DNS, outbound policies, and routing before reinstalling the client.

ipconfig
nslookup example.com

example.com is only an example for demonstrating command syntax; it isn’t a node server. Successful resolution means only that an address was returned, not that a service at that address is reachable. And don’t assume a node is offline just because ping gets no reply: the remote host may block ICMP while its TCP service is still working.

Step 2: Check the core, local ports, and system proxy

Once basic network access is restored, start the client and select a node. In v2rayN, open “Settings” → “Parameter Settings” and check the local listener and the core in use. Subpage names may vary between desktop versions, so go by the actual field labels. First make sure the logs show no configuration load errors, then check the system proxy. Don’t use TUN to mask a problem with ordinary proxy mode.

The examples below use the local SOCKS endpoint 127.0.0.1:10808; use the port shown in your current settings. Some configurations use a mixed inbound, while others have a separate HTTP endpoint. Older configurations may also use 10809. The port number alone doesn’t identify the protocol, and a SOCKS port must not be entered as an HTTP proxy.

netstat -ano | findstr :10808
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

Next: If the explicit proxy works, check how traffic is routed

If this command returns a response but the browser still fails, leave the node settings alone. Enable “System Proxy” → “Automatically configure system proxy,” then check browser extensions and system proxy exceptions. If the explicit request also fails, continue with the logs and remote connection instead of repeatedly toggling the system proxy.

Step 3: Verify node settings—don’t guess at missing fields

Open the failing node’s edit window and compare each field with the original configuration from the server. VMess and VLESS are different protocols; changing one protocol name won’t convert one into the other. A subscription is just a way to distribute configurations. A successful subscription update doesn’t mean the node is available, the account is valid, or the remote service is working.

SettingWhat to checkCommon mistake
Server and portVerify the domain or IP and remote listening port exactlyUsing local port 10808 as the server port, or changing every remote port to 443
Protocol and identityCheck VMess / VLESS, the user ID, and any other fields required by the serverLosing characters when copying, or mixing the identity and address from different nodes
TransportCheck the actual configuration, such as TCP, WebSocket, or gRPCAssuming transport is just a display label that can be changed arbitrarily
Security settingsCheck TLS or REALITY, the corresponding server name, and any protocol-specific fieldsTreating REALITY like ordinary TLS and saving after entering only a domain
Routing and outboundMake sure the test target uses the intended outbound, not a direct or blocked ruleAssuming every request will use the active node just because it’s selected

If you’ve just updated the subscription, first confirm that you’re using the updated entry. Duplicate names can make it easy to select an old configuration; add a recognizable note to the test entry while keeping the original. Don’t post full share links, user IDs, or subscription URLs in public forums. When reporting a problem, include only the protocol, transport, error text, and a redacted address.

Step 4: Use the logs to locate TLS and transport errors

Find the timestamp for the request in the client log, then identify whether the error occurred during DNS resolution, TCP connection, the TLS handshake, or transport setup. The snippets below are common errors; surrounding log text varies by core. Seeing context deadline exceeded on its own only tells you a timeout occurred. Check what operation was in progress immediately before it.

Error: dial tcp: lookup

Cause: Often means the node’s domain couldn’t be resolved. The full log usually includes the domain and a DNS error.

Fix: Run nslookup for the same domain, then check the client’s DNS settings and your current network. After fixing the issue, retry once and check the new log.

Error: connect: connection refused

Cause: The connection was explicitly refused. The target port may have no listener, a firewall may be actively rejecting the connection, or the local proxy endpoint may not have started.

Fix: Check whether the address in the error is 127.0.0.1 or a remote address. For a local address, check the listener; for a remote one, ask the administrator to check the service and firewall.

Error: i/o timeout

Cause: A network read or write operation exceeded its deadline. Possible causes include packet loss, silent packet drops, or a delayed remote response.

Fix: Use the preceding log lines to identify which stage timed out, then compare results on another network. Don’t conclude that the password is wrong or the server is offline based on this line alone.

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

Cause: The local clock may be inaccurate, or the server certificate may actually be outside its validity period.

Fix: First sync your clock in Windows “Settings” → “Time & language” → “Date & time,” then ask the administrator to check the certificate’s validity period.

Error: websocket: bad handshake

Cause: The WebSocket upgrade response wasn’t as expected. Common causes include a mismatched path or Host, incorrect reverse-proxy forwarding, or the wrong target service.

Fix: Verify the WebSocket path and Host against the server configuration, and check that the reverse proxy forwards that path to the correct backend.

TLS SNI is the server name used during the handshake; WebSocket Host is an HTTP request header. They serve different purposes. The server address, SNI, and Host may be the same or may need separate values, depending on the deployment. Don’t replace them all with the address shown in the address bar. For gRPC, also check serviceName and HTTP/2 support in any intermediate proxy. Preserve capitalization in paths and names.

Step 5: Check the server listener and inbound firewall

Once the local and configuration checks above pass, have an authorized administrator check the server. Subscription users don’t need to look for server login credentials; send the provider the time of the failure, network used, node label, and redacted logs. The commands below are for a Linux server and must be run with the appropriate permissions.

sudo ss -lntp
sudo systemctl status xray --no-pager
sudo journalctl -u xray --since "20 minutes ago" --no-pager

This example assumes the service unit is named xray. Run it as written only if that’s the actual name used by the deployment. For V2Ray or a custom service unit, substitute the real unit name. A service showing as running doesn’t guarantee that the target port is open. In the ss output, verify the listening address and port, along with the owning process.

Next: Compare the same node across networks

If the same node works on a hotspot but fails on your usual network, leave the server configuration alone and investigate the original network path. If it fails across multiple networks and the server has no inbound listener, prioritize restoring the remote service. If the port is reachable but proxy requests fail, revisit the protocol, authentication, and transport logs.

Node timeout FAQ and retest checklist

All nodes are timing out. Should I reinstall v2rayN first?

Not yet. Check direct network access, core logs, the local listener, and an explicit proxy request in that order. If every node from the same provider fails while another known-good configuration works, ask the provider to check its service. Reinstalling won’t fix a remote outage or incorrect subscription settings.

Why won’t websites load if the TCP test shows a latency?

A successful TCP connection doesn’t test subsequent authentication, TLS, or application requests. Use the curl.exe command above to test a complete request and check the log at the same time. If the full request succeeds, fix the system proxy, browser settings, or routing—not the remote port.

My connection drops only after enabling TUN. How do I recover?

Turn off TUN and clear the system proxy first, then confirm that direct access works again. Next, test the node with the regular system proxy. Only after it works should you enable TUN on its own and check permissions, the virtual adapter, DNS, and route handling. Don’t run multiple tools that manage network traffic at the same time.

Why does the same node work on Android but time out on desktop?

Connect both devices to the same network first, then confirm that the server, port, and transport fields match. v2rayNG uses the Xray core, while v2flyNG uses the v2fly core; support for specific settings can vary between cores. On desktop, also check the selected core, local port, and system clock.

After fixing the issue, send three consecutive requests to the same target and record whether each one gets a response. Then restore your usual routing and app settings. One successful request doesn’t rule out intermittent failures, and repeated failures won’t be fixed simply by increasing the timeout. Record the network type, active node, core, failure stage, and changes made—never credentials.

Download v2rayN