v2rayN Connected but No Internet? Check System Proxy, Ports, and Routing

Check system proxy settings, local ports, time sync, routing rules, and node availability in order to troubleshoot a v2rayN connection with no internet access.

At a glance

For desktop users whose core is running and a node is selected, but whose browser still times out or reports a proxy connection failure. Start with an explicit proxy request to determine whether the app is sending traffic to the proxy and whether the proxy can complete the request. Then check the listening port, system time, routing, and node settings. The steps below use Windows as an example; use the port shown by your client. Change one setting at a time and record the result.

1. “Connected” doesn’t mean web requests are working

The v2rayN status, node latency test, and website availability are three different things. A running core process only confirms that the program can start. A TCP latency result usually shows only that a connection to the remote port can be established. Authentication, the transport handshake, DNS resolution, and access to the destination website may still fail. Test a real request instead of repeatedly running the latency check.

127.0.0.1
Local proxy listening address
10808
Example local proxy port used below
443
Common HTTPS destination port; not a fixed node port

Newer configurations may use a mixed port that accepts both HTTP and SOCKS, while older ones may use separate inbound ports. 10808 is not a universal default; if the interface shows HTTP on 10809, use that port for HTTP tests. The node’s server port is set by the server—don’t change it to 443 just to match this example.

  1. First, confirm that sites normally reachable without a proxy still open when the proxy is off.
  2. Note the current node, routing mode, local port, and time the problem occurred.
  3. Temporarily use only one traffic-capture method. When troubleshooting the system proxy, turn off TUN to avoid interference between the two paths.
  4. Open the client log, make one request, and check for errors from the same time.

2. System proxy: Check where the browser sends requests

The system proxy determines whether an app sends requests to a local port. The routing mode determines which outbound is selected once traffic reaches the core. They are not interchangeable. A browser that follows system settings may connect directly if a proxy node is selected but the system proxy is not configured. Conversely, if the system proxy points to a stopped port, sites that normally work may become unreachable.

  1. Check the inbound settings

    In v2rayN, open “Settings” → “Parameter Settings” and check the local listening address, port, and inbound protocol. Section names vary between versions; use the values shown in your client rather than guessing from an older guide.

  2. Set the system proxy

    In the main window or tray menu, open “System Proxy” and select “Set system proxy.” This writes the system proxy settings; it does not mean every version enables PAC or captures traffic from every app.

  3. Check the system settings

    Go to Windows “Settings” → “Network & internet” → “Proxy” and check the current manual proxy or setup script. The manual proxy address should match the local listener. An HTTP proxy cannot point to a SOCKS-only port.

  4. Rule out browser overrides

    Temporarily disable proxy-switching extensions, check the browser’s own proxy settings, and reopen the test page. If the system proxy settings keep changing, quit other programs that may be modifying them.

Command-line tools don’t necessarily use the Windows system proxy. A successful or failed terminal request doesn’t tell you whether the browser is configured correctly. The explicit --proxy option below bypasses that difference so you can test the local inbound and the connection beyond it separately.

3. Local port: Use an explicit request to isolate the inbound from the outbound

Run these commands in PowerShell. Use curl.exe explicitly to avoid environments where curl resolves to a different command. The first command is for HTTP or mixed inbound; the second is for SOCKS or mixed inbound. Run only the command that matches your inbound protocol—you don’t need both to work.

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

socks5h sends the destination hostname to the SOCKS endpoint for resolution, which helps distinguish it from local DNS resolution. However, it doesn’t prove that the request uses remote DNS. If an HTTP test returns only 200 Connection established, check the TLS handshake and destination response too. That message confirms the proxy tunnel was established, not that the web request completed.

ResultCheck firstNext step
Local connection refused immediatelyListening port and core statusCheck the port and identify the listening process
Local connection succeeds, then times outNode, handshake, DNS, and routingCheck core logs from the same time
Received an HTTP response from the destinationBrowser proxy pathCheck extensions, system proxy, and cache
Returned 403 or 451Site access policyTry another test site; don’t assume the node is down

Takeaway: If the explicit proxy request works, check the app’s proxy path first

If an explicit proxy request reaches the same destination but the browser fails, fix the browser and system proxy settings first. Resetting the subscription or replacing the core is usually not the first step.

If the port is reported as in use, use the following command to find the process listening on it. Check the local address column and the LISTENING state; the last column is the PID. Then find the process under Task Manager → Details. Don’t force-quit an unknown system process based on its PID alone.

netstat -ano | findstr ":10808"

If an old core process is still running, exit the corresponding client normally and restart it. If you change the local port, update both the system proxy and any app-specific proxy settings. Changing only one can turn a port conflict into a connection refusal. For a single computer, keep the listener on 127.0.0.1; there’s no need to expose it to your local network.

4. Time and handshake: Use logs to distinguish authentication from transport errors

An incorrect system clock can affect VMess authentication and cause TLS certificates to appear not yet valid or expired. In Windows, go to “Settings” → “Time & language” → “Date & time,” turn on automatic time, and select “Sync now.” Check the date and time zone too. The clock must show the correct time, not just look close enough.

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

Cause: A common Windows error caused by a conflict between listening addresses and ports. The full log may include an address prefix.

Fix: Use netstat to check the PID, exit the duplicate process, or change the local port and update the system proxy to match.

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

Cause: The system clock may be wrong, or the server certificate may have an invalid validity period. This line alone doesn’t show which side is at fault.

Fix: Sync your system clock first. If the error persists, ask the service provider to check the certificate. Don’t disable certificate validation as a workaround.

Error: dial tcp: lookup …: no such host

Cause: This is a common format for a hostname lookup failure. The omitted part shows the actual hostname, which could belong to the node or the destination site.

Fix: Identify which hostname failed, then check its spelling, system resolution, and the core’s DNS path. Don’t change every DNS setting at once.

Error: context deadline exceeded

Cause: An operation exceeded its timeout. This line alone doesn’t prove the node is down.

Fix: Check the surrounding log entries to see whether the timeout occurred during DNS resolution, the remote connection, or access to the destination, then test that stage.

For VLESS, VMess, or Trojan, importing a node isn’t enough—check its address, port, authentication details, and transport settings. TLS serverName, the WebSocket path, and gRPC serviceName must match the server configuration. REALITY also requires matching the server-provided public key, shortId, and other parameters. Changing protocols isn’t a universal fix, and the client core must support the configuration.

5. Routing and DNS: Check whether requests are using the wrong outbound

If logs show requests reaching the core but some domains fail, check traffic routing. V2Ray/Xray evaluates routing.rules in order and selects an outbound when a rule matches. outboundTag must reference an existing outbounds[].tag. Check the default outbound too—don’t assume unmatched traffic will use the proxy.

Browser secure DNS, system DNS, and core DNS can use different resolution paths. nslookup shows which resolver the system uses, but it doesn’t prove that DNS inside the proxy works or show where every browser DNS request goes. If only the browser fails, temporarily change its secure DNS setting for comparison, then restore the original setting after testing.

6. Node availability: Distinguish a reachable port from a working protocol

If the local listener is working but an explicit proxy request still fails, test the remote connection. PowerShell’s port test establishes a TCP connection but doesn’t verify VMess, VLESS, or Trojan authentication or transport settings. So TcpTestSucceeded: True narrows down the problem but can’t replace a real web request.

$nodeHost = Read-Host "Enter the current node's server address"
$nodePort = [int](Read-Host "Enter the current node's server port")
Test-NetConnection -ComputerName $nodeHost -Port $nodePort
  1. Check the subscription: Make sure it’s up to date, the account hasn’t expired, and the data allowance hasn’t run out. Don’t share your subscription URL, UUID, password, or full configuration with strangers.
  2. Try another known-working node: Keep the same local port and routing settings, then test the same URL again. If only one node fails, check its settings and server status first.
  3. Try another network: Compare your current connection with a mobile hotspot. If the hotspot works but your regular network doesn’t, check the network’s egress restrictions, DNS, and firewall policies.
  4. Check blocked-connection logs: Security software may allow the interface but block the core from connecting to the internet. Check the program path and logs, then add the necessary allow rule. Don’t permanently disable the firewall as a fix.

If all nodes fail at once and the logs show that the core won’t start, troubleshoot configuration parsing or core compatibility first instead of repeatedly refreshing the subscription. Back up your configuration before upgrading, then confirm that the selected core supports the node protocol. A software upgrade won’t fix an expired certificate, exhausted account allowance, or incorrect server settings.

7. Common questions and checks after restoring access

Why does the latency test show a result when websites still time out?

A TCP test may not complete protocol authentication or reach the destination site. Run the explicit proxy request in this guide, then check the logs from the same time. Verify the local connection, remote handshake, and destination response separately; a latency figure alone doesn’t show whether the service is usable.

Why does only the browser work while other apps still can’t connect?

Some apps don’t use the system proxy. Check the app’s network settings; if it supports HTTP or SOCKS, enter the actual listening address and matching port. Enable TUN only if needed, then check routing and DNS again. The system proxy doesn’t capture traffic from every app.

Why can’t I open regular websites after exiting v2rayN?

Reopen the client, select “Clear system proxy” from the “System Proxy” menu, then go to Windows “Network & internet” → “Proxy” and check whether it still points to an old local port. If your device is managed by an organization, keep the required settings and contact your administrator.

Do I need to reinstall if it breaks again after a restart?

First check the startup order, port conflicts, and whether another program has changed the system proxy. When the issue recurs, record the listening PID and logs to determine whether the core failed to start or the browser’s proxy path stopped working. Reinstalling before finding the cause may only remove a working configuration.

After restoring access, remove any temporary global routing rules and debugging settings added during troubleshooting, while keeping the system proxy mode you need. Retest at least one site that normally connects directly, one that requires a proxy, and the app that failed before. Once all three behave as expected, record the changes that fixed the issue.

Download v2rayN