Shadowrocket
Features and Common Settings
Check Global Routing first, then review Config and your server. Follow the connection path to understand each feature, and avoid changing modes, rules, and protocol settings all at once.
Global Routing: Config, Proxy, or Direct
Global Routing determines how connections are handled overall. Open Global Routing from Home and choose Config, Proxy, or Direct. These options apply a configuration, use a proxy, or connect directly; they are not separate servers or speed tiers. Before choosing a mode, decide whether you need rules to route requests differently or want to temporarily test a connection path.
| Option | What it does | When to use it | What to check |
|---|---|---|---|
| Config | Handles requests according to the rules in the currently enabled configuration. | For everyday routing based on destination. | The enabled Config, rule order, and final policy. |
| Proxy | Routes traffic through a proxy, subject to the limits of what the system and app can handle. | To temporarily test the selected server's connection. | The selected server and its protocol settings in Home. |
| Direct | Connects to the destination directly over the current local network. | To compare the local network path with the proxy path. | Whether the local network can reach the destination and whether other network settings are involved. |
- Note the currently selected server in Home, then open Global Routing.
- For everyday routing, choose Config and check which configuration is enabled on the Config screen.
- To troubleshoot a connection, briefly switch to Proxy or Direct and compare access to the same destination.
- After testing, restore the original mode and try the connection again. Existing long-lived connections may not reflect the new settings right away.
Proxy can help determine whether a problem involves rules, but it cannot fix an incorrect server address, authentication details, or DNS. Direct does not disable all system networking behavior. When troubleshooting, note the connection toggle, current mode, and destination; do not rely only on which option is selected.
Config and Rule-Based Routing
Rules link a destination to a policy. Select and enable a configuration on the Config screen, then set Global Routing to Config to check how that configuration routes traffic. A file appearing in the Config list does not mean it is currently active.
When reading a rule, check its type, match criteria, and policy—in that order. DOMAIN matches an exact domain, DOMAIN-SUFFIX matches a domain suffix, and DOMAIN-KEYWORD matches a keyword in a domain. IP-CIDR and IP-CIDR6 specify address ranges; GEOIP relies on the relevant IP database; USER-AGENT depends on information identifiable in a request and cannot cover every app or encrypted request.
| Policy | Meaning | What to check |
|---|---|---|
PROXY | Route through a proxy. | Check the policy referenced by the current server or configuration. |
DIRECT | Use a direct connection. | Check whether the local network can reach the destination. |
REJECT | Reject matching requests. | Confirm that blocking matches the intent of the configuration. |
| Custom policy name | References a policy or policy group defined in the configuration. | Check that the name exists and that the group selection is valid. |
Rules are generally checked in order, so the first match affects what happens next. Put more specific exceptions before broader rules where appropriate. FINAL handles requests not matched by earlier rules. Change one condition at a time and keep a copy of the original configuration; changing rule order, DNS, and server settings together makes it hard to identify the cause.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
This is a syntax example, not a complete working configuration. It sends the example domain suffix through PROXY, routes the specified local address range through DIRECT, and sends other requests to the policy specified by FINAL. For actual use, check the rest of the active configuration and the server settings. See the quick reference for explanations of rule keywords.
Subscriptions and Server Management
A server entry stores the protocol and authentication details for one connection; a subscription retrieves and updates a group of entries. For Subscribe on the Config screen, first identify whether the imported content is a configuration file or a server list. Do not infer its purpose from the link alone. Even if both use network URLs, they may require different import options.
- To add an individual server, open Add Server from Home, choose the protocol specified by your existing server details, then enter the address, port, and authentication fields.
- To import an existing share link, use the clipboard import option shown in the app. For an existing QR code, use Scan QR Code, review the preview, then save.
- Import an existing subscription using the option for its content type. After saving, check that the group name, server entries, or configuration file match what you expect.
- Before connecting, select an entry in Home. After an update, check the selection again so you do not keep using an entry that has expired or been removed.
A successful subscription update only means that the content was retrieved and processed; it does not mean every server will connect successfully. Connectivity Test can help with an initial check, but results depend on the test method, network conditions, and whether the destination is reachable. After sorting, check server names and groups rather than treating list positions as fixed identifiers.
Before deleting anything, confirm whether you are removing an individual entry, an entire subscription group, or a Config. Refreshing subscription content may overwrite manual changes, so keep a separate record of any local settings you need to retain. Share links, QR codes, exported files, and subscription URLs may contain authentication details; do not include them in public screenshots, logs, or feedback attachments. See the subscription and server management manual for the full workflow.
Multiple Protocols and Connection Settings
Shadowrocket supports several proxy and tunneling protocols, including Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, and Hysteria2. Protocol names describe connection methods, not quality levels. Choose the protocol specified by your existing server details rather than switching protocols repeatedly to look for one that works.
In Add Server, select a protocol first, then enter the fields it requires. Address and port are the basics; some protocols also require a password, identifier, key, TLS settings, or transport parameters. After importing a share link, check that all fields are present. In particular, the server address may differ from the name used for certificate verification.
If authentication or a handshake fails, compare the settings with the original server details first. Check the port, authentication information, TLS name, and device time. Do not routinely disable certificate verification as a fix. A working connection with one protocol does not confirm that another protocol's settings are correct. Keep other conditions unchanged and check one field at a time to pinpoint the issue.
On Demand Automatic Connections
On Demand lets the system trigger connection behavior based on conditions you set. It does not provide a server or replace the routing choice in Global Routing. Find On Demand in Settings and review the available network conditions and actions; options vary, so check the app interface.
- First turn off automatic triggers, select a server manually, and verify access to a destination.
- Make sure Config and Global Routing are set as expected, then configure the conditions you need in On Demand.
- After saving, switch to the relevant network environment and check the connection status. Then leave that environment and verify that the behavior matches your settings.
If the connection comes back after you disconnect manually, check On Demand before deleting the system VPN configuration. Network changes, device sleep, and system scheduling can all affect when a trigger runs; one status change alone does not mean a rule has failed. Temporarily turn off On Demand while troubleshooting, test a manual connection, then turn it back on to avoid automatic actions affecting the results.
Data Usage Statistics
Data shows traffic records and statistics available to the app. Use it to compare whether traffic appears before and after connecting, see whether data continues to flow over time, and review how related requests were handled. Open Data and check the reporting period and record timestamps before reviewing upload, download, or connection details. Do not judge network status from a single cumulative number.
Note the current values, open a specific destination, then return to Data and compare. Existing connections may continue transferring data in the background, so limit activity in other apps where possible. If the current screen offers a reset option, record any details you need to keep before resetting so you do not lose useful troubleshooting information.
Data is not a billing statement for a service you use. Measurement methods, protocol overhead, reporting periods, and service-side billing can all differ; local records may not cover all network activity on the device. An increase in traffic only shows that data passed through the relevant path. It does not prove that the destination loaded completely or reveal how much of a subscription remains.
Settings Common Options
Settings controls general behavior and tools, while Config may contain options specific to the active configuration. If a related option appears in both places, first check its scope, then see whether the current configuration overrides the general setting. Options may appear in different places across devices and app versions. Look for the English label and follow the options shown in the app.
DNS: Domain Name Resolution
DNS resolves domain names to addresses used for connections. When checking DNS, review the relevant options in both Settings and the current Config. If a domain does not open but a known address is reachable, DNS may be involved, but certificates or the destination service could also be the cause. Do not jump to a single conclusion.
Record the original DNS settings first, then check whether the specified resolver is reachable over the current network path. Change one option at a time and compare results after making another request. Changing DNS alone will not update server authentication or correct a routing rule. Caching and existing connections may also delay the effect.
Test Method
Test Method selects how connectivity tests are performed. Check this option in Settings before running Connectivity Test. Different methods may measure different kinds of reachability, so do not mix their results when sorting or comparing. If you change the method, test again under the same network conditions.
A faster test response does not mean higher sustained throughput, and a failed test does not necessarily mean all real requests will fail. First confirm that the test target and method suit the current network, then verify with an actual connection. To compare multiple servers, keep the method, target, and network conditions consistent.
Today Widget: Quick Access and Controls
Today Widget includes settings for system widgets. Check the available Today Widget options in Settings, then add the widget using the method supported by the device's current system. After adding it, verify the displayed server and connection status. After using a quick action, return to Home to confirm the result.
Widget availability, refresh frequency, and available actions depend on system support. A status shown in the widget may be out of date, so do not treat it as proof of the current connection state. If the display does not update, open the app to check first, then review the widget settings. Avoid repeatedly switching servers or rebuilding the configuration.
iCloud: Sync and Backup Scope
Check the iCloud options in Settings and review what can be synced before enabling the options you need. The device must be signed in to the relevant iCloud service and allow the app to use the required capabilities. Before the first sync, keep a copy of important local configurations. Do not change settings on multiple devices until you have confirmed the sync direction.
App purchase history, configuration syncing, and server credentials are separate matters. iCloud sync does not restore all subscription content or replace App Store purchase history. After using Shadowrocket on multiple devices, check the selected server in Home, the active Config, and Global Routing on each device.
Diagnostics
Diagnostics provides tools to inspect or collect information related to connections. Find the tool in Settings, reproduce the issue you need to investigate, then follow the on-screen instructions. Recording the network, current mode, destination, and steps that triggered the issue is more useful than repeatedly generating diagnostic data without context.
Diagnostic information may include domains, addresses, connection records, or other sensitive details. Review it before sharing and remove subscription links and authentication information. Do not publish your full configuration to send feedback. After troubleshooting, restore any logging options you enabled temporarily to your usual settings.
Feature Check Order
Settings depend on one another: start with valid server details, choose the overall connection mode, then check rules and automatic connections. When something goes wrong, inspect each layer in the order below. This makes it easier to pinpoint the cause than changing every switch at once.
- Check the local network. Confirm that the network itself is working. Note whether you are on Wi-Fi or cellular, and keep the network conditions unchanged for now.
- Check Home. Confirm that the selected server matches the original details, then check the connection toggle and system authorization status.
- Check Global Routing. Use Config for rule-based routing. For comparison tests, note the results with Proxy or Direct.
- Check Config and DNS. Confirm that the expected file is enabled, find the relevant rules and the policy used by FINAL, then review DNS settings.
- Check automatic behavior and records. Rule out On Demand, then use Data, Connectivity Test, and Diagnostics to narrow down the issue.
After each change, retry the same destination and keep a record of the previous settings and results. Once the issue is resolved, restore your usual mode and automatic connection conditions. For the complete first-time connection process, see the user guide. To manage multiple subscriptions or organize servers, see server management—keep configuration maintenance separate from connection troubleshooting.