Sep 30, 2026 · Getting Started · About 8 min

Shadowrocket Global Routing: Config, Proxy, and Direct Explained

Learn how Shadowrocket’s Config, Proxy, and Direct modes route traffic—and why Config is the usual choice for rule-based routing.

At a glance

For everyday traffic routing by website, choose Config in Shadowrocket, then check the active configuration and the policies referenced by its rules. Proxy is useful for temporarily routing all handled connections through a proxy or comparing results during troubleshooting; Direct provides a direct-connection comparison. This guide assumes you already have your own provider and subscription. It covers where to choose a mode, how rules work, and how to verify results, while clarifying the distinct roles of routing mode, the connection toggle, and On Demand.

Bottom line: Choose Config for rule-based routing

Global Routing determines how Shadowrocket routes connections it handles. Config applies policies according to the active configuration’s rules. Proxy uses a proxy for all handled connections rather than selecting an outbound policy rule by rule. Direct connects to destinations without using a proxy as the outbound route. “All” means connections handled by the app, not necessarily every type of system traffic on the device.

Config

Recommended

Matches rules in the active configuration. Rules can specify DIRECT, REJECT, or a proxy policy defined in the configuration; unmatched traffic is not necessarily sent direct.

Best for: Applying an existing routing configuration to send some websites through a proxy and others direct.

Proxy

All handled connections use a proxy route. Before switching, make sure the selected proxy is available. This mode cannot fix an incorrect address, port, or authentication setting.

Best for: Temporarily routing all handled connections through a proxy or comparing with Config to troubleshoot rules.

Direct

Handled connections go directly to their destinations without using a proxy as the outbound route. This changes routing; it does not turn off Shadowrocket’s connection toggle.

Best for: Checking whether the current network can connect directly to a destination, or temporarily using direct connections.

Config is recommended only when the configuration matches your needs. If FINAL points to a proxy, connections that match no earlier rule will still use a proxy. They go direct only if FINAL points to DIRECT. The mode name alone does not tell you which outbound route a website will use.

Steps: Select and verify the active configuration in Home

First, distinguish Home, Config, and Settings. Home is where you manage the connection and view Global Routing; Config is for managing rule configurations; Settings contains app options, including On Demand. Connection entries in an existing subscription and configuration files containing routing rules are separate items to check.

  1. Open Home and confirm that a usable connection entry is available. If you use your own subscription, import it first. Use the address, port, and authentication details provided by your existing service provider.
  2. Open Config and confirm that the configuration you want to use for routing is selected. Importing a file alone is not enough; make sure it is the active configuration.
  3. Return to Home → Global Routing and select Config. To troubleshoot routing differences, you can temporarily choose Proxy or Direct.
  4. Return to Home, verify the selected proxy, then turn on the connection toggle. The first time you connect, follow Apple’s system prompts to authorize the VPN configuration.
  5. Visit one destination expected to use a proxy and another expected to connect directly. Check the matching result for each new connection rather than just checking whether the connection toggle is on.

If you also see Scene in the list, don’t treat it as another name for Config. Scene provides context-based selections and requires its conditions and associated settings to be checked separately. This comparison uses Config, Proxy, and Direct to avoid adding scene switching as another variable.

How Config works: Rule order and FINAL determine the outcome

Config is not a switch that automatically decides which websites need a proxy. It applies the matching logic in the active configuration: it checks each rule’s match criteria, then uses the policy specified by the matching rule. DOMAIN-SUFFIX matches domain suffixes, IP-CIDR matches address ranges, GEOIP classifies by IP geolocation database, and FINAL provides a fallback when no earlier rule matches.

The following illustrates rule syntax; it is not connection information that can replace a complete configuration. Suppose the active configuration defines a valid proxy policy named PROXY, and only the example domain and its subdomains should use it while all other traffic connects directly. You could use:

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

In this example, both example.com and www.example.com match the first rule. notexample.com does not match just because it contains similar characters. PROXY must resolve to a valid policy in the active configuration; adding the word to a rule without a corresponding outbound route is not enough. For more on rule structure, see Configuration File Guide.

2 rules
Example rules: DOMAIN-SUFFIX and FINAL
1 suffix
example.com: Covers this domain and its subdomains
Fallback
FINAL,DIRECT: Connects directly when no earlier rule matches

Putting FINAL,DIRECT before specific domain rules breaks the intended matching order. Another common misconception is to change FINAL to PROXY and still assume that “Config sends everything else direct.” The mode stays the same, but the fallback policy changes, so unmatched traffic takes a different route.

Troubleshooting: Proxy works, but Config doesn’t

When this happens, keep the network, proxy, and destination the same, and change only Global Routing. That isolates the routing choice instead of changing several variables at once. The comparison below is a reproducible troubleshooting method, not a guarantee that any particular website will be reachable.

Compare two attempts to the same destination

First pass: Proxy
  • In Home, keep the same proxy selected.
  • Go to Home → Global Routing and select Proxy.
  • Retry the request and note whether a connection is established.
  • If it fails, first check proxy connectivity and protocol settings.
Second pass: Config
  • Keep the proxy and network unchanged, and switch to Config.
  • Retry the same request.
  • Check which rule and policy the connection matched.
  • Verify that FINAL and the policies referenced by rules behave as expected.

If Proxy works but Config fails, check the rules and policies first. If both attempts fail, routing rules alone may not be the cause.

After switching modes, check new connections. Browsers and other apps may reuse existing connections, and cached content may still appear on an open page; a single refresh may not reflect the new mode. Close the page and reopen it, then check the connection details in the app. If a page loads resources from multiple domains, distinguish a successful main document from failed requests such as images or sign-in endpoints.

  1. Check the selected proxy first. Don’t switch to a different connection entry while changing modes, or the comparison won’t be meaningful.
  2. Next, check what matched. The actual request may use a different subdomain or a separate domain that the existing DOMAIN-SUFFIX rule does not cover.
  3. Finally, check the outbound route. If the correct rule matched but the request still fails, make sure its policy selects the intended proxy.

If Proxy also fails to connect, check the address, port, authentication details, and any protocol-specific settings for the existing connection. For example, if the configuration requires port 443, it must match the port on which the remote service is listening. The port number alone does not prove that TLS is configured correctly or that the service is reachable. Don’t try random ports to mask an issue with the original settings.

FAQ: Direct, subscription updates, and On Demand

Why does the system still show a VPN connection after I select Direct?

Direct changes the outbound routing policy, not the connection toggle. To stop the current connection, turn off the toggle in Home. If the connection starts again automatically, go to Settings → On Demand and check its conditions. Don’t use the presence of a VPN indicator to determine whether a particular request went through a proxy.

Will updating a subscription also update website rules in Config?

First, check what was updated. Updating a connection subscription and updating a rule configuration are separate actions. After updating your existing subscription, check the connection entry in Home, then review the active configuration and its policies in Config. A successful subscription refresh alone does not mean the rules changed.

If I always use Proxy, can I ignore the rules?

Proxy can route all handled connections through a proxy, but it does not use the domain rules in Config to distinguish direct connections from proxied ones. To restore routing for specific websites, go to Home → Global Routing, select Config, and check the active configuration and FINAL. Using Proxy temporarily for troubleshooting does not prove that the rules are fixed.

Will enabling On Demand select Config automatically?

Automatic connection and routing mode are separate settings. Settings → On Demand configures when a connection starts; Global Routing determines how connections are routed once connected. Check both settings separately, then verify the actual mode and policy for the destination request after the connection is triggered.

Protocols and routing are separate concepts. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard are protocol options for connection settings; Config, Proxy, and Direct are routing modes. Selecting Proxy does not change one protocol into another, and editing rules cannot fix incorrect authentication details. Check specific settings against the configuration for your existing service.

Everyday checklist

After completing a reproducible test, keep the mode that fits your needs. Use Config for rule-based routing. Keep Proxy selected only when you explicitly want all handled connections to use a proxy. When using Direct, remember that traffic won’t use a proxy as the outbound route—and that the app connection itself remains active.

Shadowrocket is a paid client for Apple platforms, primarily used on iPhone and iPad. The App Store is the only way to get it; check the App Store listing for system requirements. The one-time app purchase is separate from any service plan. This guide assumes you already have your own provider and subscription. For setup, see the Global Routing Guide. For connection issues, see Connection Troubleshooting.

Get Shadowrocket on the App Store