System Proxy vs. Global and Bypass China Modes: v2rayN Routing Guide

Learn how system proxy settings differ from routing modes, compare Global, Bypass China, and Direct traffic, and choose the right setup for everyday use.

At a glance

The system proxy determines whether apps that support it send requests to v2rayN. Global, Bypass China, and Direct determine how requests are routed after they reach the core. This guide covers the entry point, routing, and verification, for desktop users who have imported a server but aren't sure which proxy mode to use. Test the entry point in a browser, compare routing results, then troubleshoot apps that don't follow the system proxy.

1. System Proxy and Routing Modes: Two Separate Settings

In v2rayN, selecting a server only chooses an available proxy outbound; it doesn't mean every app is using it. The usual path is: an app reads the proxy settings and sends a request to a local listening port, then the core selects a proxy, direct, or blocked route according to its rules. If any step fails, you may see a server respond to latency tests while webpages still won't load.

The desktop interface usually provides System Proxy and Routing options in the status bar, and the Windows tray menu may also include system proxy settings. Labels and locations can vary between builds, so look for what each setting does rather than a specific icon. Common Windows options include Set system proxy, Clear system proxy, and Do not change system proxy.

2. Global, Bypass China, and Direct: Three Routing Strategies

Routing presets can be edited, and their behavior varies with the client build, core, and rule files. The comparisons below describe common strategies; presets with the same name aren't guaranteed to match rule for rule. If the results differ, inspect the selected rules and the outbound shown in the logs.

Bypass China: Route Traffic by Rules

Recommended

Typically, requests matching mainland China domain or IP lists use the direct outbound, while other requests use the proxy outbound. This is a practical starting point for everyday use, but classification depends on rule data, domain detection, and DNS settings. Confirm the matched rules and outbound route in the logs.

Best for: Using services in mainland China and abroad while being willing to fine-tune rules based on logs.

Global: Prefer the Proxy Outbound

Sends covered requests through the proxy outbound, making it easier to check whether a problem comes from split-routing rules. Some configurations still have exceptions, such as direct access to local networks. Intranet services, corporate sign-ins, or region-sensitive services may also need their own rules.

Best for: Temporarily checking a server's exit route, or proxying a specific set of apps.

Direct: Connect Through Your Local Network

Requests that reach the core connect to their destinations through the direct outbound, without using the selected remote proxy server. Traffic may still be processed by the local core, so this is not the same as clearing the system proxy, and it doesn't necessarily restore DNS settings.

Best for: Checking whether destinations are reachable over your local network, or temporarily ruling out the remote proxy path.

How to Compare: Keep the Entry Point Fixed and Change Only the Route

Use the same server, browser, and test address, then compare Global with Bypass China. If only the latter fails, check rule matches and DNS first; don't immediately switch protocols or reimport the subscription.

“China” in Bypass China refers to a rule category, not physical distance. Websites in mainland China that use overseas CDNs, and services with multiple regional endpoints, may match rules in unexpected ways. Rules are usually evaluated in order, so check the active core configuration for match conditions and the default outbound. A broad rule near the top can override more specific rules below it.

3. v2rayN Setup Order: Server, Port, System Proxy, Routing

For an initial test, use only the system proxy entry point, temporarily disable TUN, and turn off any separate proxy settings in browser extensions. This avoids stacking multiple entry points, which can make the browser's actual traffic path differ from what the status bar suggests. If you already have a working setup, note the original settings before making changes.

  1. Confirm the active server. Select the server you want in the server list, then choose Set as active server from the right-click menu. Check the logs to confirm that the core starts successfully; a successful latency test doesn't guarantee webpages will load.
  2. Check the local listening port. Go to Settings → Parameters and look for fields related to local listeners, SOCKS, or HTTP ports. Some interfaces use a single mixed port; refer to the actual configuration and startup logs.
  3. Enable the system proxy. Under System Proxy, select Set system proxy. On Windows, check the address and port under Settings → Network & Internet → Proxy. On macOS, go to System Settings → Network → your current network service → Details → Proxies.
  4. Test Global first. Under Routing, select the preset that uses Global routing. Open a known reachable HTTPS page and check the logs for the corresponding request. Don't change DNS, protocol, and transport settings at the same time.
  5. Switch to everyday split routing. Select the Bypass China preset, then revisit services in mainland China and abroad. Start new connections during testing so the browser doesn't reuse existing connections and mask routing changes.
10808
Replace the SOCKS port in the command below with the actual listening port
10809
Replace the HTTP port in the command below with the actual listening port

These two ports are examples, not promised defaults for the current version, and you don't necessarily need two separate listeners. If the startup log shows a single mixed port that supports both HTTP and SOCKS, use that port in both commands. Keep the address at 127.0.0.1 to limit testing to your computer; don't expose access to your local network just to troubleshoot a webpage.

# Run each command in a terminal with curl; on Windows, use curl.exe.
# First, replace the port with the value v2rayN is actually listening on.
curl --proxy http://127.0.0.1:10809 --connect-timeout 10 --head https://example.com/
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --head https://example.com/

socks5h means the destination domain is resolved by the SOCKS proxy, rather than by the local machine before the request is sent. These commands specify the proxy entry point directly, so they don't depend on the system proxy setting. Use them to check whether the local entry point can handle requests. A successful result also confirms that the remote proxy path works only if the current routing mode selects the proxy outbound.

4. Everyday Split Routing and Temporary Troubleshooting: Two Setups

The recommendation to use Bypass China assumes that the client is receiving app traffic, the rule data is available, and the server connects successfully. If the entry point isn't working, changing the route won't fix how the app connects. Keep separate notes for everyday settings and troubleshooting to avoid forgetting to restore your setup afterward.

Setup Plan: Separate Everyday Use from Troubleshooting

Everyday browsing and work
  • Set System Proxy to Set system proxy.
  • Start with Bypass China for routing.
  • Set intranet domains and local network addresses to Direct as needed.
  • Configure a separate proxy entry point only for apps that need one.
Troubleshooting connection failures
  • Keep the same active server and local listening port.
  • Disable TUN and remove any separate browser proxy settings.
  • Test Global first, then Bypass China, and finally Direct.
  • Record the destination domain, error message, and corresponding outbound.

Restore your everyday routing after testing. Change only one setting per test so you can identify which step caused the result.

TUN is another way to capture traffic, not a “more complete Global routing mode.” It receives IP traffic that meets the capture conditions through a virtual network interface, then routing rules still determine the outbound. Enabling it may involve administrator privileges, system routes, DNS interception, and UDP support. Its coverage depends on the configuration and doesn't guarantee that all app traffic will be captured.

5. Switching Modes Has No Effect: Check the Entry Point and Outbound

When troubleshooting, check the log entry for a new request rather than relying only on the tray icon or connectivity test results. Seeing a destination in the log doesn't prove it used the remote server; check the outbound tag and connection errors too. Remove subscription URLs, credentials, and other sensitive settings before sharing logs.

Why does only my browser work when Global is selected?

Global only changes routing after traffic reaches the core. Check the target app's network or proxy settings to see whether it uses the system proxy. If it requires manual configuration, enter the actual local address and port for the relevant protocol in v2rayN. If the app has no proxy settings, consider whether TUN is needed.

Why does my download app still use the proxy server after I clear the system proxy?

Check the download app's own proxy settings, proxy environment variables in your terminal, and whether TUN is still running. Clearing the system proxy doesn't remove these separate entry points. Disable or change the relevant entry point, stop the existing task, and start a new connection.

Global works, but Bypass China doesn't. What should I check?

Keep the same server, note the domain that fails, and check which outbound it matches in split-routing mode. If it uses Direct, check the domain and IP rules. If it still uses the proxy, compare DNS results and connection errors. For geosite or geoip rules, confirm that the corresponding data has loaded.

My browser loses internet access after I exit v2rayN. What should I do?

First, check whether the system still points to a local proxy port that is no longer listening. Reopen the client and select Clear system proxy, or disable any leftover manual proxy in your system's proxy settings. If you enabled TUN, also make sure the virtual interface, routes, and DNS settings have been restored.

The local port is in use. Will changing the routing mode help?

No. A port conflict can prevent the inbound listener from starting properly. Close any duplicate client instances, or change the listening port under Settings → Parameters. After restarting the core, update the system proxy and any manually configured app proxies so they don't keep connecting to the old port.

6. Subscriptions, Protocols, and DNS: Separate Them from Proxy Modes

Subscriptions mainly provide server entries and related connection parameters. A successful subscription update doesn't mean the system proxy is enabled. Switching between VMess, VLESS, Trojan, or Shadowsocks servers won't fix routing rules either. These protocols describe how the proxy connection works, not which system traffic is captured.

Final Check: Confirm the Request Arrived Before Checking Where It Went

Keep a test address you can reproduce. If the request doesn't appear in the logs, check the entry point. If it arrived but used the wrong outbound, check routing. If the outbound is correct but the request still fails, check DNS, the server, and the destination service. Following this order makes it easier to find the cause than repeatedly switching between Global and Bypass China.

Download v2rayNChoose your operating system and package format