Shadowrocket Features & Settings
Choose how Global Routing handles traffic, then check your server, rules, and DNS. The connection toggle, routing mode, and server selection control different parts of the setup. One setting alone cannot confirm that the entire connection is working.
- Home & Config
- Data & Settings
- Importing and managing existing connection details
This page covers common Shadowrocket features on iPhone and iPad, explaining what each feature does, where to find it, how to configure it, and what to watch for. Interface labels remain in English; the explanations describe their purpose. Available options and system features may vary by device. For a first-time setup, start with the Getting Started guide. If you already know what is going wrong, see the troubleshooting manual.
Global Routing: Config, Proxy, and Direct
Global Routing determines how traffic is handled when the connection is on. In Home, open Global Routing and choose Config, Proxy, or Direct based on what you need. This is not the server list or a connection status indicator: after choosing a mode, check the default server and the main connection toggle as well. If the app offers more specific routing options, review them alongside the active Config.
| Option | How it works | When to use it | What to check |
|---|---|---|---|
| Config | Handles requests according to the rules and policies in the active configuration. | Everyday routing by domain or address. | The active configuration, rule order, and fallback policy. |
| Proxy | Routes traffic through the proxy mode; the exact behavior depends on the relevant configuration. | Temporarily test the proxy route to narrow down a rules issue. | The selected server, authentication details, and reachability of the destination. |
| Direct | Handles traffic in direct mode; the exact behavior depends on the relevant configuration. | Temporarily check direct access on the current network. | Whether the local network works and how DNS is configured. |
How to check a routing mode change
For everyday use with an existing routing configuration, select Config and check which file is active in Config. If a particular destination is unreachable, temporarily switch to Proxy and test the same destination with the same server. If it works in Proxy but not Config, check rule matching and policy targets first rather than changing all your connection settings. Restore the original mode when you’re done so a temporary troubleshooting change doesn’t become a permanent setting by mistake.
Direct does not mean the app is disconnected. While the connection is on, DNS and other connection handling may still be affected by current settings. To find out whether the issue is with your local network, turn off the main connection toggle and test the same destination again. Change one setting at a time and note the result to distinguish between routing mode, server, and local network issues.
Routing rules: match criteria and actions
Routing rules separate what a request matches from what happens next. Open the active configuration in Config to review or edit its rules. Rules are applied according to the configuration’s logic when the corresponding routing mode is in use. Before editing, keep a copy of the original file and confirm you’re working on the active configuration, not another file with a similar name.
Rule types describe what to match
DOMAIN matches a specific domain, DOMAIN-SUFFIX matches a domain suffix, and DOMAIN-KEYWORD matches a keyword in a domain. A suffix rule is useful for matching a domain and its subdomains. Keyword rules are broader and may catch domains you didn’t intend to include, so make them as specific as possible.
IP-CIDR and IP-CIDR6 describe IPv4 and IPv6 address ranges, respectively, while GEOIP uses an IP geolocation category. Whether a domain needs to be resolved first, and which address it resolves to, can affect the result of an address-based rule. Don’t confuse a failed domain match with a DNS failure, or assume which rule matched based on the destination’s name alone.
Policies specify what action to take
PROXY routes traffic through a proxy, DIRECT connects directly, and REJECT blocks the request. A configuration may also refer to a custom policy group; if so, check which server the group ultimately selects. Rules are generally evaluated in order, so put specific rules before broader ones. FINAL handles requests that don’t match any rule above it.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,example,PROXY
FINAL,DIRECT
These examples show rule syntax, not a complete configuration. The second line covers a broader range than the first to illustrate two matching methods. In practice, tailor the rules to your needs and check whether the keyword rule is necessary. After adding a rule, test it with a specific destination domain before adding another. This makes it easier to identify problems than changing several conditions at once.
Subscribe and Add Server: manage existing details
Home is where you select a server, view groups, and connect. Add a single server with Add Server; import an existing subscription using the relevant Subscribe option in the app. Both methods require details you already have. A subscription provides server details in bulk, but importing it doesn’t guarantee that every entry will connect or that the app purchase includes those services.
Add a server manually or scan a QR code
In Add Server, check Type first, then enter Address, Port, and the required authentication details. Shadowsocks, VMess, VLESS, Trojan, WireGuard, and Hysteria2 each require different fields. Don’t reuse a password or key from one protocol for another. Check optional fields against the details you have; if you’re unsure, leave them unchanged and ask the provider of those details.
If you have a QR code, use Scan QR Code to import it, then check the imported type, address, and port. Scanning is just an input method; it doesn’t replace checking the parameters. Give the server a recognizable name, return to Home, and select it as the default server. Confirm it’s selected before turning on the connection. Seeing an entry in the list only means the details were saved; it doesn’t mean a connection was established.
Subscription updates and protecting sensitive details
Paste the full subscription URL, making sure there are no spaces or line breaks at either end. Updating a subscription refreshes the list, so names, groups, or entries may change. After an update, check that your previously selected server is still there. Before editing an entry generated by a subscription, check whether a later update could overwrite your changes. Keep a separate record if needed.
Treat subscription URLs, passwords, private keys, and authentication details in configurations as sensitive information. You don’t need to share the full URL to troubleshoot; describe where the error occurs and remove account and authentication details. Before bulk-deleting, reimporting, or changing configurations, back up any details you need. A changed server list doesn’t mean your app purchase record has been lost.
On Demand: connect automatically under certain conditions
On Demand triggers connection behavior under conditions you specify. It doesn’t test server quality or fill in missing authentication details. Open the relevant On Demand settings in the app, review the current conditions, and adjust them as needed. If the option is elsewhere in your version, look for it in Settings; follow the labels shown in the app.
Before configuring On Demand, test the connection manually: select a server, turn on the main connection toggle, allow the system to add the VPN configuration, and confirm that you can reach your destination. If manual connection fails, troubleshoot the server, DNS, or network first; repeatedly toggling On Demand usually won’t fix the underlying issue. Once manual testing works, check the trigger conditions and observe the results on the network where you intend to use them.
The connection state may change when switching between Wi-Fi and cellular, waking the device from the lock screen, or changing networks. Check each situation separately. If the connection keeps dropping and reconnecting, first check whether On Demand is still enabled, then look for other system configurations that might affect the VPN. During troubleshooting, temporarily turn off On Demand and use the manual toggle. Restore it after testing one condition at a time.
Data: review traffic and connection activity
Data shows traffic information recorded by the app. The categories, reporting period, and expandable details depend on the current interface. In Data, check the time and reporting range, then compare them with the activity you just performed. It can help confirm whether the app recorded related activity, but a cumulative total alone doesn’t indicate current server speed or service status.
For a comparison, note the start time, pause any background tasks you don’t need, and visit a known destination. Then return to Data and check for a corresponding change. If the interface shows connection details, review the destination, handling policy, and related records. Traffic activity doesn’t mean the destination loaded successfully; failed authentication, retries, and background sync can also transfer data.
Data may use different reporting methods from the system’s cellular data statistics or usage records in an existing service account, so it shouldn’t be used as a substitute for billing records. Save any troubleshooting information you need before clearing records. Before sharing them, remove personal identifiers in destinations, account details, and server information. If battery drain is the main concern, also check the system’s battery page and background activity rather than relying on total traffic alone.
Settings: DNS, tests, widgets, and sync
Settings brings together common options and tools, but not all network behavior is controlled there. The active Config may also contain DNS or other related settings. Check for duplicate settings in the configuration before changing a global option. Menu locations may differ across devices and system versions, so look for the feature by name rather than assuming every device has the same menu path.
DNS: check for a resolution issue before changing settings
DNS resolves domain names to addresses. Check DNS-related options in Settings and the active Config, and note their original values and your current network before looking for duplicate or conflicting settings. If the server address is a domain name, it may also need to resolve before the connection can be established. Troubleshoot an unreachable website separately from a failure to resolve the server address.
When changing DNS, adjust one related option at a time and retest the same domain. Check whether the issue occurs only on a particular network. Don’t replace the entire configuration just because a DNS address is commonly used, and don’t assume encrypted DNS will make every connection work. If the change doesn’t help, restore the original value and check routing rules, server settings, and the local network next.
Test Method and Connectivity Test: know what’s being measured
Test Method selects the method used for a test; check Settings to see which options are available. Connectivity Test helps check a connection. Different methods measure different parts of the connection, and a server returning a test result doesn’t mean every website is reachable. Before testing, confirm the default server, network, and test destination. Use the same method when comparing results.
If a test fails, first check that the method and destination are appropriate for the current server, then review the address, port, and authentication details. If the test succeeds but browsing fails, check the destination’s rules and DNS. Don’t compare numbers from different test methods as if they indicated consistent reliability or long-term speed.
Today Widget: check system support and what it shows
Today Widget is a system widget feature. Check its settings in the app, then look in the system’s widget management area to see whether you can add it and what information it displays. Availability and features depend on system support. A missing widget doesn’t necessarily mean the server is faulty.
The widget is useful for a quick glance or the actions it provides. To check the selected server, routing mode, or detailed errors, return to the app. If the widget and app temporarily show different states, open the app and check again, then verify system support for the widget. You don’t need to delete your existing configuration just because of a mismatch.
iCloud: sync scope and separate backups
Where supported, iCloud features save or sync certain configuration data. Check the relevant switches and app notes in Settings, and make sure iCloud access is allowed for the app in your device’s system settings. Keep a separate backup before syncing. After opening the app on another device, check which files and details actually appear rather than assuming all servers, keys, and settings have transferred.
App Store purchase records and configurations in iCloud are separate. Restoring a purchased app doesn’t restore all connection details, and syncing configurations doesn’t replace checking purchase eligibility. Before switching devices, see the configuration backup and migration guide. Confirm you have a usable copy before changing anything on the old device.
Diagnostics: capture a minimal reproducible case
Diagnostics provides information for troubleshooting; the available tools and output depend on the options shown in Settings. First note the network type, Global Routing mode, when the issue occurred, and the steps that led to it. Then run the relevant diagnostic. This links the results to a specific failure and makes them easier to interpret.
Diagnostic files may contain domains, addresses, device details, or configuration information. Review the contents and remove sensitive details before exporting or sharing them. Keep only the error information needed; don’t share full subscription URLs, authentication details, or private keys. For step-by-step troubleshooting by symptom, see the troubleshooting manual.
Setup checklist: establish a baseline, then adjust one thing at a time
Set up features to achieve a specific goal, such as routing a particular domain through a proxy or connecting only under certain network conditions. Keep a copy of the working configuration and note the initial server, mode, and DNS settings. Don’t update a subscription, edit rules, and change DNS all at once. If access starts working again, you won’t know which change fixed it.
- Check your connection details. In Home, confirm that the server is listed and that Type, Address, Port, and authentication details match what you have. Verify which server is selected by default.
- Establish a manual connection baseline. Temporarily rule out On Demand triggers by connecting manually, then test the current connection with a specific destination.
- Confirm Global Routing. Use Config for everyday routing checks. Switch modes temporarily for comparison, then restore the original mode and note the results.
- Check rules and DNS. First confirm that the destination matches the expected rule, then check DNS and policy group targets. Change one thing at a time.
- Review automation and activity. Restore any On Demand conditions you need, check the actual behavior in Data and Diagnostics, and save a working configuration.
If your connection already works as needed, there’s no need to enable every feature just to use more settings. A configuration you can understand, verify, and restore is easier to maintain than one with several options whose purpose is unclear. This is part of the Shadowrocket official manual. For purchase and installation details, see the App Store guide; for your first setup, see Getting Started. For specific issues, browse the FAQ.