v2rayN System Proxy Not Working: Fix Browser and Command-Line Proxy Issues

Connected but can't open websites? Troubleshoot browser extensions and system proxy settings separately from terminal proxy variables. Includes PAC, bypass lists, and port checks.

At a glance

Use this guide if the v2rayN core is running but your browser can't connect, terminal requests time out, or only some apps have internet access. First test the local proxy with an explicit proxy request, then check whether the browser uses the system proxy, and finally review terminal environment variables, PAC, and bypass lists. The examples use Windows; replace the sample port with the one your client actually listens on. A successful command doesn't mean all traffic is being proxied.

Separate system proxy settings, core status, and server connectivity

If v2rayN shows that the core is running, that only confirms the relevant process is active. Selecting a server doesn't mean your browser is using it. The system proxy setting provides a local proxy address to apps that honor it; it doesn't automatically route every program's traffic. Terminal tools, browser extensions, and app-specific proxy settings may use different connection paths.

App reads proxy settings Local proxy endpoint Core routing rules Outbound connection Destination responds

Test each link in this chain. If an explicit request through the local proxy still fails, check the listening port, core logs, and server connection first. If the explicit proxy works but normal browsing doesn't, check system settings and the browser. This order avoids repeatedly changing PAC rules before the local endpoint is reachable.

  1. Note the current server, system proxy mode, local listen address, and port so you can restore them later.
  2. Temporarily turn off TUN while troubleshooting to prevent traffic from being captured by a separate routing path. Don't run another app that also manages the system proxy at the same time.
  3. In v2rayN, check the local listener options under Settings → Parameter Settings. Field locations may vary between versions; use the labels shown in your interface.
  4. Open the client logs and check for startup failures, port binding errors, or repeated connection errors before running the tests below.

Test the local endpoint with an explicit proxy request

In PowerShell, call curl.exe to avoid environments where curl points to a different command. The two requests below use the same destination: the first bypasses proxies, and the second explicitly uses the local HTTP proxy. Connection and overall timeouts prevent excessive waiting. The sample site is only for testing connectivity, not for measuring performance.

10808
Sample local proxy port; use your actual setting
443
HTTPS destination port in this example
2 requests
Compare direct and explicit-proxy requests
# Direct connection: bypass all proxies
curl.exe --noproxy "*" --connect-timeout 10 --max-time 20 -I https://example.com/

# HTTP proxy endpoint: make sure the test domain isn't on the bypass list
curl.exe --proxy http://127.0.0.1:10808 --noproxy "localhost,127.0.0.1" --connect-timeout 10 --max-time 20 -I https://example.com/

# If this port supports SOCKS only, use this command instead
curl.exe --proxy socks5h://127.0.0.1:10808 --noproxy "localhost,127.0.0.1" --connect-timeout 10 --max-time 20 -I https://example.com/

socks5h lets the SOCKS proxy handle the destination hostname, but the final DNS resolution behavior still depends on the core configuration. HTTP proxies typically use a CONNECT tunnel for HTTPS destinations. Using http://127.0.0.1:10808 as the proxy address doesn't turn the destination website into plain HTTP.

Test resultsCheck firstWhat you can't conclude
Explicit proxy works, browser failsBrowser extensions, system proxy address, PAC, and bypass listYou can't assume the browser is using the proxy
Connection to local proxy refusedListening port, endpoint protocol, and whether the core is runningYou can't conclude that the remote server is at fault
Both direct and proxied requests workUse the logs to determine the actual outbound routeOpening the same page doesn't mean both requests took the same route
Proxy request times outCheck DNS, routing, and outbound connections against the log timestampsA timeout alone doesn't identify which step failed

Next: change system settings only after the explicit proxy works

Keep one explicit proxy command that succeeds consistently as your baseline. Then change only one browser, PAC, or environment-variable setting at a time. If the baseline still works while an app fails, you can focus on that app's proxy path.

Browser bypassing the proxy: check system settings and extensions

In Windows 11, open Settings → Network & internet → Proxy and check whether a setup script or manual proxy is enabled. If v2rayN is using manual system proxy mode, the address and port should match the client's active HTTP or mixed-protocol endpoint. If you're using PAC, check the script address; you don't also need to enable the manual proxy toggle.

  1. Reapply the system proxy. In the v2rayN tray menu, go to System Proxy and select Auto Configure System Proxy. If your version uses different wording, choose the option that sets the local proxy address, then return to Windows settings to verify the result.
  2. Temporarily disable proxy extensions. An extension may pin a server, force direct connections, or route traffic using its own rules. Disable related extensions and test in a regular browser window. Don't assume private browsing disables extensions; some may be allowed to run there too.
  3. Check the browser's own settings. If the browser has separate proxy settings, select Use system proxy. If it doesn't, check whether its launch options force a proxy or direct connection.
  4. Restart the browser. Close all browser windows and make sure its background processes have exited. Then open the same test address again to avoid reusing an old connection.

If the system settings revert right after you change them, check for another proxy app, a browser extension, or an organization-managed policy. On a managed device, don't repeatedly override policy settings; ask your administrator which proxy methods are allowed. If system proxying works but one app still fails, that app may not use the system setting at all.

PAC and bypass lists: check whether requests are being excluded

PAC is a proxy selection script that an app reads and runs. Common results include DIRECT and PROXY 127.0.0.1:10808. It determines where a request goes first; this is separate from routing rules applied by the core after the request reaches it. If PAC returns DIRECT, the request may never reach v2rayN.

Check Windows manual proxy exclusions and direct-connection rules inside PAC separately, depending on which mode is active. Terminal NO_PROXY is a separate setting. Removing an exclusion in Windows won't clear the bypass list used by command-line tools.

Next: temporarily set a known endpoint to separate PAC and core issues

Record the PAC address, then temporarily switch to a verified manual proxy endpoint. If the browser starts working while the explicit proxy command continues to succeed, focus on PAC loading and rule matching. Restore the original mode after troubleshooting; there's no need to rewrite core routing rules at the same time.

Terminal bypassing the proxy: check environment variables and tool settings

Terminal programs don't necessarily use the Windows system proxy. If the browser works but command-line requests time out, check the tool's proxy options and environment variables separately. The PowerShell settings below affect only the current session and processes started from it; they don't automatically change other terminal windows that are already open.

# List environment variables containing proxy in the current session
Get-ChildItem Env: | Where-Object { $_.Name -match 'proxy' }

# Example: set an HTTP proxy for tools that support these variables
$env:http_proxy = "http://127.0.0.1:10808"
$env:https_proxy = "http://127.0.0.1:10808"
$env:no_proxy = "localhost,127.0.0.1"

# Remove --proxy to check whether curl.exe uses the current environment
curl.exe --connect-timeout 10 --max-time 20 -I https://example.com/

# Remove the session variables set for troubleshooting
Remove-Item Env:http_proxy,Env:https_proxy,Env:no_proxy -ErrorAction SilentlyContinue

https_proxy specifies which proxy to use for HTTPS destinations; it doesn't mean the proxy address itself must use HTTPS. If the local endpoint supports only a regular HTTP proxy, setting it to https://127.0.0.1:10808 may cause a TLS handshake failure. Support and precedence for environment variables vary by tool, so don't assume every program behaves like curl.

Port conflicts and error messages: start by checking the listener

If an explicit proxy command fails while connecting to the local port, check the listener before changing protocol settings such as VMess or VLESS. Run the commands below in PowerShell; they use the sample port from earlier. After finding a listener, check which process owns it: a listening process isn't necessarily the v2rayN core.

# Check whether the port is listening for TCP connections
Get-NetTCPConnection -LocalPort 10808 -State Listen -ErrorAction SilentlyContinue |
  Select-Object LocalAddress,LocalPort,OwningProcess

# Find the name of the listening process
Get-NetTCPConnection -LocalPort 10808 -State Listen -ErrorAction SilentlyContinue |
  ForEach-Object { Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue }

# Check the Windows WinHTTP proxy as a separate configuration clue
netsh winhttp show proxy

netsh winhttp show proxy displays the WinHTTP proxy configuration, not the user-level system proxy used by browsers. If it shows a direct connection, that doesn't mean v2rayN failed to set the system proxy used by browsers. Don't import the user proxy into another configuration without confirming it's needed.

Error: Connection refused

Cause: When this appears while connecting to a local loopback address, it usually means no service is accepting connections on the target port, or the connection was actively rejected. Fix: Check the actual listening address and port, review the core startup logs, and retry with the correct endpoint protocol.

Error: address already in use

Cause: This is a common port binding error. Another process or a duplicate instance may already be using the same address and port. Fix: Identify the process listening on the port, close the conflicting app normally, or change the local port and update the system proxy, PAC, and terminal variables to match.

Error: Could not resolve proxy

Cause: curl can't resolve the proxy hostname. Common causes include a typo in the proxy address, a leftover variable, or an invalid address format. Fix: Test first with the explicit address http://127.0.0.1:10808, then check the proxy address in your environment variables and tool settings.

Error: Could not resolve host

Cause: The destination hostname couldn't be resolved along the current request path. Where this happens depends on whether you're using a direct connection, SOCKS, or HTTP proxy. Fix: Note the command and proxy type, check the core logs to see whether the request reached the proxy, then review DNS settings for that path.

Exact error wording varies across operating systems and core versions. Note the error keyword, timestamp, and destination port to help locate the issue; don't conclude that a server is down based only on a “timeout.” If the local endpoint is reachable but the logs show a failed remote connection, check the server address, port, transport, and security settings.

After restoring your settings, finish with these three checks

Once you've found the cause, restore the proxy mode you need and remove any temporary troubleshooting settings. In particular, make sure the system proxy isn't using a new port while the terminal still uses the old one, or PAC still points to the previous address. Restore one setting at a time and confirm it works before proceeding.

  1. Explicit proxy works consistently: Run the baseline command again to confirm the local endpoint and outbound route still complete the request.
  2. App proxy path is clear: Confirm the browser uses the expected system proxy or PAC, and that the terminal uses environment variables if needed. Check the logs to confirm whether requests reach the core.
  3. Shutdown behavior is predictable: Clear or restore the system proxy before stopping proxy use. If websites stop loading after the client exits unexpectedly, check whether the system still points to a local port that is no longer listening.

If you need help, include your operating system, v2rayN interface type, actual listening protocol and port, system proxy mode, test command, and relevant log timestamps. Hide subscription URLs, credentials, and sensitive server details before sharing. For configuration concepts, see Advanced Configuration; for a first setup, review the basics in the Getting Started Guide.

Download v2rayN