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 label | What it does | What to check |
|---|---|---|
| Home | Choose an existing server and manage the connection | The selected server, connection status, and Global Routing match your task |
| Config | Manage, select, and edit configuration files | The active file is the configuration you intend to use |
| Data | View traffic statistics and related connection records | Check whether a test request is logged and whether traffic counters change |
| Settings | Adjust app behavior and related settings | The 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.
Config
RecommendedRouting 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.
-
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.
-
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.
-
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.
-
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.
- Server is the server address; Port is the port the service listens on. Both must be correct.
- Entering 443 as the Port doesn’t by itself confirm that TLS is in use or identify the protocol.
- Password and UUID serve different authentication roles across protocols; don’t swap them arbitrarily.
- Updating a subscription mainly affects the server entries it manages. Check Config separately to see whether the local configuration file has changed.
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.
- In Home, note the selected server and Global Routing, then make a new request.
- In Data, check for records around that time. If the details show a matching rule or policy, compare it with the active configuration.
- If the request times out, check destination reachability, server status, and DNS resolution separately. Don’t draw conclusions from a single latency figure.
- Before sharing records, redact subscription URLs, authentication fields, and private destinations. Keep only the relevant timestamps, error text, and policy information.
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.