Shadowrocket’s interface is organized by function: Home handles connections and server selection, Config manages configuration files, Data shows traffic and request logs, and Settings contains app preferences. Proxy and Direct are routing or policy terms, not bottom tabs. This guide is for users who already have their own service provider and subscription and need to navigate the English interface. It explains commonly confused terms and what to check first.
Start with the bottom tabs
First identify the page you’re using, then look for the setting within it. Home, Config, Data, and Settings are navigation tabs; Global Routing is a routing setting within Home. Keeping these two levels distinct prevents mistakes like assuming that opening Config enables rule-based routing. The layout may vary by device or display language, so use the English labels to find options rather than their position on screen.
| Interface term | Main purpose | When to open it |
|---|---|---|
Home | Connection switch, server list, and Global Routing | Select an existing server and check the connection and routing mode |
Config | Select, view, and edit configuration files | Check the active rules, DNS, and other configuration details |
Data | Review traffic statistics and request logs for diagnostics | Inspect test requests and how they were handled |
Settings | App-level settings and options | Find options such as On Demand and Subscribe |
The connection switch on Home controls or indicates the connection state; it does not guarantee access to every website. Selecting a server only makes it a candidate route for subsequent requests. Whether requests actually use it depends on Global Routing, the active configuration rules, and the request logs available in the app.
Home and subscriptions
A server entry on Home and a subscription are different things. An individual entry stores the protocol and parameters needed to connect. Subscribe retrieves a group of entries from a subscription URL you already have. Updating a subscription changes that group; it does not select the right server or replace the rules file in Config.
-
Find the right option
Open Home, tap “+” in the upper-right corner, and check Type on the add screen. First determine whether you have a subscription URL or the connection details for a single server.
-
Choose the right type
To add an existing subscription, select Subscribe under Type and enter your subscription URL. To add a single server manually, choose the Type that matches the protocol provided by your service provider.
-
Check the list
After saving, return to Home and check the subscription group and its entries. If the list is empty, first verify the subscription update result and that the URL is complete. Don’t try to fix it by changing the protocol at random.
-
Select an exit
On Home, select the existing server you want to use, then check Home → Global Routing. If requests should be handled by rules, also confirm that the expected configuration is selected in Config.
Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard are protocol or connection type names, not tiers for “faster” or “more reliable” service. When entering details, match Type, address, port, and authentication information to the parameters you already have. For example, if your details specify port 443, enter that value; don’t infer a port from the protocol. This guide does not provide connection services or subscriptions.
Proxy and Direct
Proxy routes requests through a proxy; Direct connects without one. These terms may appear in Home → Global Routing or as target policies in configuration rules. Always consider where they appear: the former sets the overall routing mode, while the latter specifies what happens when a particular rule matches.
Config
RecommendedSelect Config under Home → Global Routing to handle requests according to the active configuration’s rules. This does not guarantee that a particular type of website will connect directly; the outcome depends on the rules, their order, and their target policies.
Best for: Everyday use after checking your configuration and following its rules
Proxy
Route requests handled by Shadowrocket using the proxy mode. This can help compare results with Config, but it cannot make invalid server parameters work.
Best for: Temporarily checking whether configuration rules affect a particular request
Direct
Route requests handled by Shadowrocket using direct connection mode. Direct does not turn off the system connection switch or automatically choose a faster route.
Best for: Comparing with direct access to a destination on your local network
Global Routing may also include Scene. This option applies routing settings by scenario; it is not a protocol. Don’t use it as a substitute for Config until you’ve checked the scenario conditions and associated settings. When troubleshooting, first identify whether you’re using Config, Proxy, or Direct. Change one condition at a time, record the result, and restore the original mode afterward.
Two meanings of Config
The Config tab at the bottom manages configuration files; Config under Global Routing selects rule-based request handling. The first answers “Which configuration is selected?” The second answers “Are requests being handled according to its rules?” After importing a subscription, check both separately. A populated server list does not mean the routing rules are set up.
Check the file and routing mode separately
Config tab
- Confirm which configuration file is selected.
- Review the order of the rules and their target policies.
- Keep a copy of the original file before making changes so you can restore it.
Home → Global Routing
- Confirm whether Config is selected.
- If Proxy is selected, don’t use rule-based routing to explain the result.
- If Direct is selected, first check whether that was intentional.
File selection and routing mode are separate checks. Confirm both before investigating whether a specific rule matched.
When reading a configuration, identify the rule type first, then the match criteria, and finally the target policy. The examples below demonstrate syntax only; don’t replace your existing configuration with them without checking it. example.com is a placeholder domain for illustration, and the IP address ranges are documentation examples.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
Rules are evaluated in configuration order. A request matched by an earlier rule may never reach a later one. In the example, FINAL,PROXY sends requests that didn’t match earlier rules to PROXY; it does not mean that all requests use a proxy. GEOIP uses IP geolocation data and is not simply equivalent to the language of a website.
What to check in Data
Data is for monitoring and diagnostics; it doesn’t select a server or change routing for you. When troubleshooting a page, first generate an easy-to-identify test request, then check the request log for that time. Traffic statistics cover the data recorded by the app and shouldn’t be treated as the remaining allowance in a service plan. Connection duration is not a substitute for an availability test.
- Before testing, note the Global Routing mode, selected server, and configuration file. Avoid changing several settings at once during the test.
- Open the page you’re troubleshooting once and note the time and the domains actually requested. The page may also request images, API endpoints, and other domains.
- Open Data and review the available request logs. Check the destination, handling policy, and any error shown in the log.
- To compare results, change just one Global Routing setting and try again. Restore the original configuration afterward and compare the results for the same destination.
If the expected request isn’t in Data, don’t immediately assume the rules aren’t working. First check the connection state, whether logging is enabled, and whether the test generated a new request. Browser caching may display a page without making a new network request. Before sharing diagnostic information, redact subscription URLs, authentication details, personal domains, and other sensitive data.
Common questions about Settings
Settings contains app behavior options. Settings → On Demand is related to the manual connection switch on Home, but it is a separate control. Settings → Subscribe handles subscription-related behavior; it is not a substitute for importing a rules file. Find settings by function instead of searching every page for the same term.
Why does it reconnect after I turn it off?
Go to Settings → On Demand and check whether conditional connection is enabled and what triggers are configured. To test manual disconnection, note the original settings and temporarily pause the relevant automatic triggers. Don’t keep toggling the Home switch alone.
I found Subscribe. Why can’t I see the rules?
Subscribe is generally for subscription server entries. Return to Home to check the subscription group, then open the Config tab at the bottom to view the rules file. These options manage different things; updating a subscription does not update configuration rules.
My subscription URL is only accessible through a proxy. Where do I set that?
Go to Settings → Subscribe and check Update via Proxy. Before enabling it, confirm that you already have a working proxy connection. This setting changes the route used for subscription update requests; it cannot fix an expired URL, invalid authentication, or incorrect content returned by the server.
Why can’t I connect even though Proxy is selected?
Return to Home to check the selected server and connection state, then look for errors for the relevant request in Data. Proxy changes the routing mode only. Check your existing service details for problems with the address, port, authentication parameters, or server status.
Use this sequence for a final check: select a connection target in Home → set the routing mode in Global Routing → check the rules in Config → review results in Data → check automatic behavior in Settings. This keeps servers, rules, logs, and automatic connections separate, so the same English term isn’t mistaken for the same thing in different parts of the app.