At a glance

This guide is for anyone new to Shadowrocket who needs help navigating its English interface. First, distinguish screen names from routing modes, then check where to find subscriptions, rules, traffic stats, and automatic connection settings. Connection instructions assume you already have a service and subscription of your own. By the end, you’ll know whether a term refers to managing servers, choosing how traffic is routed, or controlling when a connection starts.

Home, Config, Data, and Settings: Find the Right Screen

Home is the starting point for everyday connection tasks. Use it to view existing servers, choose one, check Global Routing, and control the connection switch. A highlighted server is only the current selection—it doesn’t mean a connection is active or that all requests will go through it.

Config manages configuration files, Settings manages app preferences, and Data shows traffic and connection-related information. Layouts can vary across Apple devices, so identify screens by their English labels rather than expecting them in a particular corner. The examples below focus on tasks commonly performed on iPhone and iPad.

Interface labelWhat it doesWhat to check
HomeChoose an existing server and manage the connectionThe selected server, connection status, and Global Routing match your task
ConfigManage, select, and edit configuration filesThe active file is the configuration you intend to use
DataView traffic statistics and related connection recordsCheck whether a test request is logged and whether traffic counters change
SettingsAdjust app behavior and related settingsThe setting is saved and remains selected when you return

Don’t treat all four labels as “connection modes.” Opening Config doesn’t switch Global Routing to Config, and viewing Data doesn’t change where requests go. First decide what behavior you want to change, then open the relevant screen.

Global Routing: Proxy, Direct, Config, and Scene Explained

Global Routing determines how traffic handled by Shadowrocket is routed. Config here is a routing mode; the Config screen is where you manage configuration files. The names are the same, but their functions differ. When troubleshooting, note both the current mode and the active configuration—saying only “Config is selected” isn’t enough.

4 options
Global Routing:Proxy / Direct / Config / Scene
2 places
Config: Configuration Files vs. Routing Mode
1 rule
FINAL: the fallback rule when no earlier rule matches

Config

Recommended

Routing follows the rules in the active configuration. A match for DIRECT goes direct; a match for PROXY or a policy group follows its configured behavior. For unmatched requests, check FINAL rather than assuming they go direct. This option is recommended only when you understand the routing setup and have checked the configuration.

Best for: everyday use with working rules that route traffic by destination

Proxy

Routes traffic handled by the app through the proxy path instead of applying the usual per-rule routing in Config. This can help with a short comparison, but it doesn’t guarantee every destination will be reachable; results still depend on the server and network.

Best for: comparing proxy routing with rule-based routing to troubleshoot traffic flow

Direct

Routes traffic handled by the app directly. Direct doesn’t mean “choose the fastest server,” and it doesn’t turn off the connection switch. The app may still show as connected, but requests aren’t forwarded through a remote proxy.

Best for: checking whether the destination is reachable over your local network

Scene

Routes traffic according to configured scenes. Before selecting Scene, check the conditions and settings for the relevant scene. The label alone doesn’t tell you whether a request will go direct or through a proxy.

Best for: environments where scene settings are already configured and verified

To compare routing modes, change only Global Routing and keep the same server and test destination. Send a new request after switching, and reopen the target app if needed. Existing long-lived connections may continue using the previous route, so don’t use an old connection to judge whether the new setting took effect.

Config and Rule: Which Terms in a Configuration Control Routing?

A configuration file is more than a server list. It can include global settings, rules, local mappings, and rewrite rules. In Config, first confirm which file is selected, then inspect the section you need. A file appearing in the list doesn’t mean it’s active.

Configuration section

[General]
Section for global settings
[Rule]
Section for request matching and policy selection
[Host]
Section for local domain mappings
[URL Rewrite]
Section for URL rewrite rules

Section names organize a configuration; they aren’t four switches that all need to be turned on.

Rule keyword

DOMAIN-SUFFIX
Matches a domain suffix, such as example.com
IP-CIDR
Matches an IPv4 address range, such as 192.0.2.0/24
GEOIP
Matches by IP geolocation, such as CN
FINAL
Handles requests that didn’t match any preceding rules

Rules are evaluated from top to bottom. The first match determines the policy for that request.

The examples below illustrate syntax only; they aren’t a complete configuration. example.com and 192.0.2.0/24 are example values. Choose rules based on your own needs.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

Each line starts with a match type and ends with a policy. Here, PROXY and DIRECT are policy keywords in the configuration syntax; their capitalization differs from the interface labels Proxy and Direct. FINAL,PROXY sends requests that match no other rule to the proxy policy—it doesn’t match only websites named FINAL.

GEOIP uses IP geolocation data, not the language displayed by a website. IP-CIDR matches address ranges, not port ranges. If rules are ordered poorly, a broad rule near the top may match first, preventing a more specific rule below from being considered.

Subscribe, Type, and Update: Subscriptions Aren’t Protocols

Subscribe refers to a subscription type or related settings. A subscription is used to retrieve and update server entries. It isn’t the same as a Config file, and a successful import doesn’t confirm that your rules, DNS, or connection are working correctly. A one-time app purchase doesn’t include a network service plan. Check the validity and terms of your own subscription with its provider.

  1. Start adding

    On Home, tap “+” in the upper-right corner to open the add screen. Have your own subscription URL ready, and don’t paste configuration file contents where a URL is expected.

  2. Choose a type

    Choose Subscribe under Type, then enter your subscription URL. The token in the URL is a credential—don’t include it in public screenshots or troubleshooting notes.

  3. Save and update

    After saving, return to Home and pull down to refresh the subscription. Check whether server entries appear in the relevant subscription group. If an error occurs, note the message instead of repeatedly adding the same URL.

  4. Select and test

    Select an existing server, check Global Routing, then use the connection switch. A successful subscription update only confirms that the entries were retrieved; verify actual connectivity with a new request.

When adding a server manually, Type may also offer protocol names such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard. A protocol defines how the client communicates with the remote server; it isn’t a routing mode like Proxy or Direct. Select the protocol that matches the parameters you already have. Changing Type while keeping all the parameters for a different protocol won’t work.

Data and Connectivity Test: What the Numbers Mean

Use Data to review traffic in both directions and related connection records. Upload and Download usually refer to outgoing and incoming traffic, respectively, but check the current screen for the scope, time period, and reset behavior of the counters. A rising count means traffic is being recorded; it doesn’t prove a webpage finished loading.

Connectivity Test runs a connection test. Results can depend on the test destination, method, current network, and remote response. A lower result for one server doesn’t mean every destination will load faster. For a fair comparison, keep the test method and network conditions consistent.

Data isn’t a complete copy of everything you view online. Connection metadata, traffic counts, and application content are different kinds of information. Seeing connection records doesn’t let you read all the contents of an encrypted connection.

Settings → On Demand: Configure Auto-Connect Separately from Routing Rules

Use Settings → On Demand to review automatic connection settings. On Demand controls whether a connection starts when network conditions are met; Global Routing controls the routing mode used to handle requests. On Demand doesn’t replace [Rule], and selecting Config alone doesn’t automatically establish a connection under every network condition.

For example, if you want different connection behavior on a particular Wi-Fi network, check the relevant conditions in Settings → On Demand, then switch to that network to test them. Note the Wi-Fi name, whether cellular data is also in use, and the connection status after switching. Turning on a switch in Settings alone doesn’t prove that its conditions were met.

Why Does Everything Still Go Through the Proxy When Config Is Selected?

First, confirm that Config is selected under Home → Global Routing. Then, in Config, check the [Rule] section of the active file. If the request matches no earlier rule and the last rule is FINAL,PROXY, routing it through the proxy is the expected result.

Does a lit Direct indicator mean the connection is off?

No. Return to Home and check the connection switch and status separately. Direct only indicates the routing choice. To stop the connection, use the connection switch, then check Settings → On Demand for conditions that could reconnect automatically.

Why Didn’t Config Change After I Updated the Subscription?

Subscription entries and configuration files are managed separately. First, check the updated server list in Home, then confirm the active file in Config. Repeatedly refreshing a subscription won’t change [Rule].

Should I Change On Demand or the Rules First?

If the issue is that the connection doesn’t start automatically, check Settings → On Demand first. If the connection is active but requests are routed incorrectly, check Home → Global Routing and Config → active configuration → [Rule]. Change one type of setting at a time, then send a new request to verify the result.

After checking the settings, keep a brief note of the current server, Global Routing mode, active configuration file, On Demand conditions, and what you observed. When the same English labels come up again, you can link each one to its specific function without changing several settings at once and losing track of the cause.