Shadowrocket Global Routing: How to Choose Config, Proxy, or Direct

Config routes traffic by rules, Proxy sends all handled traffic through a proxy, and Direct connects without a proxy. Learn how each mode works and when to use it for everyday routing or troubleshooting.

At a glance

Already have a provider and subscription, but unsure which Global Routing option to use? Start by separating connection status from request routing. This guide compares the three modes, walks through rule examples and controlled tests, and explains when Config makes sense for everyday use and how Proxy or Direct can help isolate problems. It also clarifies the distinct roles of Scene, On Demand, and subscription updates.

1. Check the connection before choosing Global Routing

Shadowrocket is a paid client for Apple platforms, available exclusively on the App Store. Its App Store product page lists app ID 932747118 and developer Shadow Launch Technology Limited. The app is a one-time purchase; check the App Store page for system requirements. The app purchase does not include a connection service. The steps below assume you already have a provider and subscription.

Global Routing determines how Shadowrocket routes requests it handles. It is not the connection switch or a server selector. Changing the mode to Proxy without enabling the connection does not tell you whether the proxy is working. Likewise, seeing the system VPN indicator does not show whether a particular website is using a proxy or connecting directly.

  1. In Home, check that a usable server entry is available and confirm which one is selected. If you use a policy group, check its selected option too.
  2. In Config, confirm which configuration file is currently active. Importing a file does not automatically make it the active configuration.
  3. Return to Home → Global Routing, select Config, Proxy, or Direct, then enable or confirm the connection.
  4. Start a new web request and check its destination and policy in the request log. Existing connections may continue using their previous route, so checking an already-open page may not reflect the change.

2. Config, Proxy, and Direct: differences and when to use each

These modes change routing decisions; they do not fill in server details or fix an expired subscription. Config is a sensible everyday default only when the rules and policy targets in the active configuration are correct. If you are unsure about the configuration, check its rules first—Config alone does not guarantee that a connection will work.

Config: Route according to the active configuration

Recommended

Rules are evaluated in order to determine the policy. A match can use DIRECT, PROXY, REJECT, or a policy group defined in the configuration. If no earlier rule matches, FINAL typically handles the request; this does not mean that unmatched traffic always connects directly.

Best for: Everyday use when you have verified the rules and need different destinations handled differently.

Proxy: Use the proxy route for all handled requests

Ordinary requests within Shadowrocket’s handling scope use the proxy route, rather than relying on individual routing rules to choose between direct and proxy connections. Switching to Proxy will not help if the server is unavailable, authentication fails, or protocol settings do not match.

Best for: Briefly testing the proxy route to see whether a problem is related to rule-based routing.

Direct: Use the direct route for all handled requests

Requests within Shadowrocket’s handling scope connect directly, without a remote proxy. This does not turn off all network handling, nor is it the same as the system’s normal network environment with the connection disabled.

Best for: Briefly testing direct connectivity and checking whether the proxy route is causing a problem.

Do not choose a mode based on lower latency alone. A latency test reflects only its specific test conditions. A webpage may also request multiple domains, each involving DNS, TCP, TLS, and content loading. Results from Config, where some requests go direct and others through a proxy, are not directly comparable to results from Proxy, where all handled requests use the proxy, based on a single number.

3. How Config matches rules: order, policies, and FINAL

Config evaluates rules from top to bottom. With the usual first-match behavior, the first matching rule determines the policy for a request. A broad rule placed near the top can prevent a more specific rule below it from being reached. So adding a rule does not guarantee that a request will match it.

The following is an illustrative [Rule] snippet, not a complete configuration, and contains no server details. example.com is a sample domain; PROXY represents a proxy policy, and DIRECT represents a direct policy. Before editing, back up your current configuration and make sure its policy names and references are valid.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
Rule keywordWhat it matchesWhat to check
DOMAIN-SUFFIXThe domain itself and its subdomainsexample.com can match www.example.com, but not every domain that happens to contain that string.
IP-CIDRA range of destination IPv4 addresses192.168.0.0/16 is a private address range; no-resolve means the rule does not trigger an additional domain lookup.
GEOIPThe geographic region associated with an IP addressThe result depends on the database in use and the destination IP address. A domain suffix alone is not enough to determine it.
FINALRequests not matched by any preceding ruleThis example uses PROXY; changing it to DIRECT also changes the route for unmatched requests.

If a page opens in Proxy but fails in Config, first check whether the request was assigned DIRECT, REJECT, or another unavailable policy group. Do not immediately add a broader rule. Find the domain that actually failed, then inspect the rules above it and FINAL. This helps avoid fixing one request while changing the route for many unrelated requests.

4. Troubleshoot with the same destination: change one variable at a time

Keep the Wi-Fi or cellular network, server, and destination the same throughout the test. Before starting, note the current mode and configuration file name; restore them afterward. If you update a subscription, switch servers, change DNS, and change routing modes all at once, you will not know which step restored access.

Two comparisons: rule-based routing and direct routing

Compare Config and Proxy
  • Start a new request in Config and note the policy it actually matches.
  • Keep the server unchanged and switch Global Routing to Proxy.
  • Start a new request. If only Proxy works, check rule order and the selected policy group first.
Compare Proxy and Direct
  • Choose a destination that should already be reachable directly on your current network as a baseline.
  • Start a new request in each of Proxy and Direct, and note whether it succeeds or times out.
  • If Direct works but Proxy fails, check server connectivity, authentication, transport, and the DNS route.

Comparing modes helps narrow down the issue, but one successful test does not prove its cause. Restore your usual configuration when testing is complete, then verify it again.

A failure in Direct does not mean the proxy server is broken—the request did not use a remote proxy. Conversely, a failure in Proxy does not prove the rules are wrong, since ordinary routing rules do not determine the route in this comparison. If both modes fail, check the local network, destination service, and name resolution first, then review the specific connection settings.

5. Scene, On Demand, and subscription updates are separate controls

Global Routing also includes Scene. It applies routing arrangements based on configured scene conditions, which can be useful when those arrangements should change with the network environment. Scene is not another proxy protocol. First use Config, Proxy, and Direct to establish a controlled test baseline; consider Scene afterward so automatic changes do not affect the test conditions in the background.

4 options
Global Routing:Config / Proxy / Direct / Scene
2 routing layers
Settings → On Demand: Check on-demand connection conditions
1 fallback
Example: FINAL handles requests not matched by earlier rules

Settings → On Demand manages the conditions for establishing a connection on demand. Global Routing, by contrast, determines how requests are routed once connected. Before comparing modes manually, check On Demand so existing conditions do not change the connection state. Restore the relevant settings to their original state after troubleshooting.

Subscription updates refresh server entries; switching to Proxy does not trigger an update or confirm that your Config rules are current. If an update returns nothing or fails, check the link, the status of the existing subscription, and the network used during the update separately. Repeatedly switching Global Routing is not a substitute for troubleshooting subscription updates.

  1. Check the status of your existing subscription, then use the app’s update action to refresh the server list.
  2. After the update, return to Home and confirm that the previously selected entry is still there and that the current selection is correct.
  3. Then check the active file and policy references in Config. Updating the server list and updating the rules file are separate checks.
  4. Finally, restore your usual mode and test one destination expected to connect directly and one expected to use a proxy.

6. FAQ: How to verify the result after switching modes

Does choosing Config mean direct connections in mainland China and proxy connections everywhere else?

Not necessarily. In Config, check the rules in the active file, especially GEOIP and FINAL. Direct connections in mainland China require corresponding rules and supporting data. If FINAL is DIRECT, unmatched requests still connect directly; the mode name alone does not tell you what will happen.

If Proxy opens a page but Config does not, should I keep using Proxy?

You can keep it temporarily for necessary testing, but use the request log to identify the policy assigned to the failed request in Config. Then return to Config and check the corresponding rule or policy group. After making a correction, switch back to Config and verify it with a new request. Do not change the route for all requests long-term just to fix one domain.

Is Direct the same as turning off the connection switch in Home?

No. Direct is a routing policy within an active connection, and Shadowrocket may still handle requests. Turning off the connection stops using that handling path. To test the system’s normal network, note the Settings → On Demand status first so on-demand connections do not change the test conditions.

If a request still times out after switching to Proxy, should I change the port?

First check the server address, port, authentication, and protocol settings provided by your existing provider. The commonly used HTTPS port 443 for a website does not mean the proxy server must also use port 443. Keep the existing settings while checking connectivity, and change them only when you have confirmed a specific discrepancy. Guessing ports is not a reliable way to diagnose the problem.

Results are inconsistent after switching to Scene. How should I check?

First note the current network and scene conditions, then temporarily fix the mode to Config, Proxy, or Direct and test the same destination again. If a fixed mode works, review the Scene conditions and related settings. If switching between Wi-Fi and cellular triggers different scenes, record and test them separately rather than treating them as one test.

A reliable everyday workflow is to confirm the connection is on, check the active configuration, inspect the policy actually used, and then verify that the destination behaves as expected. Global Routing determines how routing decisions are made, server settings establish the remote connection, and subscriptions maintain the source of server entries. Checking these separately makes it easier to reach repeatable conclusions than changing several settings at once.

Verify the official App Store listing