This guide is for people new to Shadowrocket who already have their own provider and subscription. First, distinguish the four tabs; then separate the Config tab from Config mode under Global Routing. Finally, check the connection in this order: server, mode, configuration, and logs. The English labels help you find each control; the explanations clarify what it does. Don’t judge connection success from a single label.
The four tabs: distinguish navigation from status
Home, Config, Data, and Settings are functional tabs, not four connection modes. Home is mainly for choosing servers, managing server entries, and controlling the connection. Config manages configuration files. Data shows connection logs and traffic-related information. Settings controls app options. Opening a tab changes what you’re viewing; it doesn’t change the routing mode.
When first exploring the interface, it’s easy to conflate the page you’re viewing, the selected server, and the active configuration. These are separate states. For example, viewing Config doesn’t mean Config is selected under Global Routing. And seeing a server entry in Home doesn’t mean a connection has been established.
| Interface label | Main purpose | What to check first |
|---|---|---|
| Home | Server list, connection controls, and Global Routing | Which entry is selected and whether the connection is on |
| Config | Manage, select, and edit configuration files | Which configuration is active and whether the rule order is correct |
| Data | View connection logs and traffic information | Destination, matching rule, policy, and error details |
| Settings | Manage app behavior and related options | Whether On Demand fits your current setup |
The exact list items and option locations may vary by device and app interface. Identify a feature by its English label, then check the options currently shown. Don’t use the button positions in an old screenshot as a guide to what a feature does.
Home: servers, Subscribe, and the connection switch
A server entry in Home represents a set of connection parameters, usually including the server address, port, protocol, and authentication details. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard are protocol names, not tabs or Global Routing modes. Enter the protocol details provided by your service provider; don’t change Type arbitrarily to try to make a connection work.
Subscribe is a way to import a subscription. The subscription URL returns a server list, and updating the subscription syncs that list. It doesn’t enable a Config file or mean that all websites will use the same policy. A one-time app purchase is not a service plan. This guide assumes you already have your own provider and subscription.
-
Open Home
Open Home and check the existing server list and connection status. Before troubleshooting, note which entry is selected so you don’t switch to a different one and compare the results against the wrong baseline.
-
Choose a type
To import an existing subscription, go to Home → + in the upper-right corner → Type → Subscribe. This only describes where to find the option; users with a working server list don’t need to import it again.
-
Save and check
Enter your own subscription URL and save it, then return to Home to check whether a server list appears. Don’t use a configuration file URL, webpage URL, or account management page as a subscription URL.
-
Select and connect
Select the server you want to use, check Home → Global Routing, and turn on the connection. The first time, follow the system prompt to allow the VPN configuration to be added, then verify the result with an actual request.
Global Routing: Config, Proxy, and Direct
Global Routing determines how Shadowrocket routes connections it handles. Config applies the rules in the active configuration to select a policy; Proxy routes those connections through a proxy policy; Direct connects to the destination directly. These are routing modes. They don’t change the server’s protocol or authentication details, and they can’t make an unavailable service work.
Config
RecommendedRoute traffic according to the rules in the active configuration. The result may be DIRECT, a proxy policy, or REJECT—not necessarily “some traffic direct and everything else proxied.” The outcome depends on the rules and their order.
Best for: Using a checked configuration to route connections according to their destinations.
Proxy
Use proxy routing for connections currently handled by the app. This can help you temporarily check the proxy path. It doesn’t mean all device traffic always passes through the proxy; the actual scope depends on the system and which traffic is being handled.
Best for: Comparing with Config while changing only one variable to see whether routing rules are causing the issue.
Direct
Use direct routing for connections currently handled by the app. This doesn’t select a faster server or turn off the system VPN status.
Best for: Checking whether the destination is reachable directly over your local network. Restore the previous mode afterward.
If you see Scene, treat it as an entry point for choosing routing behavior based on scene conditions, not as a new protocol. Check the conditions and corresponding actions before using it. The label Scene alone doesn’t tell you whether traffic is being proxied or routed by a particular set of rules. When troubleshooting, start by explicitly selecting Config, Proxy, or Direct to reduce variables caused by automatic switching.
Config: the tab and mode share a name, but have different roles
The Config tab answers “Which configuration is in use, and what does it contain?” Global Routing → Config answers “Should connections be handled according to the configuration’s rules?” Importing a configuration, selecting one, and choosing a routing mode are separate actions. Changes to an inactive file usually won’t affect current requests. After editing the active file, save it and reapply it if prompted, then verify with a new request.
Navigation and status
- Config tab
- Manage and check the configuration file currently in use.
- Home → Global Routing
- Select Config to route traffic according to the configuration’s rules.
- Data
- Check the actual match using a new request in the logs.
Confirm separately that the file exists, is active, and is being used for rule-based routing.
Rule keywords
- DOMAIN-SUFFIX
- Match destinations by domain suffix.
- IP-CIDR
- Match destinations by IPv4 address range.
- GEOIP
- Match destinations using IP geolocation data.
- FINAL
- The fallback rule used when no earlier rule matches.
Rules are checked from top to bottom; matching stops at the first hit. Put FINAL last.
The following is a rule syntax snippet, not a complete file to replace your configuration. example.com is an example domain; the proxy policy referenced by PROXY must be available in your actual configuration. Don’t assume that a display name in the server list is automatically the same as a policy name in the configuration.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
Here, 192.168.0.0/16 is a private address range, and no-resolve means not to trigger a DNS lookup specifically for this IP rule. It isn’t a general-purpose connection fix. GEOIP,CN,DIRECT relies on IP geolocation and doesn’t mean “all Chinese-language websites connect directly.” DIRECT, PROXY, and REJECT in rules are policy keywords; the Direct and Proxy interface modes belong to a different layer. Don’t conflate them.
Data: use logs, not total traffic, to diagnose issues
Data helps you match a request to the way it was actually handled. An enabled connection switch tells you only that the connection is on; an increase in traffic only indicates data activity. Neither proves that a website matched the expected rule. Check the same destination and time period, then use the destination, rule, policy, and error details visible in the current logs.
- Start with a new request: Note the current mode, visit a specific destination, then look for the corresponding entry in Data. Existing connections may be reused, so they’re not a reliable way to check newly changed rules.
- Then check the policy: If you expect traffic to use a proxy but the log shows DIRECT, check the mode, rule order, and active file before changing the protocol.
- Finally, check for errors: If the policy is as expected but the request fails, check server reachability, authentication details, DNS, and the destination itself. A single error doesn’t prove the entire subscription is invalid.
For example, if a destination works in Proxy but fails after switching to Config, first check the Config rules, policy mapping, and related DNS settings. This alone doesn’t prove that a specific rule is wrong. Keep the server unchanged and check a new request in the logs to narrow down the cause. When sharing logs, include only the fields needed and hide account and authentication details.
Settings: On Demand is not a routing rule
Settings controls app behavior. Settings → On Demand configures when connections are automatically established or disconnected. Global Routing determines how connections are routed once established. Config rules match destinations when Config mode is selected. These are three separate questions: “When does it connect?”, “Which mode is used?”, and “Which policy applies to this destination?”
Don’t enable multiple automatic behaviors before you’ve verified that a manual connection works. Otherwise, network changes, automatic connections, and rule changes can overlap, making it hard to identify what affected the result. On Demand also involves the system VPN configuration; check the conditions and actions shown in the current app and system interfaces.
- Test manually first: In Home, select a server and mode, then confirm that a real request completes as expected.
- Set conditions next: Go to Settings → On Demand and check each available network condition and connection action. Don’t set the same action for every network environment without first checking what you need.
- Test network changes: Check the connection status on the target Wi-Fi and cellular networks, then make a new request to confirm the trigger works as configured.
- Troubleshoot automatic reconnections: If the connection comes back after you turn it off manually, check On Demand and the system VPN settings instead of repeatedly tapping the Home switch.
Common misunderstandings and troubleshooting order
Does opening the Config tab make connections follow the rules?
No. The tab is just a management area. First check which configuration is active, then go to Home → Global Routing and select Config. Finally, verify the result using a new request in Data. Completing just one of these steps doesn’t mean the entire setup is working as expected.
Does Direct mean the connection is off?
No. Direct is a routing mode; the connection switch controls a separate status. To stop the connection, check the controls in Home. If it reconnects automatically, also check Settings → On Demand.
Does updating a subscription also change Config rules?
A server subscription and a configuration file are separate items. A successful server list update doesn’t prove that the rules have been updated. Check the subscription content and the active file in Config separately. Confirm the update location and content for each resource.
Use a consistent troubleshooting order: first check the server and connection status in Home, then confirm Global Routing, check which file is active in Config, and finally inspect a new request in Data. Add Settings → On Demand only when troubleshooting automatic connections or network changes. Change one thing at a time and record the before-and-after results; this makes it easier to reach a reproducible conclusion than changing several settings at once.