1. The Short Answer: What Each Mode Actually Does
Open any Clash client and you'll see three mode buttons side by side on the main screen: Rule, Global, and Direct. Here's the one thing to understand: mode decides who handles an incoming connection — it has nothing to do with node speed or how your subscription is set up.
Let's break down the logic behind each mode before walking through examples:
| Mode | How connections are handled | Config value | Recommended use |
|---|---|---|---|
| Rule | Checks the destination against the rule list line by line, then routes it accordingly | mode: rule | rule |
| Your everyday default | Global | mode: global | Skips the rule list entirely — everything goes through whatever node is selected in the GLOBAL group |
| global | Quick node testing | mode: direct | Direct |
2. Rule Mode: Checked Against a List, Top to Bottom
How it works first: in Rule mode, every incoming connection is checked against the rule table from the top line down, using the destination address (domain or IP). Whichever line matches first decides how it's handled — that could be a proxy group, or it could be DIRECT or REJECT. If nothing matches all the way to the last line, it falls through to the catch-all rule MATCH (written as FINAL in older Clash versions).
direct
mode: rule
rules:
- DOMAIN-SUFFIX,example-ads.com,REJECT
Troubleshooting comparisons
- GEOIP,CN,DIRECT
- MATCH,Proxy
Walking through it line by line: a request to example-ads.com gets blocked on the first line; a request to google.com matches the second line and goes to the "Proxy" group; a request to a domestic site matches the third-line GEOIP rule and goes out directly from the local machine; anything left over goes through the proxy via MATCH. Order is judgment order — the first match wins, and lines after it are never evaluated.
- DOMAIN-SUFFIX,google.com,Proxy Group
- MATCH,Proxy Group
How it works: once you switch to Global mode, the rule table is skipped entirely, and every connection is handed to the built-in group called GLOBAL. All traffic follows whichever node is currently selected in that group. To switch nodes, go to the proxies page, find the GLOBAL group, and pick a node from the list.
As for why this matters: Rule mode is the everyday recommendation because it locks in a fixed answer to "what goes through a node and what doesn't." Sites inside mainland China go direct — fast, and no node bandwidth wasted. Sites outside mainland China go through a node. Each stays in its own lane. This rule list ships with your subscription or config file, so as a beginner you don't need to write any of it yourself — just pick the right mode.
3. Global Mode: Every Connection Goes Through a Node
In Global mode, even domestic sites get routed through a node — higher latency, slower speeds, and wasted node bandwidth for no reason. Think of it as the "test group" in an experiment, not your everyday setting. Switch back to Rule mode once you're done testing.
4. Direct Mode: The Client Is Running, But Hands-Off
Switch back when you're done
In Global mode, even sites inside mainland China get routed through a node — higher latency, slower speeds, and wasted node bandwidth for no reason. Think of it as your "test group," not your daily driver. Switch back to Rule mode once you're done testing a node.
One point that trips people up: Direct mode is not the same as turning off the system proxy. The system proxy switch is still on, so traffic still gets routed into the client first — it's just that the client passes it straight through unchanged. To fully return to a no-proxy state, turn off the system proxy switch, or quit the client entirely. For where the system proxy switch lives and the full subscription import walkthrough, see the setup guide.
5. Where to Switch: UI, Config File, or API
There are three ways to flip this same switch — pick whichever's most convenient:
- GUIClash Verge Rev has Rule / Global / Direct buttons at the top of the Proxies page, and Clash for Windows has the same at the top of its Proxies tab. Click one and it takes effect instantly — no restart needed.
- Config fileThe
mode: ruleline in your config sets the starting mode on launch, and it accepts rule, global, or direct. Manually switching in the UI overrides it right away; most clients also remember your last choice and restore it automatically on the next launch. - External controllerSwitch via the RESTful API: send a PATCH request to
/configswith a body of{"mode":"global"}. The mode buttons in any dashboard are built on top of this same call.
6. Match Your Scenario to a Mode
Here's a quick cheat sheet for common scenarios:
- Everyday browsing, streaming, research: Rule mode — leave it running, no need to touch it.
- Testing a new node's speed or checking it works: switch to Global temporarily, then switch back to Rule when done.
- Overseas games or apps that need everything proxied: Global mode; if an app ignores the system proxy entirely, consider turning on TUN mode to take over all system traffic.
- Everyday browsing, streaming, research: Rule mode — leave it running, no need to touch it.
- Testing a new node's speed or checking it works: switch to Global temporarily, then switch back to Rule when done.
7. FAQ
If I switch modes, do connections already in progress change too?
No. The mode only affects newly established connections — sessions already connected keep running on their original path. You'll only see the new mode take effect after refreshing the page or restarting the app.
7. FAQ
If I switch modes, do connections already in progress change too?
In Rule mode, a certain site still goes through the proxy — can I fix that?
Domestic sites got slower in Global mode — is my node broken?
Does the mode setting travel with my subscription? Do I need to reset it on a new device?
In Rule mode, a certain site still goes through a proxy — can I change that?