Choosing an import method in Shadowrocket isn’t just about matching a button name. First identify whether you have a server subscription, a single-server share link, or a remote configuration file. This guide explains how to choose among the four import methods, where to verify saved items, and how to distinguish link, response-format, and connection-setting issues when an update fails. This site does not provide, sell, or recommend servers or subscriptions.
1. Identify the content: a subscription link isn’t a configuration file
A server subscription retrieves a set of server details, typically including addresses, ports, and authentication parameters. A remote configuration file loads settings such as rules, DNS, and policies. Both may be provided over an HTTPS URL, but that doesn’t mean they belong in the same place. Check the original provider’s description and make sure the format is supported by Shadowrocket instead of relying on the https:// prefix.
Home is the main place to check servers and connection status; Config is where configuration files are managed. Seeing an entry in the server list does not mean the rules in Config have changed. Likewise, a successful Config download does not mean you have a usable server. Check these results separately to avoid confusing “imported successfully, but no servers appeared” with “servers are available, but traffic isn’t being routed by rules.”
| What you have | Recommended method | Where to check after importing |
|---|---|---|
| Server subscription URL | Home → + → Type → Subscribe | Subscription group and server list in Home |
| Remote configuration file URL | Config → + → Download from URL; set Subscribe if needed | File, contents, and selected status in Config |
| Parameters for a single server | Home → + → Add Server editor | New server in Home |
| QR code or text on the clipboard | QR scanner in Home or clipboard import prompt | Confirm the detected content type, then check the corresponding list |
2. Subscribe: distinguish Config subscriptions from server subscriptions
Subscribe in Config is for subscribing to and updating remote configuration files. Don’t enter an arbitrary server subscription link there. To add a remote configuration file for the first time, go to the add option in Config, choose Download from URL, and enter the full configuration URL. Once downloaded, inspect its contents and decide whether to use it. To keep a remote configuration updated, check the file’s Subscribe setting and source.
If the original provider gave you a server subscription, go to Home → + in the top-right corner → Type → Subscribe. This Subscribe option is a type in the Add Server editor, separate from the remote configuration feature in Config. Enter the URL and save, then return to Home to check for a subscription group and server entries. Don’t look in Config for newly added rules.
-
Confirm the purpose
Read the original provider’s description to determine whether the link returns a server list or a complete configuration. Don’t judge by the URL suffix.
-
Choose a method
For a server subscription, go to Home → + → Type → Subscribe. For a remote configuration file, go to Config → + → Download from URL.
-
Paste the URL
Paste the full URL, preserving query parameters and capitalization. Check for leading or trailing spaces, line breaks, or punctuation added by a messaging app.
-
Save and verify
After saving, check the appropriate list. Verify server entries in Home; verify the contents and selected file in Config.
-
Update one item at a time
For initial troubleshooting, update just this subscription and keep any error message. Avoid adding multiple entries from the same source at once, so you can tell which one caused the result.
Keep local changes before updatingUpdating a remote configuration may replace content retrieved from the source; updating a server subscription may rebuild its list. Back up important rules and manual edits first. Don’t assume local changes will be preserved after every update.
3. Add Server: enter parameters manually or add a subscription
Tap + in the top-right corner of Home to open the Add Server editor. The selected Type determines what the fields mean: choose Subscribe to enter subscription details, or select a type such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, or WireGuard to enter that protocol’s server parameters. Use the configuration you actually have; don’t switch protocols just to make the form accept the entry.
Manual entry is useful when you have details for a single server, need to check a field, or can’t import the original share text. It doesn’t replace subscription updates: if you enter one server manually, changes the original provider makes to its list won’t automatically update that local entry.
- Address and port: Don’t include a web path in the server address. If the supplied parameters specify port
443, enter443. A port is only one part of a connection; it doesn’t tell you which protocol is in use or whether TLS is enabled. - Authentication: Enter fields such as a password, UUID, or key according to the protocol. Don’t use a subscription URL token as the server password unless the original provider explicitly specifies that same value.
- TLS and transport: If the parameters include TLS, SNI, Host, or Path, enter each value as provided. The server address, TLS server name, and transport Host may differ; don’t replace them all with the same value.
- Remarks: Use a name that helps identify the source and purpose. A name is for organization; it won’t fix an incorrect protocol, authentication detail, or port.
After saving, first confirm the entry appears in Home, then test the connection. Saving in the editor only confirms that a local record was created; it doesn’t prove remote authentication succeeded. A latency test returning a result doesn’t prove that every site or rule works correctly either.
4. QR code and clipboard: check what was detected before confirming the import
QR codes and the clipboard change how information gets into Shadowrocket, not what type of information it is. A QR code may contain a single-server share string or simply an HTTPS URL. The clipboard might contain a subscription URL, a single-server share string, or just the provider’s website. Confirming the detected content type matters more than seeing a “scan successful” message.
Choose an input method based on what you have
QR code
- Use the scanner at the top of Home. Allow camera access when prompted the first time.
- Fit the entire QR code in the viewfinder. Avoid glare, cropped edges, and excessive zoom.
- Check whether the result contains server details or a URL before saving.
- For a QR code displayed on the same device, use text provided by the original source if available. Don’t assume there’s an option to scan from Photos.
Clipboard
- Copy only the complete URL or share text, not the surrounding instructions.
- Return to Shadowrocket. If a clipboard import prompt appears, check the content before confirming.
- If prompted for paste permission, allow it if that matches your current action.
- If no import prompt appears, open the relevant editor and paste the text into the URL or parameter field.
QR codes and the clipboard are just input methods. Always return to Home or Config to check what was actually saved.
If scanning adds just one server, the QR code probably contains a single-server share string, not a full subscription. Scanning it again won’t turn it into a subscription group. If no clipboard prompt appears, there’s no need to keep copying the text: paste it manually to confirm it’s complete, then check its format and the system’s paste permissions.
Treat subscription URLs as credentialsQR codes, clipboard text, and URL query parameters may contain access credentials. Redact the full token, password, and key when sharing troubleshooting details. Don’t post an unredacted subscription URL in a public screenshot or message.
5. URL formats and troubleshooting failed imports
Subscription URLs don’t follow one standard path format. They may carry access credentials in query parameters or put an identifier in the path; the presence or absence of a .conf suffix isn’t a reliable way to identify the content either. The two URLs below illustrate URL structure only. They are fake and cannot be used for import.
https://example.com/sub?token=xxxx
https://example.com/sub/xxxx?format=shadowrocket
Don’t add the format=shadowrocket parameter from an example yourself; it only works if the original endpoint supports it. When copying, check that & hasn’t been left as escaped webpage text, that a messaging app hasn’t truncated the parameters, and that there isn’t an extra period at the end. Preserve percent-encoded values as they are; don’t decode them before pasting.
| What you see | Check first | What to do next |
|---|---|---|
| Unable to save or no result detected | Check whether the copied text includes instructions, spaces, or truncation | Paste only the complete URL; use the appropriate method for a single-server share string |
| Request timed out | Check whether the current network can reach the subscription URL | Keep the current configuration, switch to a working network, and retry only this subscription |
| HTTP 401 or 403 response | Check whether the token is valid or access is restricted | Check authorization through your existing provider’s account page. Don’t share the full URL publicly. |
| HTTP 404 response | Check whether the path was copied in full and whether the original URL has changed | Copy the URL again from the original source, including all parameters |
| Request succeeds, but parsing fails | Check whether the response is a login page, error page, or unsupported format | Check that the format is supported by Shadowrocket and that you haven’t used an account page as a subscription |
| List is empty after updating | Check whether the remote source returned empty content or has filtering enabled | Check the subscription’s filter settings and the status of the original source. Don’t delete other working entries yet. |
A URL opening in a browser doesn’t mean Shadowrocket can parse servers from it. The browser may show an account login page, an access verification page, or an error message. A successful HTTP request and a correctly formatted response are two separate things to check. For troubleshooting, record the error text and the stage where it occurred; there’s no need to send anyone a raw response containing credentials.
6. Verify after import: check updates, connections, and rules separately
After importing, verify in this order: whether the list is correct, whether the server connects, and whether the rules take effect. First, select the newly imported server in Home, turn on the connection, and allow the VPN configuration when prompted by the system. Then test a destination you’re authorized to access. If the server can’t connect at all, check the protocol and authentication first; don’t change the rules at the same time.
Global Routing → Config
RecommendedTraffic is handled according to the currently selected configuration file. The actual route depends on the rules, policies, and selected server—not just the subscription name.
Use when: you have defined rules and want to check everyday traffic routing.
Global Routing → Proxy
Traffic is handled in proxy mode rather than routed according to the usual rules in Config. This can help isolate rule-related issues, but doesn’t guarantee the remote service is available.
Use when: briefly separating server connection issues from rule-matching issues.
Global Routing → Direct
Traffic is handled in direct mode. Being able to reach a site in this mode doesn’t prove the newly imported server is working.
Use when: checking how the current network behaves with direct connections as a troubleshooting comparison.
Scene in Global Routing is for choosing a scenario; it isn’t a fifth import method. Settings → On Demand manages on-demand connection behavior and doesn’t retrieve servers. To prevent connections from changing automatically during troubleshooting, check the existing On Demand settings first. Don’t change automatic connection conditions before confirming that the connection works.
- Check the subscription: Update the target subscription in Home and confirm that additions, removals, or name changes match the original source. You don’t need to import the same URL again to update it.
- Check the configuration: Confirm which file is currently in use in Config. If there are multiple files, downloading one doesn’t automatically select it.
- Check the rules:
DOMAIN-SUFFIXmatches a specified domain and its subdomains;IP-CIDRmatches an IP range;GEOIPmatches based on an IP’s geographic location;FINALsets the final policy for traffic that hasn’t matched a prior rule. Updating a subscription is not a substitute for checking the rules. - Check for duplicates: Importing the same URL once by QR code and once from the clipboard may create duplicate entries. Confirm the source, keep the subscription you need, and remove any extras. The same server name in different subscriptions doesn’t necessarily mean the connection parameters are identical.
Shadowrocket is a closed-source commercial app, primarily used on iPhone and iPad. The App Store is the only place to get it. Check the App Store listing for system requirements and compatibility details. A one-time app purchase isn’t a service plan; buying the app and using a subscription you already have are separate steps.