Shadowrocket’s interface labels fall into three groups: Home, Config, Data, and Settings are page tabs; Proxy, Direct, Config, and Scene under Global Routing define how traffic is handled; Subscribe, Connectivity Test, and On Demand cover importing, testing, and automatic triggers. This guide is for users who already have their own service and subscription but aren’t sure which option to use. It explains how labels can mean different things in different places and what to check, in order, when connecting.
First, distinguish page tabs from connection status
The bottom tabs determine which page you’re viewing; they don’t indicate whether the connection is active. Opening Config doesn’t automatically route traffic according to its rules, and opening Data doesn’t start a connection. To check the current state, go to Home and review the connection switch, selected server, and Global Routing selection.
| Interface label | What it does | Don’t confuse it with |
|---|---|---|
| Home | Manage servers, select a default server, control the connection, and run tests. | A server appearing in the list doesn’t mean it’s selected or connected. |
| Config | Manage and edit configuration files, and review rules and related settings. | This is the file-management page, not the current Global Routing mode. |
| Data | View traffic statistics and connection logs to help trace request paths. | Local logs don’t replace usage information in your service provider’s account. |
| Settings | Adjust app behavior, subscription options, On Demand, and other settings. | A switch in Settings controls something different from the connection switch on Home. |
When following instructions, read the full path as a unit. For example, the last item in Home → Global Routing → Config is a mode, while “open the bottom Config tab” means the configuration-file page. Remembering a label without noting where it appears is one of the most common causes of mistakes.
Home: Import, select, and connect
Home is where everyday connection tasks begin. Subscribe is a server subscription type, not an in-app purchase. Seeing server entries after importing only means the data has been added to the list. You still need to select a default server and turn on the connection switch. The steps below assume you already have a valid subscription of your own.
-
Open the right screen
Go to Home, tap “+” in the upper-right corner, and choose Subscribe under Type. Don’t paste a full subscription URL into an individual server’s address field just because you recognize a protocol name.
-
Save the subscription
Enter your own subscription URL and save it.
https://example.com/sub?token=xxxxis a format example only and won’t connect; treat the token in your actual URL as a credential. -
Select a server
Return to Home, make sure the subscription has loaded, then tap the server you want to use and check the selection mark beside it. The subscription name identifies a group; an individual server is the connection target.
-
Turn on the connection
Check the current selection under Home → Global Routing, then turn on the connection switch at the top of Home. If iOS prompts you to add a VPN configuration the first time, follow the system instructions to authorize it.
-
Run a test
Run Connectivity Test from Home and try accessing the destination you actually need. Confirm both that the test passes and that the destination works; the position of the connection switch alone doesn’t tell you either.
Refreshing Subscribe fetches the server data returned by your provider; it doesn’t buy a service or update the app. Before pulling to refresh, make sure your current network can reach your subscription URL. If the refresh fails, note the error first. Repeatedly deleting and re-importing may make it harder to recover your previous selection.
Global Routing: Proxy, Direct, Config, and Scene
Global Routing determines how Shadowrocket handles traffic routed through it. This is separate from the server protocol, such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, or WireGuard: the routing mode controls how a path is chosen, while the protocol describes how the server connection works. Changing modes doesn’t convert a server to another protocol.
Config
RecommendedHandle requests using the rules in the currently selected configuration. Depending on the rules, the result may be DIRECT, PROXY, or a policy defined in the configuration. This is recommended when you know the configuration’s source and have reviewed its rules; it doesn’t mean every request should go through a proxy.
Best for: using a reviewed ruleset to route requests differently based on their destination.
Proxy
Handle traffic in a proxy mode rather than choosing a path based on individual rules in Config. This can help with temporary comparisons, but whether the proxy connects still depends on the selected server and network conditions.
Best for: temporarily checking the effect of routing rules against the same destination and server.
Direct
Use a direct-connection mode without forwarding requests through the selected proxy server. Even with the connection switch on, requests aren’t necessarily using a proxy.
Best for: comparing behavior on your current network and checking whether an issue occurs only over the proxy route.
Scene
Use the configured Scene settings to determine how traffic is handled. Before selecting this mode, review the configured scenes and their conditions. Scene isn’t another server, nor is it automatically the same as Config.
Best for: using connection policies based on scenes you’ve set up and reviewed.
When troubleshooting, change one variable at a time. For example, keep the same server and destination, and compare Config with Proxy. If the results differ, check which rules matched and where their policies point instead of assuming the server is faulty. Restore your usual mode after testing so temporary settings don’t carry over into everyday use.
Config: File tab, routing mode, and rule keywords
The bottom Config tab manages configuration content; Config under Global Routing uses that content to handle traffic. Check three states separately: whether a file was imported, whether it’s selected, and whether Global Routing is set to Config. Editing a file that isn’t selected won’t make current requests use its rules.
Find the label by context
- Bottom Config tab
- Manage, select, and edit configuration files.
- Global Routing → Config
- Handle traffic using the rules in the current configuration.
- PROXY in a rule
- A rule action; distinguish it from the Proxy mode in the interface.
- DIRECT in a rule
- Use a direct connection when this rule matches.
Check where the label appears, then determine whether it refers to a file, a mode, or a rule action.
Rule keyword guide
- DOMAIN-SUFFIX
- Match a destination domain by its suffix.
- IP-CIDR
- Match an IPv4 address range.
- GEOIP
- Match by region classification in the IP geolocation database.
- FINAL
- The final rule used when none of the preceding rules match.
Rules are evaluated in order. A GEOIP classification doesn’t by itself establish the destination’s actual location.
The syntax below shows only the [Rule] section, not a server connection configuration. example.com is a sample domain, and 192.0.2.0/24 is a documentation-only network range. Don’t treat these examples as a ruleset designed for your actual needs.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
For example, if the first rule matches, the request uses PROXY; FINAL no longer determines its route. FINAL applies only if none of the first three rules match. When reading a rule, check both the matching condition on the left and the action at the end. Seeing DOMAIN-SUFFIX alone doesn’t tell you whether a request will connect directly.
Data and Connectivity Test: Logs and tests serve different purposes
Data shows connection and traffic information; Connectivity Test checks connectivity. Data helps answer “What path did the request take?” Connectivity Test helps answer “Did this test destination respond?” Neither alone proves that every site, protocol, or long-running transfer will work.
How to check: hold conditions constant and review each separately
Home → Connectivity Test
- Note the selected server and Global Routing mode used for the test.
- Distinguish response times, timeouts, and failure messages; a lower number isn’t a bandwidth guarantee.
- After testing, visit the actual destination and confirm whether it works.
Data
- Make one easy-to-identify request, then check the logs from around that time.
- Review the visible destination, connection path, and rule information; rely on the fields actually shown in the log.
- Before sharing logs, hide subscription credentials, server addresses, and personal browsing details.
A test result describes one check; connection logs show individual requests. Check your provider’s account for your remaining plan allowance.
If a webpage won’t load but a Connectivity Test succeeds, check the webpage’s DNS resolution and rule results. Don’t treat results for two different destinations as if they were the same. Conversely, one test timeout doesn’t prove that every connection is failing. Confirm the test destination and network conditions, then check with an actual request.
Settings and On Demand: Control behavior, not server selection
Settings → On Demand is where you configure when a connection should be triggered. It controls conditions for connecting or staying disconnected; it doesn’t import subscriptions or select a working server for you. Even when a trigger condition is met, incorrect server settings or an unavailable service can still cause requests to fail.
- Start with a manual baseline: Select a server on Home, connect manually, and confirm the destination works before configuring automatic triggers.
- Check the conditions: Review the configured Wi-Fi, cellular, or domain conditions and their corresponding actions. Don’t just turn on the main switch without checking the conditions themselves.
- Separate connection from routing: On Demand controls when a connection starts; Global Routing and the current configuration determine how requests are handled after it connects.
- Troubleshoot automatic reconnection: If the connection returns after you turn it off manually, go to Settings → On Demand and check that it’s enabled and review its matching conditions. Then check the system VPN status.
Subscription options in Settings affect how subscriptions are fetched; they won’t fix incorrect server settings returned by your provider. If you’ve forgotten where to go, start with the task: add data on Home, edit rules in Config, review requests in Data, or change app behavior in Settings. This is more useful in practice than memorizing each English label.
Common questions: Find the setting by its location
I tapped the bottom Config tab. Why am I still connecting directly?
The bottom Config tab only opens the file page. Go to Home → Global Routing and check whether Config is selected, then review the selected file and the rule matched by your destination. Even with the right mode selected, a destination matched by DIRECT will connect directly.
Why can’t I connect after importing a subscription?
Return to Home and confirm that server entries have appeared and a default server is selected. Then check the connection switch and Global Routing, and run Connectivity Test. If the list is empty, troubleshoot the subscription fetch first instead of jumping to rule editing.
The switch is on. Why does Data still look like it’s using Direct?
First check whether Home → Global Routing is set to Direct. If it’s set to Config, check whether the request matched DIRECT. Connection status and the route used by a request are different pieces of information; use the log for that same request to verify its path.
The connection comes back after I turn it off. What should I change?
Go to Settings → On Demand and check whether any trigger conditions match your current network. While troubleshooting, disable On Demand and compare with a manual connection from Home. There’s no need to delete your subscription or configuration file first.
Shadowrocket is a closed-source, commercial app for Apple platforms, primarily for iPhone and iPad. The App Store is its only source. The developer is Shadow Launch Technology Limited, and the app ID is 932747118. Check the App Store page for system requirements, compatibility, and universal purchase details. A one-time client purchase is separate from a server plan. This site does not provide, sell, or recommend servers or subscriptions.