Choose a Shadowrocket import method based on what you have: use Config for remote configurations, add server subscriptions from Home, use Add Server for individual server details, and use a QR code or clipboard to transfer an address or share link. This guide assumes you already have your own provider and subscription. It explains how to identify the content, save it, and verify the result. A successful import does not mean you are connected or that your rules are active.
1. Tell subscription URLs, share links, and remote configurations apart
An address starting with https:// might return a server list, a complete configuration, or just an account webpage. The prefix alone does not tell you where to import it. Check the format instructions that came with the address. Server subscriptions maintain server entries in Home; remote configurations are files in Config. They update different things.
An individual share link usually starts with ss://, vmess://, vless://, or trojan:// and contains the parameters for one server. A QR code simply encodes text as an image, and the clipboard temporarily stores text. Neither converts an invalid format into a valid one.
2. Subscribe: know when to use Config and Home
Subscribe in Config is for remote configuration subscriptions. If you have a URL explicitly identified as a Shadowrocket configuration file, tap the “+” in the top-right corner of Config to add the remote URL. For an existing remote configuration, use its action menu to check its Subscribe status and update options. Configurations may contain sections such as [General] and [Rule]; inspect the contents before using one. Don't add an ordinary server subscription URL as a rules configuration.
To add servers from an existing subscription to Home, go to Home → “+” → Add Server → Type → Subscribe. Here, Subscribe is a type within Add Server—not a choice between Config and Home. The steps below cover server subscriptions.
-
Check what you have
Make sure you have a server subscription URL intended for Shadowrocket, not a sign-in page, order page, or remote rules configuration. Copy the entire URL, including any query parameters after the question mark.
-
Open the add screen
Open Home, tap “+” in the top-right corner to open Add Server, then open Type and select Subscribe. Don't paste a full subscription URL while a single-server protocol type is selected.
-
Enter the URL
Paste your subscription URL into URL and add a recognizable remark. Check for leading or trailing spaces, line breaks, curly quotes, or explanatory text such as “subscription URL.”
-
Save and verify
Save and return to Home. Check the subscription group and its server entries. To fetch the contents again, update the subscription. Check the update message and list contents to confirm success; the fact that the URL was accepted in the field isn't enough.
Updating a subscription fetches its remote contents again. If entries appeared on the first import but disappear after an update, check the returned content and subscription status rather than creating multiple entries with the same name. Keep the existing group and configuration until you've checked the update result; this makes it easier to spot which URL changed.
3. Add Server: enter details for one server
Add Server supports both Subscribe and individual server configurations. If you only have a server address, port, and authentication details, go to Home → “+” → Add Server, then choose the actual protocol under Type, such as Shadowsocks, VMess, VLESS, or Trojan. Don't guess the protocol from the port number: different protocols can use the same 443 port.
Server subscription
- Entry point
- Home →「+」→ Add Server
- Type
- Subscribe
- URL
- A complete subscription URL you already have
- What gets updated
- The server list returned by that subscription
The URL retrieves a list; it isn't a server's Address.
Individual server entry
- Entry point
- Home →「+」→ Add Server
- Type
- The protocol matching the original parameters
- Address / Port
- Enter the host address and numeric port separately
- Authentication details
- Check fields such as Password and UUID for the selected protocol
A manually added entry won't fetch remote updates from its Address alone.
Address is usually a domain name or IP address; don't enter a full webpage URL with its path. Enter the numeric port separately, such as 443 only when the original parameters specify it. For Shadowsocks, check the encryption method and password. For VMess and VLESS, verify the relevant identity parameters. For Trojan, check the password and TLS details. Match the transport, Host, path, and server name to the original parameters; don't fill missing fields with “common” values.
- Select Type before entering the parameters to avoid missing fields that appear after you change the type.
- Keep certificate validation enabled. If TLS fails, first check the server name, device time, and original configuration.
- After saving, reopen the entry and check it again, especially for trailing spaces in passwords and case-sensitive paths.
- If you already have a complete share link, import it directly to avoid missing fields when entering parameters manually.
4. QR codes and clipboard: check the content after scanning or pasting
Scanning is useful when the QR code is on another screen or on paper. Open the scanner from the top of Home, allow camera access when prompted, and fit the entire QR code in the viewfinder. If it contains an individual share link, check the protocol and server parameters. If it contains a subscription URL, make sure you add it as Subscribe rather than as a regular server.
Use the clipboard when the link is already on your device. Copy the complete address or share link, then return to Shadowrocket and confirm the recognition prompt. If no prompt appears, go to Home → “+”, select the appropriate type, and paste it manually. If prompted to allow pasting, confirm only if you just copied the content you intended to use.
Choose a transfer method based on where the content is
QR code on another device
- Scan the complete code using the scanner on Home.
- Adjust the brightness and distance to prevent glare from obscuring the edges of the code.
- Check whether the recognized content is a subscription URL or an individual share link.
- After saving, return to Home and check the new entry.
Link on this device
- Copy only the link, not the accompanying instructions.
- Make sure the link hasn't been truncated or split by a chat app.
- Confirm the clipboard recognition prompt, or paste the link manually.
- After importing, take care not to accidentally share clipboard contents that include credentials.
QR codes and the clipboard change how content is entered, not the type of entry. They don't give an individual share link the ability to update as a subscription.
If scanning a QR code opens a webpage, the code may contain a web address rather than an importable configuration. Don't accept every parameter just because the page mentions Shadowrocket; check the purpose against the original material. If a text block contains multiple share links, check how many the app actually recognized instead of assuming it imported the entire block.
5. Verify the entry, connection, and rules separately
Seeing a server name in Home only confirms that an entry was saved. To test it, select an entry first, then check Global Routing. Proxy, Direct, Config, and Scene are different routing modes: Proxy routes traffic through the selected proxy, Direct connects directly, Config follows the selected configuration, and Scene uses the routing settings for the chosen scene. Note the active mode during testing. A webpage loading in Direct mode doesn't prove that the proxy connection works.
- Check the entry: Open the new entry and make sure Type, Address, and Port match the original details. For a subscription, confirm that the group contains servers, not just a group name.
- Test reachability: Run Connectivity Test from Home and note the result. A response doesn't guarantee that every website is reachable; verify with an actual request too.
- Connect: Select the entry you want and turn on the connection. If the system asks for permission to add a VPN configuration, check the app name and follow the prompts.
- Check the rules: In Config mode, confirm which file is selected in Config and check the policy matched by the request. Updating a server subscription doesn't fix the order of rules in a configuration.
- Check automation last: Once the basic connection works, check Settings → On Demand. If the connection comes back automatically during troubleshooting, check whether On Demand is enabled before assuming the manual switch isn't working.
Handle rule issues separately from import issues. For example, DOMAIN-SUFFIX,example.com,DIRECT sends matching domain requests directly. FINAL,PROXY is the fallback when no earlier rule matches. Rules are generally evaluated from top to bottom, so a request that matches DIRECT won't switch to the proxy just because there's a FINAL rule at the end. Updating a server subscription doesn't replace this check.
6. Common issues: check the input format and update results
Why is Home still empty after I saved the address?
First, check whether you added a server subscription to Config by mistake. Go to Home → “+” → Add Server → Type → Subscribe, verify the URL, and update it. If the list is still empty, check whether the URL actually returns a list or instead leads to a sign-in page, error page, or empty response. Repeatedly adding it won't fix a parsing problem.
Why can't I update a server added by scanning a QR code?
Open the entry and check Type. If the QR code contained an individual share link such as ss://, it imported one server and can't provide a subscription URL automatically. Create a separate Subscribe entry only if the original material explicitly provides a subscription URL.
Why didn't a recognition prompt appear after I copied a link?
Copy the plain link again, without surrounding quotes, spaces, or explanatory text, and watch for a system prompt about paste permissions. If it still isn't recognized, use the manual entry: paste a subscription URL into Subscribe, or enter an individual server's fields according to Type. There's no need to keep switching apps and waiting for a prompt.
The server name or count changed after an update. Should I restore it?
A subscription update reflects the latest content returned remotely, so names and counts may change. First check that you updated the right subscription, that the URL is still complete, and that the selected server still exists. Manually restoring an old name won't restore expired connection parameters or change the next update's results.
The subscription imported, but the connection keeps timing out. What should I do?
First distinguish a timeout while fetching the subscription from one while connecting to a server. For the former, check the URL, current network, and returned subscription content. For the latter, check the selected entry, protocol parameters, Port, and TLS settings. Change one thing at a time and keep the error message; don't send anyone a full configuration containing passwords.
Check Shadowrocket's App Store listing
Shadowrocket is a closed-source commercial app for Apple platforms, primarily iPhone and iPad. The App Store is its only place to get the app. Check the developer, Shadow Launch Technology Limited, and app ID 932747118. Refer to the App Store listing for system requirements and purchase availability. A one-time client purchase is not a service plan; users must provide their own subscription URL and connection details.