The system proxy determines whether apps that honor the setting send requests to v2rayN. Global and Bypass Mainland China determine how requests already handled by the core are routed. Using Windows as the example, this guide explains how the tray menu, routing presets, local ports, and command-line tests fit together—so you can tell whether a request never reached the proxy or was routed directly by a rule.
Start with two layers: app access and core routing
v2rayN is a desktop client that manages connection profiles, starts the proxy core, and changes system proxy settings. App requests must first reach the core’s local listener before routing rules can be applied. Selecting a node and running the core does not mean every app is using the proxy.
- App layer: Browsers and developer tools decide whether to use the system proxy. They may instead use their own proxy settings or environment variables, or connect directly.
- Access layer: Apps that use the system proxy send eligible requests to the configured local address and port, such as
127.0.0.1:10808. - Routing layer: The core matches rules against details such as domain, IP address, and port, then chooses a proxy, direct, or blocked route.
- Connection layer: The proxy route connects to the remote server using the active node’s protocol and transport settings. VMess and VLESS belong to this connection configuration layer, not to system proxy modes.
That’s why “Set system proxy + Bypass Mainland China” is a valid combination: the first lets apps connect to the core, while the second lets some requests go out directly. “Clear system proxy + Global” is also possible, but a regular browser may not send requests to the core, leaving the routing preset nothing to handle.
Set or clear the system proxy: where to click and what changes
In the Windows notification area, right-click the v2rayN icon and open the “System Proxy” menu. Common versions offer options such as “Automatically configure system proxy,” “Clear system proxy,” and “Do not change system proxy.” In this guide, “set the system proxy” refers mainly to choosing “Automatically configure system proxy.” The exact labels may vary between versions.
| Action | What changes | What it does not replace |
|---|---|---|
| Automatically configure system proxy | Points the current Windows user’s system proxy to the client’s local listener | Does not configure app-specific proxies or switch routing to Global |
| Clear system proxy | Removes the system proxy settings managed by the client, so apps that follow those settings return to their corresponding direct connection behavior | Does not clear terminal variables, browser extension settings, or in-app proxy settings |
| Do not change system proxy | Leaves the current system proxy settings unchanged | Does not mean the proxy is off; existing system settings may remain in place |
After selecting an option, check the address and port under Windows “Settings” → “Network & internet” → “Proxy.” If your browser has a proxy management extension, also check whether it uses system settings, a fixed proxy, or custom rules. When an extension overrides system settings, changing v2rayN’s system proxy menu may not produce the expected result.
- Start the core and make sure there are no port-in-use errors before setting the system proxy. This prevents apps from being pointed to a port with no listener.
- Before temporarily exiting the client, clear the system proxy. If a page stops loading after an unexpected exit, check whether Windows still has a local proxy address configured.
- If your workplace network already uses a proxy or automatic configuration script, note the current values before making changes. Clearing the proxy does not restore every existing network policy.
Global vs. Bypass Mainland China: choose a route based on the request
Choose a preset from the “Routing” dropdown at the bottom of the v2rayN main window. To inspect its rules, open “Settings” → “Routing settings.” Built-in preset names may include numbers, version prefixes, or different wording. Check the relevant options containing “Global” or “Bypass Mainland China,” and rely on their actual rules.
Bypass Mainland China: a practical everyday starting point
RecommendedCommon rule sets send mainland China domains or IP addresses through a direct connection and route other requests through the proxy. Many also include direct rules for local networks, but do not assume this from the preset name alone—check the rules before using it.
Best for: everyday browsing that combines local services, sites in mainland China, and sites outside China.
Global: simplify the routing variables
Routes requests that have reached the core through the proxy wherever possible, making it useful for short comparison tests. Existing higher-priority rules may still redirect some requests, and Global cannot fix a broken node or incorrect authentication details.
Best for: checking for routing mismatches, verifying the remote exit, and reproducing a connection issue with a particular site.
Bypass Mainland China does not route traffic based on a page’s language. A Chinese-language site may be hosted outside China, while an international service may use a CDN in mainland China. Rules use the request’s domain, resolved IP address, and rule-set contents—not the page text. Accessing a site by domain name versus connecting to its IP directly may also trigger different matching paths.
Two common setups: everyday browsing and development troubleshooting
There’s no need to use Global as your permanent default. For everyday use, avoid unnecessary detours; for troubleshooting, keep test conditions consistent. Both setups below assume the node is working, the core is running normally, and no other network interception mechanism is enabled.
Recommended setups: combine app access and routing to suit the task
Everyday browsing
- Set “System Proxy” to “Automatically configure system proxy.”
- Choose a “Bypass Mainland China” preset whose rules you’ve checked.
- Set browser proxy extensions to use system settings, avoiding duplicate overrides.
- Add direct rules for local devices and internal domains as needed.
Development troubleshooting
- To troubleshoot a single command, specify the local proxy port explicitly.
- Switch to “Global” briefly and compare the same destination with Bypass Mainland China.
- Keep bypass rules for localhost, loopback addresses, and any required internal services.
- After recording the results, restore your everyday preset to avoid affecting later tests.
Change one variable at a time: keep the node and access method fixed, then compare routing. Don’t switch nodes, DNS, routing, and browser extensions all at once.
For example, if a code repository in mainland China works but an API outside China times out, keep the node unchanged and switch routing from Bypass Mainland China to Global. If Global works but the original preset does not, check whether a direct rule matches the destination domain. If both modes fail, investigate node connectivity, server-side restrictions, or the app’s own settings instead of repeatedly switching the same preset.
- Can’t open a local network dashboard: Check whether the destination is a private IP or internal domain, and confirm that a matching direct rule exists.
- A service in mainland China flags a sign-in from another location: First check whether the request is using the proxy exit, then adjust the rule for that specific service.
- Only one app is misbehaving: Check that app’s proxy settings first instead of resetting the entire subscription and routing setup.
Test the local port: check from a browser and the command line
Open “Settings” → “Parameter settings” and check the local listener ports. Confirm the active values in the main window or startup log. The example below uses 10808 and assumes that port accepts both HTTP and SOCKS requests; it is not a universal default for every version. If your version uses separate ports for the two protocols, use the appropriate port for each.
In Windows PowerShell, use curl.exe to test an explicit proxy and avoid parameter parsing issues caused by command aliases. The first command uses an HTTP proxy, the second uses SOCKS and lets the proxy resolve the domain, and the third attempts a direct connection that bypasses curl’s proxy settings. Comparing results for the same destination is more useful for troubleshooting than a single success or failure.
curl.exe --proxy http://127.0.0.1:10808 --max-time 15 -I https://example.com/
curl.exe --proxy socks5h://127.0.0.1:10808 --max-time 15 -I https://example.com/
curl.exe --noproxy "*" --max-time 15 -I https://example.com/
These commands do not depend on whether the system proxy is set, but they are still affected by core routing. Specifying a local proxy does not guarantee that the request will ultimately use the remote node. If TUN is enabled, the third command also cannot prove that traffic completely bypassed the client, since transparent interception may happen outside curl.
- Can’t connect to the local port: Check that the core is running, the listener port is correct, and the logs show no address-in-use error.
- Explicit proxy works, but the browser doesn’t: Check the system proxy address, browser extensions, and the browser’s own proxy settings.
- Browser works, but the terminal doesn’t: Check whether the tool uses the system proxy. If needed, use command-line options or proxy environment variables supported by that tool.
- Local port connects, but the request to the destination fails: Check the matched route, DNS, and remote connection logs. A working local listener does not prove that the node is usable.
An HTTP status from a command only means that this particular request received a response; it does not mean every protocol, site, or app is working. When retesting the affected domain, use the same request method. Some services restrict HEAD requests, so an error returned by -I alone does not prove the proxy is broken.
Common questions: why a mode switch may not work as expected
I selected Global. Why is my terminal still using the same exit?
First, make sure the terminal request reaches the local listener. Test with the --proxy option shown above, then configure the tool’s supported http_proxy, https_proxy, or dedicated proxy option. Whether environment variables take effect depends on the program; Global routing does not set them for you.
Why are some apps still using the node after I clear the system proxy?
Check for a fixed proxy in the app, a browser extension, terminal environment variables, and TUN. Clearing the system proxy only removes the corresponding system-level access settings; it does not disable these separate paths. Try closing and reopening the app to rule out a reused connection.
A site won’t open with Bypass Mainland China. Can I just switch to Global permanently?
Use Global as a comparison test first. If the site only works in Global, check the matching rules for the site and its resource domains. Add proxy routing for the destinations that need it and adjust rule order. This is better than expanding proxy coverage long-term and helps preserve normal access to local networks and services in mainland China.
Will updating a subscription restore the system proxy and routing too?
A regular node subscription mainly updates connection entries; it does not necessarily restore the system proxy, routing preset, or custom rules. After an update, check the active node, the “System Proxy” status, and the “Routing” selection separately. Importing a full custom configuration may also change the core configuration, so check that independently.
Do I need to follow the Windows menu steps on Android?
No. v2rayNG uses the Xray core and typically routes traffic through the Android VPN interface, with per-app proxy and routing settings controlling which traffic is included. v2flyNG uses the V2Fly core. The access mechanism differs from the desktop system proxy, but the troubleshooting order still applies: first confirm that the request reaches the client, then check its route.
Finish by checking these in order: Is the correct node active? Is the local listener available? Is the app sending traffic to it? Which route did the request match? Did the connection to the destination succeed? Record these five checks separately to distinguish system proxy issues from routing-rule and remote connection problems.