Official Guide / Getting Started
Shadowrocket Subscription Import and First Connection
Follow the steps in order: import, choose a routing mode, connect, and verify access. First confirm that a complete connection works, then adjust rules and automatic connection settings.
Read through the full process before following the steps on your device. Interface labels remain in English. Layouts may vary between devices, so identify fields by their names rather than guessing from their positions on screen.
Step 1 / Prepare a Server Entry
Add Server and Subscribe: Import Existing Details
Open Shadowrocket and stay on Home. Here you can view the server list, select a server, and control the connection. The list may be empty the first time you use the app; do not turn on the connection yet. First check whether your details are a subscription URL or the parameters for a single server. The entry points are similar, but the information is entered differently.
Have a Subscription URL? Choose Subscribe
In Home, tap the plus button in the upper-right corner to open Add Server. Open Type and choose Subscribe. Paste your full subscription URL into URL, check the beginning, path, and trailing parameters, then save. Authentication parameters are part of the URL. Missing a character, copying a line break, or including extra instructions can prevent the subscription from loading. Use a recognizable label instead of the full URL as the name.
After saving, return to Home and wait for the subscription to load. Check whether the expected group and server entries appear. Seeing the subscription name does not mean the server list has loaded; expand or open the group to confirm it contains selectable entries. If it is still empty, troubleshoot subscription retrieval rather than repeatedly creating subscriptions with the same name. If entries are available, select one server to use for testing.
Subscription URLs often contain access credentials. Store them only on devices you use and in trusted backups. When describing an issue to someone else, share the symptoms, not the full URL. For details on updating subscriptions, organizing multiple subscriptions, and what happens when you delete one, see the Server Management Guide. For now, complete one import without changing automatic update settings.
Have Details for a Single Server? Enter Them by Protocol
If your details include a server address, port, and authentication information, start from Add Server and choose the protocol explicitly listed in your details. Fill in each field without switching protocols just because their names look similar. Do not paste an entire webpage URL into the server address field. Check the address and port separately, and match the password, user ID, and any other protocol-specific options to your original details.
The fields vary by protocol. Some connections also require TLS, Server Name, or transport settings; do not guess at these values. If your original details do not include a required parameter, verify them before trying different combinations. Save when finished, return to Home, check the entry name, and select it. To make changes, reopen the entry for editing rather than adding duplicate copies.
If you have a compatible QR code, use Scan QR Code to read it, then check the server fields it creates. Screenshots, QR codes, and share links may contain authentication details, so do not use them in public troubleshooting posts. To complete this step, Home should show a selected server with a clear source and verified settings—not just a saved subscription name.
Step 2 / Choose How to Route Traffic
Global Routing: Choose a Routing Mode
After selecting a server, open Global Routing from Home. This setting controls how traffic is handled; it does not fill in server details. Before testing webpages for the first time, check which mode is selected. Otherwise, even if a webpage loads, you may not know whether the request went through the selected server or connected directly. The three modes are Config, Proxy, and Direct. Do not confuse them with the tabs at the bottom of the screen.
Config: Apply the Active Configuration
Config uses rules in the active configuration to determine where traffic goes. To use rule-based routing, open Config and make sure the configuration selected is one you intend to use and understand, then return to Home and choose Config. Importing a subscription alone does not mean you also have the rules you need. A subscription's server list and a configuration file in Config serve different purposes.
Rules are evaluated in order, and some requests may be set to DIRECT. A webpage loading in Config does not by itself prove that the proxy connection is working. After connecting, check request records to see which policies were applied. If you do not have a rule configuration ready, use the next mode to isolate the effect of rules and check whether the server itself works before troubleshooting the configuration.
Proxy: Test the Selected Server First
Proxy is useful for temporarily checking the selected server's proxy connection while troubleshooting, with less interference from routing rules. It still depends on correct server details, a working local network, and server availability; it does not guarantee the same result for every request in every app. Remember your original selection during testing, then restore the Config mode you normally use. Do not leave a temporary troubleshooting setting in place.
Direct: Compare Against Your Local Network
Direct sends traffic to its destination without using the selected server as a proxy. Use it as a comparison to see whether your local network can reach the destination on its own. Do not assume the server is connected just because the switch is on while Direct is selected. After choosing a mode, return to Home, check that the server is still selected, then authorize and connect.
Step 3 / Connect the Device
Turn On the Connection and Authorize It in iOS
Return to Home and confirm the selected server and Global Routing mode match your choices in the previous steps. Then turn on the connection switch at the top. The first time you connect, iOS may ask to add a VPN configuration. This authorization allows the app to create a network tunnel. Check the app name in the prompt, confirm you opened Shadowrocket, then allow the request and complete any verification required by your device.
After authorization, return to Home and check that the switch stays on and the page shows a connected status. The system's VPN indicator can provide additional information, but its position varies by device. Do not keep toggling settings to look for an icon in a specific place. What matters is that the app's connection status remains stable and that you can complete an actual request in the next step.
If you previously declined authorization, try connecting again from the app and follow the system prompts. If the expected prompt still does not appear, check VPN-related settings and management restrictions in your device's Settings. If your device is managed, follow its management requirements; do not delete configurations you do not recognize. Resolve authorization issues first rather than switching server protocols.
If the switch turns off immediately, note whether an error appeared. Check that the server is still selected, required fields are complete, and no other VPN connection is active on the device. Do not rapidly toggle the connection. Turn it off, check one thing, and then try again. Repeated connection attempts make troubleshooting harder and do not show which change affected the result.
Keep the network unchanged while verifying the connection for the first time, and leave On Demand disabled so automatic behavior triggered by network conditions does not interfere. If you need automatic connections based on conditions, set that up only after manual connection and access both work. Completing this step means the device has tried to establish a tunnel; use the actual requests below to confirm it works.
Step 4 / Verify Real-World Access
Connectivity Test and Webpage Checks
Keep the connection on and run Connectivity Test in Home. Check whether the selected server returns a result. This test can quickly identify an obviously unreachable server, but its target may differ from the destinations you visit in a browser. A result only means that this particular test received a response; it does not confirm that all webpages work or indicate your everyday browsing speed.
Next, open a browser and reload a familiar webpage where you can tell whether the content has updated. Then check another page you normally use for comparison. Make a new request rather than relying on an already-open tab, since its content may be cached. If you are checking a specific destination, use the same one before and after making changes. Comparing different websites can make unrelated response differences look like a settings issue.
Return to Shadowrocket and look for the corresponding request in Data, using the time of your visit to find it. If your version shows the relevant details, check the destination, matched rule, and applied policy. A DIRECT entry in Config is not necessarily an error; it may be the expected result if the rule specifies a direct connection. If a request expected to use the proxy is recorded as DIRECT, check the active configuration and rules before recreating the subscription.
To check the server path, note your original settings, temporarily switch to Proxy, and send a new request to the same destination. If it works in Proxy but not in Config, focus on rules and configuration. If both fail, check server details, DNS, and the local network. When testing is complete, restore your original Global Routing mode rather than leaving several temporary changes in place.
A successful verification comes down to three things: the connection status in Home remains stable, a new request to a webpage completes, and the request record matches the selected routing mode. Together, these are more useful than the switch position alone. When you are done, return to Home and turn off the connection. If you later switch to another network, run a brief check again instead of assuming the earlier result applies.
Step 5 / Narrow Down the Cause
Common Issues: Change One Thing at a Time
When something fails, first identify where the process stopped: subscription retrieval, server testing, maintaining the connection, or webpage access. Each points to different checks. Note the current network, selected server, Global Routing mode, and any error message, then follow the checks below. Do not start by reinstalling the app: that will not fix incorrect server details and may erase your settings.
Subscription Saved, but the Server List Is Empty
Return to the subscription entry and check that the URL is complete, especially the authentication parameters at the end. Confirm the subscription is still valid and that your current network can retrieve it. Subscription access and server connection are separate stages: an older server entry may work even when a subscription update fails. Check the update result before changing the URL, and do not post the full subscription URL in a public forum to ask others to verify it.
Connectivity Test Fails or the Connection Drops Immediately
First confirm that your local network works, then check the selected entry's address, port, protocol, and authentication fields. If TLS or transport options are involved, compare them one by one with your original details and watch for extra spaces. If you have another server, switch only the server while keeping Global Routing unchanged to compare results. If just one entry fails, focus on that entry. If all entries fail, check shared network conditions and system authorization.
Test Returns a Result, but Webpages Still Do Not Load
Focus on whether the issue is DNS resolution or the connection itself. If the request record shows a resolution failure, check whether the active configuration specifies an unreachable DNS server or includes settings that do not suit your current network. Do not add several DNS addresses at once or overwrite the entire configuration. If the same webpage works in Proxy but not Config, check the matched rule, policy, and related DNS settings.
Issues Start After Switching Networks
Switching from Wi-Fi to cellular can change the local network path and available conditions. Keep the same server and routing mode, reconnect, and test the same destination on both networks. If the original network works again, that comparison is more useful than repeatedly changing protocols. If On Demand is enabled, check whether switching networks triggered an automatic connection or disconnection so you do not mistake automatic behavior for a manual switch failure.
Record the Results Before Further Troubleshooting
Repeat the same test after each change. If it does not help, restore the original setting before checking the next item. For further troubleshooting, note the error message, the step where it occurred, and what you have already verified—but redact subscription URLs, passwords, and authentication details. See Troubleshooting for explanations of common issues, and the Server Management Guide for subscription updates, server organization, and backups. Once you have completed this guide, add rules, automatic updates, and On Demand settings one at a time to make future issues easier to diagnose.