OFFICIAL MANUAL / QUICKSTART
Shadowrocket Setup Guide Import, Connect, and Verify
First, use an existing configuration to establish a connection you can reproduce. Then adjust routing and automatic connection settings. This guide covers the initial setup on iPhone and iPad in five steps.
Work through the steps one at a time and check the result after each one. A successful subscription import, an active connection, and requests taking the expected route are three separate checkpoints.
STEP 01 / IMPORT
Add Server / Subscribe: Import Existing Details
After opening Shadowrocket, go to Home. This is where you view and select servers. If you haven't added any connection details yet, leave the connection switch off. First identify what you have: a subscription link retrieves a list of server details, a single share link usually describes one server, and manual details include a protocol, address, port, and authentication information. These use different import methods, so don't assume they are interchangeable based on how a link looks.
Have a Subscription Link? Choose Subscribe
On Home, tap the plus button in the top-right corner to open Add Server. Open the type selector, choose Subscribe, paste your full subscription link into the URL field, and save. If there's a remarks field, enter a name that will help you identify it. Check that the link is complete, especially any parameters after the question mark. Don't include chat text, quotation marks, or extra spaces.
After saving, return to Home and wait for the subscription to load. Check that selectable servers appear under the relevant group. Seeing a subscription name without any servers doesn't mean the import is complete. The network may be unable to retrieve the contents, or the link may return a web page instead of a valid subscription. Check the link status and retrieval result before trying to add the same address again. Subscription update controls vary by app version; after updating, check the list again.
Have Server Details? Choose the Matching Protocol
Tap the plus button to open Add Server, choose the protocol that matches your details, and enter the address, port, and authentication parameters. Shadowsocks, VMess, VLESS, Trojan, WireGuard, and other protocols require different fields. Fill in only the fields specified in your details. Any additional settings, such as transport, TLS, or server name, should match the information you were given. Don't guess values for fields that weren't provided.
If you have a single server share link, use the app's link import option. For a QR code, use Scan QR Code. Either way, return to Home after saving, check that the entry appears, and select the one you plan to use. Subscription URLs may contain personal access credentials. Don't post them in comments, screenshots, or troubleshooting notes, and don't share them as ordinary web links.
At this point, you've confirmed that the details appear in the list and can be selected—not that the server can connect. Note the difference: subscriptions usually update the server list, while Config manages configuration files and rules. Importing a subscription doesn't mean routing rules are ready. Once the list looks right, continue by choosing a Global Routing mode.
STEP 02 / ROUTING
Global Routing: Choose How Traffic Is Handled
Return to Home and open Global Routing. This sets the overall way requests are handled; it doesn't fill in missing server details. Before your first test, note the current selection. What appears depends on the installation, existing configurations, and previous changes, so this guide doesn't assume a universal default. The three modes are Config, Proxy, and Direct. Choose the one that fits what you're trying to verify.
Config: Apply the Selected Configuration File
Choose Config if you have a usable rules file and want traffic routed according to its rules. First, open Config and confirm that the file is present and selected. Rules may send different requests to DIRECT, PROXY, or other defined policies, so some traffic connecting directly after you turn on the connection can be expected. Selecting Config doesn't automatically select a rules file or mean that every request uses the server selected on Home.
Proxy: Check the Proxy Route
To check whether a newly imported server works, select Proxy for a brief test and confirm which server is selected on Home. This reduces the effect of configuration rules on the comparison, but it doesn't prove that every type of traffic on the device will use the same route. If you intend to use rule-based routing, switch back to the prepared Config after testing and verify the access you need.
Direct: Connect Directly for Comparison
Direct connects without a proxy; it can't confirm that the selected proxy server is working. During troubleshooting, use it to compare a direct connection with the proxy route, keeping the test target and local network the same before and after switching. If a page opens as usual, that alone can't distinguish Direct from Proxy. Check the current mode, configuration rules, and test records.
For your first test, choose one clear goal: check the server connection first, then check rule-based routing. Don't change Global Routing, DNS, and the configuration file all at once; if the result changes, you won't know why. For more on rule order, DNS, and policies, read the Settings Guide after your first connection.
STEP 03 / CONNECT
Home: Turn On the Connection
Return to Home and check two things: the correct server is selected, and Global Routing is still set to the mode you chose. If subscription entries have similar names, tap the one you want and verify it rather than choosing the first item in the list. Confirm that your Wi-Fi or cellular network can access the internet, then turn on the connection switch at the top of Home. Saving connection details alone doesn't start a connection.
The first time you connect, iOS may ask to add a VPN configuration. Confirm that the prompt was triggered by the connection you just started in Shadowrocket, then allow it and complete device authentication as required. This prompt requests permission to add a system network configuration; it isn't a request to buy another service. If you previously declined, try connecting again and follow the prompt. If your device is managed or restricted, check the relevant system restrictions.
After approving the prompt, return to Home and check whether the switch and connection status stay active. The system VPN indicator can help confirm that the network extension is active, but it doesn't prove that every remote server, DNS request, or destination page is working. If the switch turns off immediately or the app reports a connection error, check permissions and connection details first—not routing rules.
For your first test, keep things simple: use one server, one local network, and one Global Routing mode. Leave automatic connection conditions such as On Demand unchanged for now. Initial settings vary, so check what the app currently shows. If automatic triggers were already enabled, note them; otherwise, an automatic reconnection after you switch off manually could look like a faulty switch. Don't reset multiple Settings you haven't reviewed just to troubleshoot.
The iPad layout may differ from the iPhone layout, but the checks are the same: select an entry on Home, choose Global Routing, turn on the connection, and approve the system prompt. Once connected, keep the setup unchanged until you complete the next step. To disconnect manually, return to Home, turn off the switch, and check the system status. If On Demand is enabled, also consider its trigger settings.
STEP 04 / VERIFY
Connectivity Test: Check the Results in Practice
Once the connection switch stays on, run Connectivity Test from Home and review the results for each listed item. Results depend on the current settings, so compare them only under the same conditions; they aren't a direct measure of real-world download speed. If a test fails, don't delete the entry right away. Check the test conditions, then verify with actual access.
Next, open the website or app you plan to use and perform a specific action, such as reloading a page or requesting new content. Don't rely only on a page that's already cached: seeing cached content doesn't prove the new connection handled a recent request. Note whether it loads, takes a long time, or fails to load only some resources. These details help pinpoint the issue better than simply saying it doesn't work.
With Config selected, rules may send requests through different routes. Opening one page doesn't mean other domains match the same policy. If the page loads but its images don't, the requests may involve multiple domains or rules. To check the route, review the relevant connection records in the app or Log and compare them with your current configuration. Don't use the VPN indicator alone to infer where all traffic is going.
If the result is unclear, run a limited comparison: keep the server and local network the same, note what happens with Config, then briefly switch to Proxy and test the same target. Restore the original mode afterward. If Proxy works but Config doesn't, check the configuration file, matched rules, and policies first. If both fail, check the server details and network reachability. Use comparisons to narrow down the cause, not as a reason to switch modes repeatedly at random.
After your first test, keep a brief record without sensitive information: the local network, server label, Global Routing mode, Connectivity Test results, and what happened during actual access. Re-test the same target after changing settings to make the results easier to compare. Once the connection and access work as expected, setup is complete. Review other Settings only when you need them.
STEP 05 / TROUBLESHOOT
Common Issues: Troubleshoot in Order
When something goes wrong, stop at the step that failed instead of repeating the whole process. Check in order: importing details, establishing a connection, and accessing a destination. Change one condition at a time and test again before moving on. Keep the parts that already work intact to avoid introducing more variables.
No Servers Appear After Saving a Subscription
Check that the URL is complete, has no extra spaces, and is actually a subscription link. Then confirm that your current network can retrieve the subscription and review any update message from the app. An expired link, invalid credentials, or an unexpected response format can prevent the server list from loading. Ask the original provider to confirm that the link is valid. Don't import an error page as a subscription or post the full link when asking for help.
The Connection Switch Won't Stay On
First, check that you've approved the system VPN configuration, then confirm which entry is selected on Home. For manually entered details, check the protocol, port, authentication fields, and any additional settings such as TLS—not just the address. If your device has management restrictions or other network configurations, review the system prompts. Keep a copy of the original details before making changes so you can refer back to the initial values.
Connected, but Can't Access Anything
Confirm that your local network works, then compare the same server on different local networks. If only one server fails, focus on its details and status. If all existing entries fail, check shared conditions such as the local network and settings. Don't change several DNS, protocol, and transport fields at once. Modify a setting only when your connection details require it or diagnostic evidence points to it, and record the result.
Some Websites Work, but Other Requests Fail
Note the affected destination and what you were doing, then check whether Global Routing is set to the expected mode. With Config, first check the active configuration and matched policy, then compare the same destination if needed. If the issue affects just one website or app, consider the service's status and cached content too. For details on rule-based routing, see the Settings Guide. Avoid making broad rule changes while you're still getting started.
The Test Returns a Result, but Speeds Seem Slow
Connectivity Test results and sustained transfer performance measure different things. Keep the test target fixed, compare local network conditions, and check the selected server and protocol settings. Change only one condition per test. For a structured troubleshooting approach, see How to Troubleshoot a Slow Connection, Layer by Layer. A single result can't predict long-term performance; don't repeatedly delete a working configuration based on one test.
If you need to check Log, reproduce the issue once and focus on that time period so unrelated records don't obscure the result. When describing the issue to the provider of your connection details, include the step that failed, current mode, network type, and error information with sensitive details removed. Remove passwords, full subscription URLs, authentication parameters, and personal browsing records. Ask the original provider to confirm that the details are valid. For app steps, return to the relevant section of this guide.
Next: Keep the Working Setup and Adjust Settings One at a Time.
This guide covers your first connection. For DNS, On Demand, Ping, Log, and the recommended order for checking these settings, see the Settings Guide →. To repeat the import, start with Step 1: Add Server / Subscribe.