At a glance

Use this guide when v2rayN has a server selected and the core is running, but your browser still times out or reports a proxy error. First check whether traffic reaches the local proxy, then verify the port and routing, and finally check DNS and system time. The examples use Windows desktop commands and logs to distinguish browser settings, local listening, and remote connection issues. Change one setting at a time and test before moving on.

1. Distinguish a Running Core from a Successful Web Request

A running status in the main window only confirms that the client completed the relevant startup steps; it doesn’t prove the target website is reachable. Latency results in the server list also have limits: a successful TCP connection doesn’t confirm protocol authentication, and reaching one test address doesn’t mean every website will work. Keep the target address the same while troubleshooting, or differences between websites can look like the result of a configuration change.

Save your current settings first. Note the active server, system proxy status, routing mode, local port, and test time. The values below are command parameters for reproducing the test—not speed-test results or default settings for every device. If the client shows a different listening port, update the commands accordingly.

127.0.0.1
Local loopback address, not the remote server
10808
Example proxy port used in this guide; check the actual listening port
15 seconds
Total timeout for one request, so a failed test ends promptly

2. System Proxy: Make Sure Your Browser Uses v2rayN

The system proxy and selected server are separate settings. Selecting a server won’t route traffic through it if the system proxy is still cleared; browsers that follow system settings will connect directly. Conversely, if you exit the client but leave the system proxy enabled, your browser may keep trying to connect to a local port that’s no longer listening.

  1. Enable the system proxy

    In v2rayN, open the System Proxy menu and select Set system proxy automatically. The menu location may vary by version; check the menu label and actual proxy status.

  2. Check Windows settings

    In Windows 11, open Settings → Network & internet → Proxy and check the address and port under Manual proxy setup. They should match the client’s HTTP or mixed proxy listener—not the remote server address.

  3. Check for browser overrides

    Temporarily disable proxy-switching extensions and check whether the browser has a separate proxy configured. Browsers with independent proxy settings should be set to use the system proxy before you test again.

  4. Check the state after exiting

    To test a direct connection after exiting the client, first undo the proxy setting under System Proxy → Clear system proxy. Closing the window may leave the client running in the system tray, so don’t assume the core has stopped just because the window disappeared.

Set system proxy automatically is a client menu action; it doesn’t mean you need to enter an automatic configuration script URL in Windows. If your device has an organization-managed script or proxy policy, don’t overwrite it and then guess at the results. Command-line programs may not use the Windows system proxy either. The next section uses explicit proxy options to remove that uncertainty.

3. Local Port: Check the Listener, Then Test the Explicit Proxy

Read the port from the current configuration or startup log. Ports can differ across versions, older configurations, and custom setups; don’t copy an HTTP port from an old guide and assume it’s the current mixed port. In Windows PowerShell, run this command to check whether the example port is listening:

netstat -ano -p tcp | findstr ":10808"

Look for a line with local address 127.0.0.1:10808 and state LISTENING. The last column is the process PID. If the listener uses a different address, check it against your actual configuration. Then go to Task Manager → Details and verify which process owns that PID so you don’t mistake another program’s listener for the v2rayN core.

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

These commands apply only if the port supports HTTP, SOCKS, or both. Try a mixed listener with each command; for separate listeners, substitute the correct port for each. --noproxy "" prevents the no-proxy list from interfering. socks5h sends the target hostname to the proxy for resolution, though the actual resolution path still depends on the core configuration. The test domain provides a consistent comparison point; it isn’t guaranteed to be reachable on every network.

ResultLikely causeNext step
No listener; connection is refused immediatelyThe core isn’t running, the port is incorrect, or the listener failed to startCheck the startup log and port usage first
Explicit proxy works, but the browser doesn’tThe system proxy or browser-specific settings differRecheck system settings and test again with proxy extensions disabled
Local listener is active, but the request still times outThe issue may be in routing, the server connection, or DNS resolutionCheck the core log for the same timestamp
An HTTP response arrives from the target siteThe request reached an HTTP serviceDetermine whether the network is working or the site itself is denying access

4. Routing Rules: Check Whether Traffic Uses the Proxy for Its Outbound Connection

After the browser sends a request to the local proxy, the core still uses routing rules to decide whether to proxy, connect directly, or block the outbound traffic. So having the system proxy enabled doesn’t mean every domain goes through the remote server. In particular, after importing custom rules, an overly broad direct-connection rule may send the target request straight from your device.

The domain resolution strategy in your routing rules can also affect IP-based matches. If a domain resolves to different addresses, it may match different rules; not every issue is caused by the server. For a concise overview of how inbound traffic, routing, and outbound connections fit together, see Advanced Configuration. Don’t paste in a complete configuration that may not match your current core during this test.

5. DNS Resolution: Check the Server Address and Target Domain Separately

At least two names may need to be resolved: the remote server’s hostname and the target domain requested by the browser. If the server hostname can’t be resolved, the connection usually hasn’t reached the remote server. If the target domain fails to resolve, only some websites may be affected. Browser secure DNS, system DNS, and core DNS are separate settings; changing one doesn’t guarantee the others will change too.

nslookup www.example.com
ipconfig /flushdns

The first command checks how the system’s current resolver responds for the target domain. Run the same query for the server hostname in the node configuration; if the server is specified as an IP address, there’s no hostname to resolve. The second command clears the Windows DNS client cache, but won’t automatically clear the browser’s or core’s own cache. A successful system lookup doesn’t prove that DNS resolution through the proxy is working.

Error: curl: (5) Could not resolve proxy

Cause and fix: The proxy hostname can’t be resolved, so the problem is at the proxy endpoint, not the target site. Check the proxy address in the command. For a local test, use the actual loopback listener address; don’t enter the remote server hostname as the HTTP proxy endpoint.

Error: curl: (6) Could not resolve host

Cause and fix: The current request path couldn’t resolve the target hostname. First confirm that the request is using the proxy as intended, then compare system resolution, core DNS, and the browser’s secure DNS settings. Don’t rely on repeated page refreshes to tell whether the issue is fixed.

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

Cause and fix: The listener address or port is already in use. Find the PID using a port check, verify which process owns it, then close the duplicate instance or change the listening port and update the system proxy settings. Don’t terminate an unfamiliar system process.

If a regular SOCKS request fails but a socks5h request succeeds, check local resolution of the target domain. Treat this as a diagnostic clue, not a definitive answer. With encrypted DNS, access to the resolver may itself depend on the proxy. Avoid making resolution of the server hostname—which is required to establish the proxy—depend on a proxy connection that hasn’t been established yet. Restart the core after making changes, then test the same target again.

6. Time Sync and Handshakes: Don’t Bypass Errors by Disabling Verification

Clock skew can affect certificate validity checks, and authentication for protocols such as VMess may also depend on the time. VLESS itself must be distinguished from its transport security settings, such as TLS or REALITY. Authentication failures, certificate errors, and network timeouts need separate troubleshooting; a running status alone doesn’t rule them out.

  1. In Windows, open Settings → Time & language → Date & time, turn on Set time automatically, check your time zone, and select Sync now.
  2. If syncing fails, first check the Windows Time service and whether the time source is reachable. Ask your administrator to handle managed devices. Changing the displayed time zone alone won’t fix an incorrect system clock.
  3. Send another request and check the logs for messages about expired or not-yet-valid certificates or a failed handshake.
  4. Check the server address, port, user ID, and transport settings provided for the node. TLS server names and REALITY public keys must match the server configuration; don’t change them by guesswork.

7. Common Questions and Final Checks

Why does the latency test show a value if websites still time out?

A latency test verifies only the path it uses. First access a fixed URL with an explicit proxy command, then check the corresponding logs. Even a successful TCP latency test doesn’t confirm that the user ID, TLS settings, or access to the target website will work.

If it only works with TUN enabled, is the system proxy broken?

Not necessarily. An app may not follow the system proxy, or it may have its own proxy settings. Turn off TUN and test both the browser and an explicit proxy request. Only if the explicit proxy works and the browser doesn’t should you focus first on how the app connects to the proxy.

If switching servers fixes the issue, does that prove the original server is down?

It only shows that the issue is related to differences between the two configurations. Compare the server hostname, port, protocol, and transport settings, then repeat the test. The subscription may have updated the server details; verify its source before updating the relevant group. Don’t post a full subscription URL in a public discussion.

What should I do if no websites load after exiting v2rayN?

In Windows, open Settings → Network & internet → Proxy and check whether a local proxy is still set. If needed, restart v2rayN, select System Proxy → Clear system proxy, and test a direct connection. Don’t remove organization-managed proxy settings yourself.

When you’re done troubleshooting, restore any features you temporarily disabled and save the settings that work. If you need help, share the client and core versions, operating system, listening port, routing mode, time of the issue, and sanitized logs. Remove subscription tokens, user IDs, and other credentials, but keep the error types and their order. These details are more useful for diagnosing the problem than a screenshot showing only “Connected.”