This guide is for people just getting started with Shadowrocket on iPhone or iPad. The steps assume you already have connection details from your own service provider. They cover what the app purchase includes, your first connection, Global Routing, Config, subscription updates, and troubleshooting. Establish a manual connection first, then configure rules and On Demand to help distinguish connection issues from automation issues.
1. Can I connect as soon as I buy Shadowrocket?
Shadowrocket is a paid app for Apple platforms, available exclusively on the App Store. The developer listed on the store is Shadow Launch Technology Limited, and the app ID is 932747118. The app is a one-time purchase; buying the app does not include a service plan. The purchase does not create a server connection.
This site does not provide, sell, or recommend servers or subscriptions. Before configuring the app, have your own connection details ready and make sure they are still valid. Your app purchase status and the status of your provider's service are separate; one does not confirm the other.
- Check the app: Read the App Store verification guide and confirm the developer and app ID.
- Check your device: Shadowrocket is primarily used on iPhone and iPad. Check the App Store listing for compatibility and system requirements for Mac, Apple TV, and Apple Vision.
- Check your connection details: Identify whether you have a subscription link, a single-server share, or a Config file. These belong in different places in the app.
- Check what the purchase includes: Refer to the App Store listing for pricing, Family Sharing, and whether the app is a universal purchase.
2. Where is the connection switch, and what should I do first?
The main controls are in Home, Config, and Settings. Home is where you select a server, choose Global Routing, and control the connection. Config manages configuration files, while Settings contains app preferences. When getting started, stay in Home and avoid changing DNS, rules, and automatic connection options all at once.
-
Add a subscription
Go to Home → tap “+” in the upper-right corner → Type → Subscribe. Enter the complete subscription link you already have, then save it. Do not enter only your provider's website address.
-
Select a server
Return to Home, expand the imported subscription group, and select a server entry. If the group is there but contains no server entries, troubleshoot the subscription update first.
-
Check routing
Go to Home → Global Routing. To check whether a server works for the first time, temporarily select Proxy. If you already have a Config file and understand its rules, select Config to test them.
-
Connect
Turn on the connection switch at the top of Home. If iOS asks to add a VPN configuration for the first time, verify that the request is from Shadowrocket, then follow the system prompts to authorize it.
A VPN status indicator means the device has established a network processing tunnel. It does not confirm that the remote server is reachable or that every website will load. Check the actual browsing results next.
3. Which Global Routing mode should I use: Proxy, Direct, Config, or Scene?
Global Routing determines how traffic is handled. Do not confuse it with the protocol: selecting Proxy does not turn Shadowsocks into Trojan, and selecting Config does not create a server. The recommendations below assume you have already checked the configuration file.
Config
RecommendedApplies the policies defined by the active configuration. A matching rule may use DIRECT, PROXY, or another defined policy. If no earlier rule matches, FINAL typically determines the result; this does not always mean “direct connection for everything else.”
Best for: Everyday use with a checked Config and traffic routed by destination.
Proxy
Handles all intercepted traffic using the proxy route, temporarily bypassing Config's routing decisions. The remote connection still depends on server availability and network conditions.
Best for: Testing a server for the first time or checking whether a problem is caused by rules.
Direct
Handles all intercepted traffic as a direct connection. Even if a server is selected in Home, that does not mean traffic is going through it.
Best for: Comparing with your regular network to rule out the proxy route.
Scene
Applies routing based on the configured scene conditions. Check the conditions and actions first. Scene is not required for your first connection.
Best for: Users who have confirmed a manual connection and need to switch routing based on their environment.
4. What is Config, and do I need it after importing a subscription?
Subscribe retrieves and updates server entries, while Config defines rules and other settings. They are separate items. A successful subscription update does not mean the expected rules file is loaded, and changing servers does not change the rule order.
In Config, check which file is active and review its contents. The minimal example below illustrates rule order; it is not a complete configuration for every network. Use these rules to infer traffic behavior only when Global Routing is set to Config.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX,example.com,PROXY: Matches example.com and its subdomains, then applies the PROXY policy.IP-CIDR,192.168.0.0/16,DIRECT,no-resolve: Matches this IPv4 range and connects directly.no-resolvemeans this IP rule will not trigger a DNS lookup.GEOIP,CN,DIRECT: Matches CN using an IP geolocation database and connects directly. It does not use webpage language or text in the domain name.FINAL,PROXY: Uses PROXY if none of the earlier rules match. Changing it toFINAL,DIRECTgives a different fallback.
Rules are evaluated in order, so specific exceptions usually go before broader rules. When adding a rule, check whether an earlier rule already matches the same traffic. Do not just check whether a line exists in the file.
5. Which Type should I choose when adding a server manually, and what port should I enter?
Go to Home → “+” → Type and choose the protocol shown in your connection details. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different fields. Do not enter server details for one protocol into another just because its form is shorter.
| Type | What to check | Common mistake |
|---|---|---|
| Shadowsocks | Server address, port, encryption method, and password | Copying the password but missing the encryption method. |
| VMess / VLESS | UUID, transport, and the corresponding TLS settings | Entering the UUID but overlooking transport settings. |
| Trojan | Password, port, TLS, and server name settings | Mistaking the server name setting for a login username. |
| Hysteria2 | Authentication details, TLS settings, and UDP network conditions | Assuming UDP works because regular webpages load. |
| WireGuard | PrivateKey、Address、Peer PublicKey、Endpoint | Swapping PrivateKey and PublicKey, or omitting the Endpoint port. |
Enter the port exactly as specified. For example, if your details list port 443, enter 443; it is not a universal default for every protocol. If Address or Host has a separate Port field, do not append the port to the address as well. If TLS validation fails, first check the server name, device time, and certificate settings. Disabling verification is not a routine fix.
6. Why is the subscription empty after import, and what does updating it do?
Subscribe updates retrieve the subscription contents and refresh the corresponding server entries. They do not renew your service or fix expired credentials on the provider's end. Being able to connect using an existing entry and being able to update the subscription are separate checks.
- Check the link: Return to the subscription editor and check for extra spaces, line breaks, or missing parameters. Do not use a single-server share as a Subscribe link.
- Run an update: Pull down on the subscription list in Home to refresh it. Check for fetch or parsing errors, then expand the group to inspect its entries.
- Check the network route: If a direct connection cannot fetch the subscription and you have a confirmed working connection, go to Settings → Subscribe → Update via Proxy and try again.
- Check the remote status: If the link is fetched but no entries can be parsed, ask your provider to check the subscription's validity, response format, and service status.
If you have no working server after the first import, Update via Proxy cannot create a working proxy route from nothing. Do not repeatedly delete and re-add the subscription instead of checking the error. Subscription links may contain access credentials; redact the full link and any sensitive parameters before sharing screenshots.
7. Why won't webpages load when the connection switch is on?
First identify where the issue occurs: the underlying network, the server connection, rule selection, or a specific website. Change one variable at a time. For example, keep the same device and network and compare Proxy with Config before switching servers, changing DNS, and editing rules all at once.
- Check the network first: Temporarily turn off the connection switch and confirm that your current Wi-Fi or cellular network can load webpages normally. Complete any required Wi-Fi sign-in first.
- Test the server next: Run Connectivity Test from Home. Note whether it fails, times out, or gets a response. A response does not guarantee that the target website will load.
- Compare routing modes: With the same server selected, if Proxy works but Config does not, check the rule matching the destination, its policy, and FINAL.
- Narrow down the issue: If only one domain fails, check its DNS resolution and rule match. If all destinations fail, first check the selected server and current network.
The latency shown in test results is not download speed or a guarantee of reliability. For example, a test may get a response while the browser still times out. Check the actual request route next rather than assuming the whole configuration is correct based on a single latency reading.
8. How do I set up On Demand, and why does the connection come back after I turn it off?
On Demand triggers connections based on conditions; it does not improve server performance. First establish a manual connection from Home, then go to Settings → On Demand and check whether it is enabled and which conditions are configured. Before setting conditions, decide which networks should connect and which should stay disconnected.
Recommended sequence: test manually before enabling On Demand
During initial troubleshooting
- Pause automatic triggers in Settings → On Demand.
- Return to Home and turn the connection on and off manually.
- Test access over Wi-Fi and cellular separately.
For automatic connections
- Check the network matching conditions in Settings → On Demand.
- After enabling it, switch to a target network and check that it triggers as expected.
- Keep conditions you can reproduce and remove or adjust any conflicting ones.
To keep the connection off, disable On Demand first, then turn off the connection switch in Home to prevent network requests from triggering it again.
On Demand and Global Routing address different things: On Demand determines when to connect, while Global Routing determines how traffic is handled during a connection. If the connection comes back automatically, check automatic triggers first. If it stays connected but traffic takes the wrong route, check routing and rules.
9. I set up Shadowrocket on my iPhone. Can I use the same setup on my iPad?
Whether you can use the same server details depends on your provider's device limits, concurrent connection limits, and configuration requirements. Buying the app does not mean the remote service allows unlimited devices to connect at once. Check the App Store listing for universal purchase availability and system requirements.
- Get the app: On your iPad, check your App Store purchase history and current account status. See the iPad purchase guide for details.
- Check the subscription: On your iPad, confirm that the subscription is present. Do not assume content has synced just because both devices use the same account.
- Check the Config file: Confirm the selected file, rules, and Global Routing mode. Copying server entries alone does not copy the entire configuration.
- Authorize the device: Approve the system VPN configuration on the iPad the first time you connect, then run Connectivity Test and test a webpage separately.
If Shadowrocket works on your iPhone but not your iPad, connect both devices to the same network and use the same server entry and routing mode. Compare them one setting at a time to avoid mistaking a device-specific issue for a service-wide outage.
10. What should I record when something goes wrong, and what should I learn next?
Reproducible details are more useful than saying “it doesn't work.” Note your current network, selected protocol, Global Routing mode, Config file, and the symptoms or error. Do not share subscription credentials, passwords, UUIDs, or PrivateKeys when asking for help.
Should I capture Home or Config?
If the connection fails, record the server type, Global Routing mode, and Connectivity Test result from Home. If the problem occurs only with Config, also include the relevant rules and which one matched. Redact sensitive server details and subscription links before sharing.
Do I have to import the subscription again every time?
Reimporting is not a normal step for connecting. Try connecting with an existing entry first. To sync changes from the provider, update the corresponding subscription in Home. If the update fails, check the link, network route, and remote status in that order.
How many settings should I change while troubleshooting?
Change one setting at a time and note what happens before and after. For example, temporarily switch Global Routing from Config to Proxy, test the same destination, and then switch it back. Do not change On Demand, DNS, and server settings all at once.
After these checks, learn how to add domain rules, inspect FINAL, and maintain Config. To review the connection process from the beginning, read the Quick Start. For purchase and device setup steps, see the Setup Guide. Keep one confirmed working configuration before making individual changes.