Use rule mode day to day; switch temporarily for troubleshooting

If you have a working subscription and want local services to connect directly while routing selected sites through a proxy, start with rule mode. Global mode is useful for briefly testing a proxy exit; direct mode helps check your local network. These modes change how traffic is handled after it reaches the Clash core. They are not different nodes or speed settings.

Clash clients, including those built on the Clash Meta (now mihomo) core, usually label these options Rule, Global, and Direct. The exact menu location varies by client and version, but the underlying configuration values are typically rule, global, and direct.

ModeHow traffic exitsTypical useKeep in mind
RuleMatches traffic against rules in orderEveryday browsing; routing by domain or appBehavior depends on the active configuration
GlobalUses the current selection in the GLOBAL groupQuickly check whether routing rules are causing an issueVerify what GLOBAL is actually set to
DirectConnects to the destination through your local networkCheck your local connection or temporarily bypass the proxyDoes not mean the client or TUN is turned off

How traffic flows in each mode

Rule mode: rules determine the route; the client does not automatically guess a site's location

App request
  → Enters via system proxy or TUN
  → Clash / mihomo
  → Checks rules in order
      → Matches DIRECT: local network → destination
      → Matches a proxy group: selected node → destination
      → Matches REJECT: connection denied
      → Reaches MATCH: handled by the fallback policy

Rules are checked from top to bottom, and usually the first match determines how the connection is handled. The target can be a built-in policy such as DIRECT or REJECT, or a policy group defined in the configuration. Rule mode does not come with a fixed list that sends domestic traffic direct and international traffic through a proxy. The outcome depends on the rules in your subscription and whether the rule sets loaded successfully.

For example, an internal company domain might be expected to connect directly but get sent to a proxy group by a fallback rule, causing access to fail. Switching nodes may not help. Check the matched rule in the connection details first, then consider adding a more specific direct rule. If you use a company VPN, also make sure another traffic-capture method is not overriding the route.

Global mode: bypasses normal rule-based routing and uses the GLOBAL selection

App request received by the core
  → GLOBAL policy group
  → Currently selected node or policy
  → Destination

Global mode generally bypasses the regular rules list and uses the built-in GLOBAL policy group instead. It answers a specific question: can the same destination be reached when you explicitly choose a proxy exit? After switching, open the Proxies page, expand GLOBAL, and confirm that the intended node or policy group is selected.

Global mode does not guarantee that traffic goes through a remote node.If GLOBAL is set to DIRECT, or its selected child policy ultimately routes directly, the connection still goes out directly. It also cannot capture traffic from apps that never reached the core.

Direct mode: keeps traffic capture active but bypasses remote proxy nodes

App request received by the core
  → DIRECT
  → Local network
  → Destination

In direct mode, connections that reach the core use your local network for their exit. The client may still run a local proxy port, DNS service, or TUN interface, so this is not the same as returning to the network state you had before launching the client. To compare with a setup that bypasses the client entirely, also disable the system proxy and TUN, and check each app's own proxy settings.

Proxy modes, system proxy, and TUN: what's the difference?

The system proxy and TUN determine how traffic gets in; Rule, Global, and Direct determine what happens after it gets in. These are two separate settings, and it's easy to confuse them. You can use rule mode with TUN enabled; you do not need to switch to global mode just because TUN is on.

  • System proxy: Sends requests to the local proxy port from apps that honor the system proxy settings. Some games, command-line tools, and apps with their own network stack may ignore them.
  • TUN mode: Captures traffic through a virtual network interface and related routes. It usually covers more traffic than the system proxy, but exclusions, permissions, and platform-specific behavior can still limit what it captures.
  • Proxy mode: Chooses rule-based routing, the GLOBAL policy, or a direct connection for traffic that has reached the core.

For example, mixed-port: 7890 in a configuration means the local mixed proxy listens on port 7890; it does not mean global mode is enabled. You can point a browser's manual proxy setting to 127.0.0.1:7890, but use the port shown in your client. The example is not a universal default for every installation.

Switch modes in the client and verify the result

Desktop clients usually put the mode selector on the home screen, the Proxies page, or in the tray menu. In clients such as Clash Verge Rev, look for Proxy Mode on the main screen and choose Rule, Global, or Direct. Some versions also offer these options from the tray icon menu. Labels and locations may vary; look for the three mode options, not a switch that merely looks similar.

  1. Note the current settings: Record the current mode and node, and whether the system proxy and TUN are enabled. Don't note only the node name.
  2. Switch to global: Select Global, open Proxies, expand GLOBAL, and choose a node you know is working.
  3. Make a fresh request: Reopen the destination, then look for its domain under Connections. If needed, close only that destination's existing connection before refreshing.
  4. Check the route: The connection details should show the selected node or policy chain. Depending on the interface, you may see GLOBAL, a node name, or the full chain. Don't rely on a highlighted button alone.
  5. Switch back to rule mode: When testing is done, select Rule, revisit the same destination, and compare the matched rule and final policy.

Existing TCP connections, browser connection pools, and long-running downloads may keep using their original connections. Switching modes does not immediately rebuild every existing session. To avoid misleading results, reopen the destination first. You don't need to clear every connection right away, which could interrupt calls or file transfers.

The mode field in a configuration file

# Configuration snippet: use rule mode day to day
mode: rule

# Example local mixed proxy port; use your actual setting
mixed-port: 7890

To use global or direct mode, set mode to global or direct, respectively. Do not define multiple top-level mode keys in the same YAML file. A graphical client may save your runtime selection or override the subscription value through an override setting. If the mode changes after reloading the configuration, check the client's saved settings rather than repeatedly editing the subscription itself.

Rule mode fails but global works? Check these in order

This is a common symptom, but it does not by itself mean that rule mode is broken. Global testing may use a different node or bypass an incorrect direct rule. The results are meaningful only if you keep the test conditions the same.

First, use the same node in both modes

In rule mode, find the proxy group matched by the destination and select a node manually. In global mode, set GLOBAL to that same node. Avoid automatic selection groups during testing; otherwise, you are comparing both the modes and the routes.

Then check the matched rule and fallback policy

  • The destination matches DIRECT, but your local network cannot reach it: Look for an overly broad direct domain or IP rule.
  • The destination matches REJECT: Check whether a blocking rule is catching traffic by mistake, especially for login, verification, or static asset domains.
  • The destination falls through to MATCH: Check that the fallback target is what you expect and that the relevant rule sets loaded successfully.
  • The destination matches the right proxy group but still fails: Check which policy the group actually selected. A group name containing “proxy” does not prove that traffic is going through a proxy.

Custom rules must refer to an existing policy group using its exact name. More specific rules usually need to go before broader rules that would match first, and before the fallback MATCH rule. Subscription updates may overwrite manual edits. For long-term changes, use the client's rule override or merge feature, and read its documentation before saving.

Check DNS last

Switching to global mode usually does not replace your DNS configuration. DNS resolution failures, unreachable upstream servers, and fake-IP compatibility issues can affect multiple modes. Check the logs for resolution timeouts first, then verify that the DNS upstream is reachable. Don't treat Global as a DNS fix, and don't change several DNS fields at once.

Run a repeatable comparison with three destinations

Choose a site that should work directly, a destination that needs a specific proxy exit, and a LAN service such as your router's admin page. Use the gateway address for your own network; don't assume every device uses the same address. Give each mode about 30 seconds to observe new connections. Treat that as an observation window, not a performance benchmark.

TestWhere to checkWhat to record
Direct-access siteConnection detailsWhether rule mode matched the expected direct policy
Proxied destinationConnection details and Proxies pageWhether Rule and Global used the same node
LAN serviceBrowser and connection listWhether traffic was incorrectly sent through a proxy or never reached the core

If a LAN request is excluded by routing and never reaches the core, it may still connect directly in global mode. That's traffic-capture behavior, not global mode failing. Conversely, if a LAN request reaches the core and global mode sends it to a remote node, the service may become unreachable. After troubleshooting, switch back to rule mode and check the LAN direct rules or routing exclusions.

Node latency test results show how a particular probe responds; they do not prove that a site's login, video, or file downloads will work. Judge the result by the actual request, connection route, and error logs together.

Common questions and everyday setup tips

Is global mode always faster?

No. Sending a service that should connect directly through a remote node can add extra routing and latency, and may use more subscription data. Global mode is useful for simplifying exit selection and troubleshooting, not for making every app faster. Rule mode performance depends on the quality of the rules, DNS resolution, and the selected route.

Can direct mode stop subscription data usage?

When ordinary connections that reach the core use direct mode, they are not forwarded through the selected remote proxy node. However, the client may still run node health checks, update subscriptions, or perform other background tasks, so this does not guarantee that all background traffic stops. To pause those activities, check automatic testing, update tasks, and whether the client is running.

Does global mode on a phone route every app through a node?

No. Mobile clients use the platform's VPN or network extension to capture traffic, and app exclusions, route exclusions, or platform limits may still apply. Confirm that the target app is being captured, then check the actual GLOBAL selection. A VPN icon in the status bar does not tell you where every connection is routed.

Before continuing, see the Getting Started guide to confirm your subscription is enabled, then check the configuration reference for rule and policy group references. If no mode can reach the destination, check traffic capture, node availability, and DNS before switching modes repeatedly.