01 / SCOPE
Settings scope, current values, and a safe order for changes
Shadowrocket’s behavior depends on several layers: the system network determines whether a server is reachable, the server entry defines connection parameters, Config supplies rules and related settings, Global Routing selects the current routing mode, and Settings provides app-level options. When a request fails, a switch’s position alone won’t identify the cause. First find which layer failed, then check the relevant settings.
Distinguish app settings, configuration files, and server parameters
Settings are not the same as the full contents of the active configuration file. Some behavior also depends on the Config in use, protocol capabilities, and system permissions. Options with similar names in different places do not necessarily override one another. Note the current Config name, server name, and selected Global Routing mode before reviewing an option. When comparing values, use the fields shown in your current app.
Server details usually include an address, port, authentication information, and protocol-specific fields. These define the connection endpoint and shouldn’t be changed to alter routing. Rules in Config determine which policy handles a request. Changing a server port to the local Proxy port, or treating a subscription URL as a configuration file URL, confuses different kinds of data. Even if the app lets you save the change, that doesn’t mean the connection will work.
Names and ordering on the Settings screen may vary with the current app interface. This guide keeps English names such as DNS, On Demand, Ping, and Log, but doesn’t present unverified initial states as universal defaults. A device that has been used before may retain changed or synced values, so its current values aren’t necessarily the same as the defaults on first install. For troubleshooting, record what you actually see rather than relying on memory to restore supposed defaults.
Choosing recommended values when defaults are unknown
The general recommendation is to keep settings that are known to work and change only what’s needed to address a specific issue. For server protocol parameters, use values that match your existing details exactly. For optional features such as On Demand, sync, and local listeners, confirm their purpose and scope before enabling them. These recommendations aren’t a set of numbers for everyone to copy; each choice should have a clear reason and be repeatable in testing.
| Settings source | How to check current values | Recommended approach |
|---|---|---|
| Settings | Use the values shown in your current app | Record first; change one setting at a time |
| Config | Check which file is selected | Keep a copy you can restore |
| Add Server | Depends on the entry and protocol | Match your existing server details |
| System permissions | Check in system settings | Confirm the permission actually granted in the system prompt |
Before making changes, write a brief note with the network type, whether you can connect, the affected destination, and your current settings. Don’t include plaintext passwords or a full subscription URL. If the issue occurs only on a particular Wi-Fi network, test on another available network first. If only one destination fails, check the matching rule. This helps distinguish a general problem from a local one and avoids using a setting that affects all requests to fix a single issue.
Make changes in a way you can roll back
Change one type of variable at a time and retest the same destination. For example, when testing DNS, leave the server, routing mode, and rules unchanged. When testing server parameters, don’t update Config at the same time. After each change, confirm it was saved; disconnect and reconnect if needed to establish a fresh connection state. If things get worse, restore the value you just recorded instead of stacking more unverified changes.
Back up the content you may actually need to restore. Saving Config alone doesn’t save server authentication details, and keeping server entries doesn’t preserve all your rules. Before exporting or copying anything, check what the current app’s action includes and save it somewhere you control. Backups may contain sensitive information, so don’t share them publicly when asking for help. Sync is not a substitute for a separate, verified backup.
Roll back from the most recent change outward: undo the latest change, check which configuration is selected, then review the server and local network. Don’t start by deleting all your data. If you need to reorganize everything, first make sure your backup opens and contains the key details, and check the App Store status for the account used to purchase the app. This guide is meant to make every change deliberate, not to make every option look tidy in one particular way.