In this guide

This guide is for people who have just installed Shadowrocket and already have a service provider and subscription of their own. Follow the steps in order: get the app, learn the interface, import connection details, choose a routing mode, and connect for the first time. Then learn how On Demand, configuration rules, and subscription updates work. By the end, you’ll be able to tell whether an issue stems from importing, system authorization, server connectivity, or rule matching—without repeatedly changing every setting.

1. Can I connect as soon as I buy the app?

Buying Shadowrocket gives you a license to use the client, not a connection service. It is a closed-source commercial app for Apple platforms, primarily used on iPhone and iPad, and is available exclusively on the App Store. The store listing also includes compatibility information for Mac, Apple TV, and Apple Vision. Check the App Store listing for system requirements and Universal Purchase availability.

The one-time purchase of the client is separate from any fees charged by your own service provider. Before setup, have your subscription URL or the complete server address, port, and authentication details ready. A server name, a latency figure in a screenshot, or a password alone isn’t enough to create a working connection. This guide covers using connection details you already have; it does not cover obtaining a connection service.

2. What are Home, Config, and Settings for?

First, distinguish the server list from configuration files. Entries in Home describe where to connect and which protocol to use. Files in Config describe how requests match rules and which policies handle them. Importing a server doesn’t mean you’ve selected a suitable rules file, and saving a configuration file doesn’t mean the server’s authentication details are complete.

Home
View and select servers, add connection entries, toggle the connection, and choose the current routing mode with Global Routing. Connectivity Test checks the server connection.
Config
Manage and select configuration files. To inspect [General], [Rule], or routing policies, open the file currently in use here.
Settings
Change app settings. For example, go to Settings → On Demand to review connection triggers, or Settings → Subscribe to check subscription update options.

For an initial check, confirm the selected server and Global Routing in Home, then check the active file in Config, and finally review Settings for automatic connection or update options. This order helps avoid editing an inactive configuration and mistakenly concluding that its rules aren’t working.

3. How do I import my subscription URL?

To add a server subscription, tap “+” in the top-right corner of Home, open Add Server, and select Subscribe under Type. This adds a server list subscription; it’s separate from the rules configuration managed in Config. Before importing, make sure you have the complete subscription URL—not an account sign-in page or a webpage that requires browser interaction.

  1. Open Add Server

    Go to Home and tap “+” in the top-right corner to open Add Server. Select Subscribe under Type; don’t leave another protocol type selected.

  2. Paste the complete URL

    Enter your subscription URL in URL. Check that the beginning, query parameters, and ending are intact, and remove any spaces or line breaks added when copying.

  3. Save and update

    Save the entry, then return to Home and pull down to refresh the subscription. Wait for the list to finish updating, then check that server entries appear—not just the subscription name.

  4. Select a server

    Select an existing server and run Connectivity Test. Confirm your selection before turning on the connection so the test and actual connection use the same entry.

Subscription URLs often contain account tokens and should be treated like passwords. The example below is for formatting only and cannot be used to connect. When sharing diagnostic details, redact tokens, passwords, and other authentication fields.

https://example.com/sub?token=xxxx

4. How do I fill in Add Server with server details?

Go to Home → “+” → Add Server, select a Type, and enter the details provided by your service provider. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different authentication and transport fields. Changing only Type while leaving all other fields unchanged won’t work. If your subscription already contains the complete details, check the imported entries first instead of entering everything manually.

Save the entry and test it first. If other entries in the same subscription connect but the manually added one doesn’t, check each manually entered field before changing the entire rules file. The available fields vary by Type; follow the current interface.

5. Which Global Routing mode should I choose?

Choose a routing mode in Home → Global Routing. It determines how the current connection uses servers and rules; it isn’t a protocol type or the server’s location. For a first-time setup, verify that your configuration works, then use Config for everyday routing. If you haven’t set up rules yet, first identify which mode you’re using for the test.

Config

Recommended

Matches requests against the selected configuration file’s rules. Whether a request connects directly or uses a proxy depends on the matching policy and FINAL; it isn’t always “some traffic direct, some traffic proxied.”

Best for: everyday use with a working configuration that routes traffic by domain or IP.

Proxy

Handles requests in a proxy routing mode, which can help reduce the effect of rule matching while troubleshooting. You still need a working server; this won’t bypass authentication or fix an unreachable server.

Best for: briefly checking the server and proxy route, then comparing the results with your rules in Config.

Direct

Uses a direct routing mode without accessing the destination through the selected proxy server. Even if the connection toggle is on, that doesn’t mean requests are going through a proxy.

Best for: checking how destinations behave over your current direct network connection.

Scene

Uses configured scene conditions to determine routing behavior. Before selecting this mode, check the network conditions and actions set for each scene. It doesn’t automatically choose the fastest server.

Best for: routing that should change with network conditions when scenes are already configured.

6. Where is the connection switch, and how do I authorize it?

The connection switch is in Home. The first time you turn it on, the system asks for permission to add a VPN configuration. Follow the prompt and authenticate on your device. This permission lets the app create a system network tunnel; it isn’t a purchase confirmation and won’t fill in missing server details.

  1. In Home, select the server you want to use. Make sure you selected a server, not just the subscription group name.
  2. Open Global Routing and confirm the mode for this session. If you choose Config, also confirm the active file in Config.
  3. Return to Home, turn on the connection, allow the system to add the VPN configuration, and authenticate.
  4. Check the connection status, then visit a destination to test it. When you’re done, return to Home and turn off the connection.

A system status of VPN Connected only confirms that a tunnel has been established; it doesn’t prove that every destination is reachable. Server authentication, the remote exit, DNS, and routing policies can still affect requests. If the connection turns off immediately, check system authorization and the server details first. If it stays connected but pages won’t load, follow the steps in question 10.

7. What is On Demand, and why does the connection turn back on?

On Demand triggers a connection based on network conditions. Find it under Settings → On Demand. It serves a different purpose from Global Routing: On Demand determines when to connect, while Global Routing determines the routing mode after connecting. Before troubleshooting, check whether On Demand is enabled and review its configured network conditions and actions.

Test connection triggers on two network types

On Wi-Fi
  • Note the name of the Wi-Fi network you’re connected to.
  • Check the relevant conditions in Settings → On Demand.
  • Switch networks and watch for changes in the Home connection status.
On cellular
  • On a device with cellular service, turn off Wi-Fi.
  • Check the connection trigger settings for cellular networks.
  • Retest with the same server and destination, and record each result separately.

To troubleshoot, turn off On Demand and connect manually first. Once manual connection works, restore the trigger settings you need.

If the connection comes back after you disconnect manually, first check whether On Demand triggered it again. Don’t immediately delete servers or configurations. Switching from Wi-Fi to cellular or rejoining a network may cause configured conditions to be evaluated again. After restoring On Demand, switch networks to test it—don’t rely on the toggle in Settings alone.

8. Where are configuration files, and in what order do rules apply?

Manage and select a configuration file in Config, then choose Config in Home → Global Routing. Rules in the [Rule] section are generally checked from top to bottom, and the first matching rule determines the policy. Put specific domain rules before broader ones, and use FINAL as the fallback when no earlier rule matches.

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

This is a rule snippet, not a complete configuration with all connection details. Make sure PROXY or another policy can select a server correctly in your environment. Putting FINAL first prevents later rules from working as intended. Editing a file won’t affect current requests unless that file is selected.

9. Are subscription updates and configuration updates the same thing?

No. Updating a server subscription mainly retrieves the server list and connection details. Updating a remote configuration may change rules, policies, and other settings. A successful subscription refresh in Home doesn’t mean the rules in Config have been updated. Likewise, updating a rules file won’t fix an incorrect server password.

Server subscription updates
Return to Home and pull down to refresh. Check whether servers were added, removed, or had their details changed. After updating, confirm which entry is selected—especially if the previous entry has disappeared.
Configuration file updates
In Config, check the remote configuration and its update status. After updating, review the actual contents and the file currently in use; don’t rely on the file name alone.
Change the update route
If the subscription URL is unreachable over a direct connection but an existing server works, go to Settings → Subscribe, check Update via Proxy, and try updating again.

Update via Proxy requires a working proxy connection; it won’t make an invalid subscription URL valid again. If your existing servers can’t connect either, repeatedly enabling this option won’t help. When an update fails, first distinguish a timeout from failed authentication or a response that isn’t in subscription format. Then verify the full URL instead of assuming every failure is a network issue.

10. Why can’t I access a site even when Connectivity Test returns a result?

Connectivity Test in Home checks some aspects of the server connection, but it doesn’t verify every website, protocol, or rule. If the test reports latency but a destination fails, keep the same server and check the routing mode, the destination’s rule, and DNS separately. Don’t change the server, configuration, and network all at once, or you won’t be able to compare results.

The test timed out. Does that mean my rules are wrong?

First, confirm which entry you tested in Home, then check Address, Port, authentication, and TLS settings. Try the same entry over Wi-Fi or cellular. If the connection itself fails, troubleshoot server reachability before changing a DOMAIN-SUFFIX rule.

VPN is connected, but a page won’t load. What should I check?

Go to Home → Global Routing and make sure it isn’t set to Direct. Temporarily switch to Proxy and test the same destination. If Proxy works but Config doesn’t, return to Config and check the matching rule, policy, and FINAL.

Where should I look if only one domain fails?

Open the active file in Config. First look for a DOMAIN-SUFFIX rule or another rule related to that domain, then check DNS settings. Note whether the issue is a resolution failure, connection timeout, or server rejection; each points to a different cause.

Change one condition per test and record the network, server, Global Routing mode, destination, and failure. For example, if the same server times out on Wi-Fi but connects over cellular, check for restrictions on the Wi-Fi network first. If both networks connect but the same domain fails under Config, check the rules first. For more help, see Troubleshooting or the Configuration Guide. Redact authentication details before sharing diagnostic information.