When you first open Shadowrocket, use Home to find your connection and servers, Config to manage configuration files, Data to review request logs, and Settings to adjust app behavior. This guide walks through these areas in practical order, clarifies the two meanings of Config, explains Proxy and Direct, and distinguishes a connected status from a reachable destination.
Start by identifying what Home, Config, Data, and Settings do
After opening Shadowrocket, look for the main screen labeled Home. Check your server list, connection switch, and Global Routing here. Go to Config when you need to change rules; you do not need to browse Settings just to connect. The layout may differ between iPhone and iPad, so identify screens by their English labels rather than by icon position.
| Interface label | What you can do here | What to check |
|---|---|---|
| Home | Choose a server, change Global Routing, and start or stop the connection | The selected server and connection status match what you intended to do |
| Config | Manage, select, and edit configuration files | The intended file is selected and its rules are correct |
| Data | Review traffic information and request logs to help identify where requests are routed | Find the entry for the test time, domain, or destination address |
| Settings | Adjust app settings, such as On Demand and subscription options | The changed setting matches the expected connection or update behavior |
These areas handle connections, configuration, observation, and app behavior. They are not steps in a required setup wizard. If you already have a server and a working configuration, daily use usually only requires checking Home. Open the relevant screen only when you have a specific issue, change one setting, and test again.
Home: Add an existing subscription, then choose a server and connect
The steps below assume you already have your own service provider and subscription. A subscription URL provides server entries; it is not a rule file or an App Store purchase receipt. Shadowrocket is a closed-source commercial app sold as a one-time purchase. Buying the app does not buy a service plan or automatically provide a usable server.
-
Open the add menu
Go to Home, tap “+” in the upper-right corner, and select Subscribe under Type. This adds a subscription rather than a server entered manually with a specific protocol.
-
Enter your existing URL
Paste your complete subscription URL into URL, check the beginning, end, and query parameters, then save. Do not use your provider’s account page URL as the subscription URL, and do not share a full link that contains credentials.
-
Update and choose a server
Return to Home and pull down to refresh the subscription. Confirm that server entries appear, then choose one to use. Seeing a name in the list only confirms that the entry was imported; it does not verify the remote connection.
-
Connect and verify
Check Global Routing on Home, then turn on the connection switch. The first time, follow the system prompt to allow a VPN configuration. Visit a specific destination page, then check the request in Data.
When adding a server manually, Type may include protocols such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, or WireGuard. Choose the type based on the details of your existing service; do not switch protocols at random to clear an error. Address, Port, and authentication details are separate fields. For example, if your service details list Port as 443, enter 443 in the port field; do not paste a full webpage URL. This number only illustrates how to fill in the field and is not a universal port requirement.
Global Routing: Understand Config, Proxy, Direct, and Scene
Open Global Routing on Home and check the current selection before investigating why a request took a particular route. This controls how traffic is handled, not the server protocol. Switching to Proxy does not convert a Trojan server to another protocol; switching to Direct does not delete a configuration file.
Config
RecommendedRoutes requests according to the rules in the current configuration file. One domain may match DIRECT while another matches PROXY. The outcome depends on the rules and their order; requests are not automatically sorted by region.
Best for: Applying checked rules to handle requests differently by destination.
Proxy
Handles traffic through a proxy, making it useful for comparison with the rule-based behavior under Config. You still need a usable server with correct parameters, and the connection switch and system network status still matter.
Best for: Temporarily checking whether a failed visit is related to rule selection.
Direct
Handles traffic directly, without forwarding destination requests through a proxy server. The app may still maintain a system VPN connection, so the VPN icon in the status bar does not prove that a request went through a proxy.
Best for: Comparing the direct result on your current network to narrow down an issue.
Scene
Applies routing behavior according to your configured scene conditions. Check the conditions and corresponding actions first; without confirmed scene settings, do not assume which server or routing mode will be selected based on the name alone.
Best for: Applying different routing behavior based on a clearly configured scene.
The interface options Proxy and Direct are related to PROXY and DIRECT in rule text, but they operate at different levels. The former is a Global Routing selection; the latter is the target action for an individual rule. When troubleshooting, check the global mode first, then inspect the rules. Otherwise, you may keep editing a rule that is not being applied as expected in Proxy mode.
Config: The configuration file and routing mode are separate
To check rules, open Config, select the active file, and inspect its [Rule] section. Importing a file into the list does not select it, and editing a different file does not automatically change the rules in use. Back up the file before editing, save your changes, then return to Home and confirm that Global Routing is set to Config.
What to check in the two Config contexts
Config screen
- Confirm which configuration file is selected.
- Check the Rule, DNS, and other configuration contents.
- Save edits and keep a copy of the original.
Global Routing → Config
- Route traffic according to the current configuration’s rules.
- Use Data to check which rules were actually matched.
- Does not select or edit a configuration file.
First decide which file to use, then whether traffic should follow that file’s rules. Both must be correct before you can meaningfully check rule behavior.
The snippet below demonstrates syntax and rule order; it is not a complete file to use in place of your own configuration. example.com is a sample domain. Before using rules, verify the destinations and proxy selection for your needs.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT
DOMAIN-SUFFIXmatches domain suffixes; this example covers example.com and its subdomains.IP-CIDRmatches an IP address range. In this example,no-resolveprevents a domain lookup from being triggered just to match the IP rule.GEOIPmatches based on the region associated with the destination IP, not the webpage language or domain suffix.- Put
FINALat the end to handle requests that did not match earlier rules. The example uses DIRECT; that does not mean every configuration should use this fallback target. REJECTblocks matching requests. That is different from a network timeout, so changing servers alone will not diagnose it.
Rules are generally checked from top to bottom, and the first match determines how a request is handled. Put a more specific exception before a broader rule that could override it. For details on individual fields, see the configuration field guide. Do not assume that combining snippets from multiple sources produces a complete configuration.
Data: Check request logs to verify results; traffic totals are not a bill
Keep the connection active, open just one test destination in your browser, note the approximate time, then go to Data and find the matching request. Check the domain or destination address, timestamp, and any visible rule or routing information. If the list includes background requests from other apps, do not assume the newest entry is from the page you just visited.
- Before testing, note the destination and current Global Routing mode. Avoid changing multiple variables at once.
- Make a new request. An existing long-lived connection or a cached page may not generate a new, easy-to-identify log entry.
- Find the request in Data. If rule information is available, compare it character by character with the relevant entry in Config.
- Change one setting, repeat the request, and compare its route and whether it succeeds or fails.
For example, if Global Routing is set to Config but a request shows DIRECT, first check the matching direct rule and FINAL rather than assuming the server is down. If a request handled by PROXY still fails, check the selected server, protocol parameters, and network reachability. If the request does not appear in the log, confirm that you made a new request and check the logging settings and retention period.
Settings: Where to check app behavior and On Demand
To connect under specific conditions, go to Settings → On Demand and check the switch and trigger conditions. On Demand controls when the system starts a connection based on conditions; Global Routing controls how requests are handled once connected. They can both be active, but neither replaces the other.
After changing On Demand, test it on the network where you actually use the app. Switch to that network, check whether the connection starts under the specified conditions, then make a request to confirm the routing result. If the connection starts again after you turn it off manually, check On Demand and its conditions rather than repeatedly removing the system VPN configuration.
I imported a subscription. Why are there no rules in Config?
Return to Home and check whether the subscription contains server entries. Server subscriptions and configuration files are managed separately. To route traffic by rules, select a suitable file in Config, then choose Config under Home → Global Routing.
The switch says Connected, but why won’t the page load?
First check that Home → Global Routing is set to the expected mode, then find the request in Data. Connected means the system tunnel is established; it does not mean every remote destination is reachable. Use the route shown in the log to continue checking the rules or server parameters.
It reconnects after I turn it off. Is the switch broken?
Go to Settings → On Demand and check for active conditions. To stop automatic connections temporarily, adjust the relevant conditions or turn off On Demand, then stop the connection and check the status on your current network.
My subscription update failed. Should I change Config?
First, check which subscription you tried to update on Home. Make sure the URL is complete, the credentials are valid, and the network can reach it. If the URL must be accessed through an existing proxy, check Update via Proxy under Settings → Subscribe. This will not fix expired credentials or an incorrect URL.
Use this order to navigate the interface: Home for connections, Config for rules, Data for results, and Settings for app behavior. Change only the setting related to the current issue, and note what happens before and after. This makes it easier to find the cause than changing servers, rules, and On Demand all at once.