Official User Manual · Features and Settings
Shadowrocket Routing Modes and Settings
Global Routing determines how connections are handled. Config stores rules and network parameters, while Home is where you manage servers and connection status. Understand these three layers before changing On Demand, DNS, or test settings so you can tell what each change affects.
This guide focuses on common tasks on iPhone and iPad. Menu locations may vary by device and app interface; follow the options shown in your current app. For system requirements, refer to the App Store listing.
- Routing modes: Config / Proxy / Direct
- Rule processing: matches from top to bottom
- Settings: change one thing at a time
Home · Global Routing
When to use each routing mode
Global Routing is on Home and lets you choose how connections are handled overall. The three modes are Config, Proxy, and Direct. When navigating the app, identify them by their English labels. Open Global Routing, select a mode, then return to Home to check the selected server and connection toggle. Selecting a mode and starting a connection are separate actions; changing the mode alone does not establish a connection.
| Mode | How it works | When to use it | Check first |
|---|---|---|---|
| Config | Applies the policy specified by the active configuration’s rules | Everyday routing by domain or address | The active Config, rule order, and final rule |
| Proxy | Routes applicable connections through the selected proxy | Temporarily checking whether the proxy route works | The selected server and its connection settings |
| Direct | Sends applicable connections directly to their destinations | Checking the local network or comparing direct access | Whether the local network can reach the destination |
Config: route connections by rule
Choose Config when you want some sites to use PROXY and others to use DIRECT. First, check which file is active on the Config page, then return to Home and select Config. Editing a rule file that is saved but not selected as the active configuration will not change routing. When troubleshooting, distinguish the policy name in the file from the server selected on Home: the policy determines how traffic is handled, while the selected server affects where proxied connections go.
Proxy: test the proxy route
Proxy can help narrow down a problem. For example, if the same destination works in Proxy mode but fails in Config, check the matching rule and DNS before changing server settings across the board. Proxy mode does not guarantee that every system connection uses the proxy; system traffic, existing connections, and configuration-specific bypass behavior must be considered separately. Restore the mode you need after testing.
Direct: test the direct route
Direct connects to the destination directly; it does not turn off the connection toggle on Home. To keep the app connection active while comparing local network access, temporarily select Direct. To stop the VPN connection established by the app, use the toggle on Home and check whether On Demand reconnects it. Direct does not reset DNS settings; check name resolution separately.
Config · Rule
Rule types and policies
Each rule consists of a matching condition and a policy. Rules are typically edited in the Rule section of the active configuration on the Config page. Rules are evaluated in order, and the policy for the first matching rule is applied, so specific rules should come before broader ones. Save a recoverable copy of the configuration before editing, then verify that the edited file is active. To test the change, start a new request rather than treating an existing connection as evidence of how the new rule works.
| Keyword | What it matches | Notes |
|---|---|---|
DOMAIN | A complete domain name | Use when matching a specific hostname |
DOMAIN-SUFFIX | A domain and its subdomains | Do not include the scheme or page path |
DOMAIN-KEYWORD | A keyword contained in a domain name | Has a broad scope; watch for unintended matches |
IP-CIDR / IP-CIDR6 | An IPv4 or IPv6 address range | Make sure the address and prefix length match |
GEOIP | Geographic data associated with an address | Results depend on the IP database and resolution results |
FINAL | Connections not matched by earlier rules | Usually used as the fallback at the end of the rules |
PROXY, DIRECT, and REJECT
PROXY routes traffic according to a proxy policy, DIRECT connects directly, and REJECT blocks the connection. These are policy keywords in rules, not server protocols. If your configuration uses a custom policy group, also check the group’s selection and available members. A name at the end of a rule does not by itself prove that traffic will use a particular server.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
This example routes example.com and its subdomains through PROXY, while unmatched connections use DIRECT. example.com is only a rule example, not a server or subscription. A website may load images, sign-ins, or API requests from other domains, so seeing its home page does not mean every related request matched the same rule. To add rules, check the actual request records to identify the domains instead of continually broadening keyword matches.
For more on configuration structure, see Configuration File Sections. To route only a few sites, see Rules for Routing Selected Sites.
Home · SERVER · Subscribe
Managing subscriptions and servers
The SERVER section on Home is where you view and select servers. A subscription is a way to import or update server details you already have in bulk; neither one is the same as rule configuration. The steps below assume you already have your own subscription or server details. This guide explains how to manage and use them; it does not provide, sell, or recommend nodes or subscriptions.
Add Server: enter existing details manually
On Home, open Add Server and select the Type that matches your existing details. Enter the address, port, and authentication fields. Different protocols, including Shadowsocks, VMess, VLESS, and Trojan, require different fields; do not select a Type just because the address is the same. Check TLS, transport, and related name fields against your original details. After saving, select the entry in SERVER and run Connectivity Test.
Subscribe: import and update an existing subscription
In Add Server, select the appropriate Subscribe type and enter your existing subscription URL. After saving, check the imported group and entries. Subscription URLs may contain credentials, so make sure the URL is complete and has no leading or trailing spaces or line breaks before pasting it. Do not share it in screenshots, articles, or chats. For the full import process, see Importing Existing Subscriptions and Servers.
Updating a subscription reloads the entries provided by its source; it does not update the app. After an update, check that the server you use is still listed, whether its name or group changed, and whether any manually edited fields were overwritten. Before removing duplicates, check whether an entry came from a subscription or was added manually; subscribed entries may reappear at the next update. QR codes and other import methods are also for importing details you already have. Check the protocol and settings after import.
Settings · On Demand
When On Demand connects
On Demand can trigger connection behavior based on network conditions, such as joining a particular Wi-Fi network, using cellular data, or meeting domain-related conditions. It controls when to connect; Global Routing controls how connections are routed after that. They are not interchangeable. Confirm that a manual connection works before setting up automatic triggers.
Find the On Demand options in Settings and add rules using the conditions available in your current interface. Start with one reproducible condition, such as a Wi-Fi network name, then switch networks and observe what happens. Once connection and disconnection behavior is as expected, add other conditions. If there are multiple rules, check their order, applicable networks, and actions so a broader rule does not match first.
The Wi-Fi name must match the actual network. Verify cellular conditions by switching to a cellular connection. Do not rely on an already-open webpage to test a domain trigger; cached content and existing connections can affect the result. Close old pages, start a new request, and check the connection status in both the system and Home.
If the connection comes back after you turn it off manually, check On Demand before repeatedly deleting configurations. For troubleshooting, temporarily disable the relevant triggers and test the manual toggle. Restore them when testing is complete. For a full guide to setting conditions, see Using On Demand for Wi-Fi and Cellular Connections.
Data
How to read traffic statistics
Data shows traffic recorded by the app and can help you check whether data was transferred during a connection. Open Data and identify the displayed statistics, time range, and upload and download values before comparing changes. The app’s statistics may use different measurement criteria from system cellular usage or network service billing; do not use one figure as a direct substitute for another system’s billing data.
To investigate an issue, note the current readings, perform one specific access test, then return to Data and check for changes. If the app offers a reset option, use it only after confirming you no longer need the existing records. Resetting statistics does not reset servers, rules, or usage reported by remote services. Background activity can also transfer data, so minimize requests from other apps during the test.
If you see uploads but not the expected downloads, that only shows that the transfer did not complete as expected; it does not identify whether the cause is the server, DNS, or the destination’s response. Check Connectivity Test and request records for more clues. Data does not promise a connection speed: a short request’s traffic change does not indicate sustained download performance or replace testing the service you actually need.
Settings · Common Options
DNS, testing, and other settings
Settings brings together app behavior and utility options, but some network parameters may come from the active Config. Before changing an option, determine whether it affects the app as a whole or just one configuration file. Menu locations, availability, and system support may vary by device. The guidance below explains what to check without assuming that every device has the same interface.
DNS: check where the setting takes effect
DNS resolves domain names to addresses. When checking DNS options in Settings, also inspect the General section of the active Config for fields such as dns-server. Record the original value and change only one source at a time. Avoid changing DNS, the server, and Global Routing together; otherwise, even if access is restored, it will be hard to tell what fixed the problem.
[General]
dns-server = system
This line shows the system-provided DNS settings as an example of what the field means; it is not a universal recommendation for every network. If a test responds but a webpage will not load, check name resolution, connection establishment, and the destination’s response separately. Cached DNS results may make a change appear ineffective. Start a new request to verify it and confirm that the intended configuration is active. See Troubleshooting DNS Resolution Failures.
Test Method: use consistent test conditions
Test Method determines how Connectivity Test runs. Check the current option in the testing section of Settings, and adjust the test target or method if the interface allows it. Different methods measure different stages, so results from different test conditions cannot be ranked directly. When comparing servers, keep the test method, target, and network the same.
A successful Connectivity Test only means that a response was received under those test conditions; it does not prove that every website or protocol works. If the test relies on a particular target, that target being unreachable can also cause it to fail. Check the test conditions first, then verify access to a destination you actually need.
Today Widget: check widget access
Today Widget is for widgets or quick views supported by the system. Check the related options in Settings, then look in the system’s widget management area to see whether it can be added. Available formats and actions depend on system and app support, so do not assume that a layout seen on another device will be available on yours.
If the status after using a widget does not match what you expected, return to Home and check the connection toggle, selected server, and Global Routing mode. A widget is a shortcut, not a replacement for the full settings page. Initial system permissions, editing options, and detailed troubleshooting still need to be handled in the relevant app or system settings.
iCloud: understand syncing and recovery
iCloud features can save or sync data where supported. Before using them, check that the device is signed in to the intended iCloud account, that the system allows the app to use iCloud, and which specific items the app can sync. Do not assume that enabling sync covers every server, configuration, history item, or statistic; check the current in-app description for the actual scope.
Before switching devices or merging data, keep a separate backup, wait for syncing to complete, then check the active Config and SERVER entries. App Store purchase history and configuration sync are separate: restoring an app purchase does not recover connection details. Treat any saved credentials as sensitive information and avoid displaying synced or exported data in public.
Diagnostics: save relevant troubleshooting information
Diagnostics provides information that can help troubleshoot issues. Note when the problem occurred, the current network and routing mode, and the steps to reproduce it. Then open the Diagnostics options in Settings and review what is available. If the interface has an additional logging toggle, enable it only for as long as needed to reproduce the issue, then restore your usual settings.
Before sharing diagnostics, check for subscription URLs, server details, credentials, visited domains, or personal network names, and redact them as needed. More logs do not necessarily make an issue easier to diagnose. A record tied to a specific action and time is usually more useful than a large volume of data collected after repeatedly changing settings at random.
Recommended check order
Work through changes in sequence
- Preserve the original state. Note the active Config, Global Routing mode, and selected server, and save a recoverable copy of the configuration. Do not include full credentials in public records when handling subscription or account details.
- Check the local network first. Confirm that Wi-Fi or cellular data works. To compare routes, temporarily select Direct and restore the original mode after testing. Keep local network problems separate from rule errors.
- Verify the existing server. Check the Type, address, port, and authentication fields, then run Connectivity Test using the same Test Method. Follow up by accessing the actual destination to confirm that more than just the test request works.
- Adjust rules last. In Config, check rule order and FINAL, changing only one thing at a time. Start a new request and confirm that the destination and related requests use the expected policy.
- Restore automatic behavior. Once the manual connection is stable, re-enable On Demand and check what happens when networks change. Then review Data and any necessary Diagnostics, and finish by ending temporary tests and extra logging.
New users can follow the quick start guide to complete initial setup in order. If you are troubleshooting a specific symptom, go to connection issues in the troubleshooting guide. For interface labels and rule keywords, see the glossary.