System Proxy Not Working? Fix Browser Extension Conflicts and Terminal Proxy Settings

Check browser extensions and system proxy settings, then inspect http_proxy and https_proxy in your terminal. Learn why command-line tools may ignore the system proxy.

At a glance

For desktop users who have enabled the system proxy in v2rayN but still can’t connect from a browser or command line. First verify the local proxy endpoint, then check browser extensions, the source of the system proxy settings, terminal environment variables, and bypass rules. Comparing explicit proxy requests with direct connections can help pinpoint whether the issue is in app settings, the local listener, or the remote connection—without repeatedly switching nodes while requests follow the same path.

The system proxy doesn’t route every app automatically

v2rayN’s “System Proxy” setting mainly adds a local proxy address to the operating system’s proxy configuration. Whether an app uses that configuration depends on the app. Browsers usually honor the system proxy, but extensions, launch options, or enterprise policies can override it. Command-line tools such as curl typically use their own options and environment variables, so a checked box in the tray menu doesn’t prove that terminal traffic is going through the client.

App proxy settings Local proxy endpoint Core routing rules Destination connection

Also distinguish between a request reaching the client and a request going through a remote proxy. Even after a request reaches the local endpoint, routing rules may send it directly. The system proxy determines which endpoint an app uses; routing rules determine the outbound path. They’re separate settings. VMess and VLESS are node protocols, not proxy types to enter in a browser. A browser connects to the local HTTP or SOCKS endpoint provided by the client.

Verify the v2rayN local listening port first

This example uses 127.0.0.1:10808 as a local endpoint with HTTP proxy support enabled. It’s an example for troubleshooting, not a value used by every version or configuration. In v2rayN, open Settings → Parameter Settings and look for the local listening port and endpoint type. Labels may vary by version; use the names shown in your current interface. If HTTP and SOCKS use separate ports, choose the HTTP port.

10808
HTTP endpoint port used in this example
10 seconds
Connection timeout
20 seconds
Maximum time per request

In Windows PowerShell, first confirm that the port is listening, then send a request through the explicit proxy. This example uses curl.exe to avoid PowerShell environments where curl is interpreted as a different command. Keep v2rayN running during the test, and make sure the current node and core are started.

Get-NetTCPConnection -State Listen -LocalPort 10808

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

This command limits the bypass list to local addresses, so the example domain still uses the specified proxy. Receiving an HTTP response from the destination confirms that this request reached the proxy channel and connected to the destination. If the logs show that a direct-connection rule matched, however, that doesn’t prove the request went through a remote node. A 200 Connection established response only confirms that the HTTP CONNECT tunnel was accepted; check the destination’s response as well.

Isolate browser extension conflicts in three steps

If the explicit proxy test succeeds but the browser still fails, first check what’s controlling the browser’s proxy settings. Multiple proxy extensions can conflict—for example, one may set a fixed proxy while another enables an automatic configuration script. The mode shown by an extension’s icon may not match the proxy mode saved in the operating system.

  1. Disable proxy extensions

    In Chrome, go to Menu → Extensions → Manage extensions. In Edge, go to Menu → Extensions → Manage extensions. Temporarily disable every extension that changes proxy settings, noting their original states, then fully quit and restart the browser. Closing the current tab isn’t enough.

  2. Check the system proxy endpoint

    In Windows 11, go to Settings → Network & internet → Proxy and check whether the address and port under “Use a proxy server” match the endpoint currently listening in v2rayN. If “Use setup script” is enabled, note the script address and confirm that it’s the configuration you intend to use.

  3. Test with extensions restored one at a time

    Visit the same test address again. If disabling extensions fixes the problem, re-enable one proxy extension and explicitly choose either “Use system proxy” or the correct fixed proxy configuration. Change one setting at a time and test the same URL to avoid changing the cache, node, and routing rules all at once.

In Firefox, also go to Settings → General → Network Settings → Settings and make sure “Use system proxy settings” is selected—not an old manual proxy or automatic proxy configuration URL. If the browser says its proxy settings are managed by your organization, contact your device administrator. Reinstalling v2rayN usually won’t remove a browser policy.

Configure terminal proxies with environment variables

A terminal is just the environment where programs run; it doesn’t route every program through the system proxy. curl typically reads proxy environment variables, while other commands may use their own configuration files or command-line options. First verify connectivity with the explicit --proxy option from the previous section, then set the variables. This helps distinguish an unavailable proxy from a program that isn’t reading its proxy settings.

Windows PowerShell: set variables for the current session

Get-ChildItem Env: | Where-Object Name -Match '^(http_proxy|https_proxy|all_proxy|no_proxy)$'

$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"

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

https_proxy applies to HTTPS destination requests, but its value can still be http://127.0.0.1:10808. The URL scheme describes the local proxy service: curl uses HTTP CONNECT to establish a tunnel. It doesn’t mean the HTTPS destination is accessed in plain text. Don’t change the endpoint to https:// just because the variable name contains HTTPS.

macOS and Linux: mind the variable name’s capitalization

env | grep -iE '^(http_proxy|https_proxy|all_proxy|no_proxy)='

export http_proxy="http://127.0.0.1:10808"
export https_proxy="http://127.0.0.1:10808"
export no_proxy="localhost,127.0.0.1"

curl -I --connect-timeout 10 --max-time 20 https://example.com/

In case-sensitive environments, curl’s HTTP proxy variable should be lowercase: http_proxy. Setting only uppercase HTTP_PROXY may not work. Support varies between tools, so check the relevant documentation. Start with session-only settings; once they work, consider adding them to a shell startup file. This avoids automatically using an incorrect port every time you open a terminal.

Check bypass rules alongside direct-connection results

no_proxy or NO_PROXY lists destinations that should bypass the proxy. If it includes the test domain—or is set to *—the program may connect directly even when the proxy variables are correct. Another common issue is an old all_proxy value pointing to a SOCKS port that’s no longer listening. Precedence varies between programs, so check all relevant variables rather than only https_proxy.

Test resultCheck firstNext step
Explicit proxy works; default request failsWhere the app gets its proxy settingsCheck environment variables, app-specific settings, and bypass lists
Explicit proxy fails; direct connection worksLocal endpoint or proxy outbound connectionCheck the listening port, endpoint protocol, and core logs
Terminal works; browser failsBrowser override settingsDisable proxy extensions and check system proxy settings and browser policies
Both requests failNetwork or destination connectionCheck basic connectivity first, then investigate name resolution, the handshake, and the destination server

In Windows, use the commands below to access the same destination. The first explicitly uses the local proxy; the second explicitly connects directly with --noproxy "*". On macOS and Linux, use curl as the command name. The example domain is only for comparing connectivity. It’s normal for both direct and proxied requests to succeed, and this doesn’t reveal the exit location.

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

curl.exe -I --connect-timeout 10 --max-time 20 --noproxy "*" https://example.com/

Bottom line: keep the request path consistent

If the explicit proxy works but the default request fails, first fix how the app reads proxy settings instead of switching nodes. Investigate routing and the remote connection only if requests still fail after confirming they use the same local endpoint.

Use curl errors to identify where the request fails

Browser messages such as “Can’t reach this site” are often too vague to diagnose the problem. curl error codes help distinguish failures at the local endpoint, proxy protocol, or TLS stage. The snippets below are common examples; timings, addresses, and additional details vary by operating system and curl version.

Error: curl: (7) Failed to connect

Cause and fix: The connection to the specified address failed. If the output points to 127.0.0.1, check that the v2rayN core is running, the port is correct, and a listener is present. Don’t start by troubleshooting remote TLS.

Error: curl: (5) Could not resolve proxy

Cause and fix: The proxy hostname couldn’t be resolved. Check the address spelling, URL scheme, and quotes in the proxy variable. For a local endpoint, use the actual loopback address and port.

Error: curl: (6) Could not resolve host

Cause and fix: The destination hostname couldn’t be resolved. First check whether the request is unexpectedly connecting directly and whether you’re using a SOCKS mode that resolves names locally. Then inspect the resolution path in the logs; this error doesn’t necessarily mean the node timed out.

Error: curl: (28) Connection timed out

Cause and fix: The connection wasn’t completed within the time limit. Use the address shown in the error and the core logs to distinguish a connection to the local endpoint from a later remote connection. Then check the node address, port, and network reachability.

Error: curl: (60) SSL certificate problem

Cause and fix: Certificate verification failed. Check the system clock, certificate trust chain, and whether the network is intercepting traffic. Don’t disable certificate verification and treat the problem as solved.

For more detail, add -v to the original command to inspect the connection address, proxy variable hints, and handshake stage. Before sharing logs, remove subscription URLs, authentication details, proxy credentials, and sensitive request headers. You don’t need to share your full configuration, and you shouldn’t post the complete list of terminal environment variables in a public forum.

Restore your settings and confirm the results

After testing, keep just one clear way of controlling the proxy. If your browser normally uses the system proxy, set extensions to follow the system settings. When the terminal needs a proxy, configure variables for that session. Don’t keep system proxy settings, a fixed proxy extension, an automatic configuration script, and multiple old environment variables as “backups”—it’ll be difficult to reconstruct the request path the next time something breaks.

# PowerShell: remove only variables added for this test that were not originally set
Remove-Item Env:http_proxy, Env:https_proxy, Env:no_proxy -ErrorAction SilentlyContinue

# Bash / Zsh: remove only variables added for this test that were not originally set
unset http_proxy https_proxy no_proxy

If the explicit proxy works but certain domains still use the wrong outbound route, read the routing rules guide. If neither the local endpoint nor the node connection can be established, continue with connection troubleshooting. Verify the endpoint and app settings separately before changing DNS, routing, or node options so you can tell which change actually fixed the problem.

v2rayN Download Center