Shadowrocket Interface Guide: What Home, Config, Proxy, Direct, Data, and Settings Do

Learn what Shadowrocket’s Home, Config, Proxy, Direct, Data, and Settings screens do, where to find them, and how Config differs from Proxy and Direct.

At a glance

Shadowrocket’s page navigation, connection status, and traffic handling are three separate things. Use Home to connect and choose a server, Config to manage configurations, and Global Routing to choose how traffic is handled overall. Data shows runtime information, while Settings lets you adjust app behavior. This guide is for anyone who has just opened the app, can find the English labels, but isn’t sure which one to change. Follow this sequence: find the page, check the status, then review routing—rather than changing server settings just because you see Proxy.

1. Distinguish page navigation from settings within a page

When you encounter an English term, first check where it appears. Home, Config, Data, and Settings in the bottom bar are page tabs. Global Routing on Home is a setting, with Proxy, Direct, Config, and Scene as different ways to handle traffic overall. Config appears in two places; the meanings are related, but the two controls aren’t interchangeable.

Interface termLocation or levelWhat it does
HomePage tabCheck connection status, choose a server, and open Global Routing or Connectivity Test.
ConfigPage tabManage configuration files and view or edit their rules and other settings.
DataPage tabView runtime information, including connection and traffic details, to help inspect requests.
SettingsPage tabManage app settings, such as On Demand connection behavior.
Global RoutingSetting on HomeChoose how traffic is handled overall.
ConfigOption under Global RoutingHandle requests according to the rules in the active configuration.

“Edit rules in Config” and “set Global Routing to Config” are two different actions. The first changes the rules; the second chooses to use them. Opening Config to view a file doesn’t switch Home’s Global Routing setting. Likewise, switching to Config doesn’t mean every rule in the file matches your needs.

2. Home: Check connection status, then the selected server

Home is the starting point for everyday checks. Not Connected means no connection is currently established; it doesn’t necessarily mean there’s a problem with your subscription. The SERVER section lets you view and select an existing server, while Connectivity Test checks connectivity. A test result shown as a number doesn’t prove that every website will load, and it isn’t a sustained download speed.

  1. Check the status

    Open Home and check the connection toggle and Not Connected status at the top. The first time you connect, if the system asks to add a VPN configuration, follow the prompt. Adding the configuration and verifying the remote server are separate steps.

  2. Check the server

    On Home, check the current selection under SERVER. This guide assumes you already have your own provider and subscription. If the list is empty, import your own connection details first instead of repeatedly switching Global Routing.

  3. Check traffic routing

    Go to Home → Global Routing and check whether Config, Proxy, Direct, or Scene is selected. Note the original selection before troubleshooting so you can restore it afterward.

  4. Test and verify

    Run a test under Home → Connectivity Test, then open the target website. Record separately whether the test completed, whether the page loaded, and which traffic-handling mode was active. Don’t conflate these three results.

To add an existing subscription, tap “+” in the upper-right corner of Home, open Add Server, set Type to Subscribe, enter your own subscription URL, and save. Subscribe identifies the import source type; it doesn’t mean the connection is working. Updating a subscription fetches its list, while the connection toggle establishes a connection. Check update and connection results separately. Don’t expose credentials in the URL in public screenshots or support requests.

3. Global Routing: Config, Proxy, Direct, and Scene explained

Global Routing answers “How should Shadowrocket handle this traffic?”—not “Which protocol should it use?” The guidance below assumes you already have suitable rules configured. Until you’ve checked the rules, don’t assume Config automatically determines how every website should be handled.

Config

Recommended

Select a policy according to the rules in the active configuration. A request may be handled by DIRECT, a proxy policy, or another defined policy; it isn’t fixed to “direct for one category of websites, proxy for another.” The result depends on the rules and their matching order.

Best for: Everyday use when you’ve checked the rules and want traffic handled differently depending on its destination.

Proxy

Send all traffic handled by the app through the proxy route, without selecting an outbound route according to each destination rule in Config. This won’t fix an incorrect Address, Port, or authentication details, and it doesn’t guarantee that the selected server is available.

Best for: Temporary comparison tests to see whether a traffic issue is related to destination-based rules.

Direct

Use a direct route without forwarding traffic through the selected remote proxy server. Direct is a traffic-handling mode, not the same as turning off the Home connection toggle. Even if the system still shows a VPN status, that alone doesn’t mean requests are going through a remote proxy.

Best for: Checking whether your local network can reach a destination directly, or comparing direct connectivity.

Scene

Apply the traffic-handling setup associated with the configured scene conditions. This depends on your actual scene configuration; Scene isn’t another name for Config. Check the scene conditions and related settings before using it.

Best for: Users who have configured scene conditions and can confirm the expected behavior in different environments.

For example, if the same device, server, and target website fail under Config but work after temporarily switching to Proxy, that’s a clue that the rules or policy selection may need checking. If the network or server also changes during the test, this alone can’t establish the cause. Restore the original setting after comparing, then check request-handling details in Data.

4. Config: Configuration files, rule keywords, and policies aren’t protocols

The Config page manages configuration content. Rules describe “which destinations to match and which policy to use”; protocols such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard describe how a connection is established. The protocol must match your existing server details. Don’t change Type to a protocol just because a rule uses PROXY.

2 places
Config: The page tab and the Global Routing option serve different purposes.
4 keywords
Examples in this guide: DOMAIN-SUFFIX, IP-CIDR, GEOIP, and FINAL.
1 fallback
FINAL at the end of the example specifies how to handle requests that don’t match earlier rules.

The example below illustrates rule structure only. It isn’t a complete configuration, and you shouldn’t replace your current file with it as-is. The example domain and IP range demonstrate the syntax; check your own configuration for the actual policy names, DNS settings, and server details.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

Rules are generally matched in order. A broad rule near the top may prevent more specific rules below it from taking effect. So having a rule in the file doesn’t mean a request ultimately matched it. When troubleshooting, check the active configuration, rule order, and assigned policy—not just whether you can find the destination domain in the file.

5. Data and Settings: One shows results; the other changes behavior

Use Data to view runtime information and Settings to adjust app behavior. Data is useful for checking what happened after making a request; Settings is where you change something when you know what you want to adjust. Traffic shown in Data only means traffic was recorded—it doesn’t prove that all traffic used the same server.

A troubleshooting plan: Observe one request, then change one setting

Data: Review what happened
  • Open the target website, then return to Data to find the related runtime information.
  • Check the destination, time, and any policy or connection details shown in the app.
  • Before asking for help, hide real server addresses, subscription credentials, and personal browsing records.
Settings: Change app behavior
  • Go to Settings → On Demand to check on-demand connection settings.
  • Note the original state before making changes, and change only one relevant option at a time.
  • Return to Home and check the connection status and traffic-handling mode after the change.

In short: Data helps you observe results; Settings changes behavior. Neither replaces checking server details and the active rules.

On Demand controls when a connection is triggered based on conditions; it doesn’t select a proxy policy for a destination domain. To change when the app connects, check Settings → On Demand. To change how a request is routed, check Home → Global Routing and the rules in Config. If the app reconnects after you disconnect manually, check the on-demand conditions first rather than assuming the server is at fault.

6. Frequently asked questions: What to do when you see these terms

I opened Config. Why aren’t requests following the rules?

First, go to Home → Global Routing and make sure Config is selected. Then open the Config page and check which file is active. Opening the page only lets you view it; it won’t automatically switch the traffic-handling mode from Proxy or Direct to Config. Next, test the rule match using the same destination.

I selected Proxy. Why can’t the server connect?

Proxy only changes how traffic is handled. Return to Home to check the selected server, then open its edit screen and verify that Type, Address, Port, and authentication details match the service information you already have. Don’t guess the Port based only on the protocol name. Switching Global Routing won’t fix incorrect connection details.

Does Direct mean the connection is disconnected?

No. Check the connection toggle on Home and the traffic-handling mode under Global Routing separately. To end the current connection, use the connection toggle; choose Direct only to compare direct connectivity. If the app reconnects afterward, check the trigger conditions under Settings → On Demand.

The Subscribe update succeeded. Why won’t the website load?

A successful update only means the list was retrieved. Go to Home, select a working server, run Connectivity Test, and check Global Routing. If only certain destinations fail, review their requests in Data and check the corresponding rules in Config instead of repeatedly deleting and re-adding the entire subscription.

Data shows traffic. Does that mean all requests go through the proxy?

No. Check the current selection under Home → Global Routing, then review runtime information for the specific destination. Under Config, different requests may match different policies. Total traffic and the route used by a particular request are different metrics. Check the destination, time, and handling policy together.

Use the same sequence for routine checks: Home for connection status and the selected server, Global Routing for the overall handling mode, Config for the rules, Data for request results, and Settings for automated behavior. This avoids guesswork between English labels and makes it easier to describe an issue clearly: which page, which option, and what happened.

Verify on the App Store →