First identify what you have: a server subscription URL, a single-server share link, or a remote configuration file. Then choose the right import method. This guide is for users who already have their own provider and subscription. It explains Subscribe, Add Server, QR code scanning, and clipboard import, and distinguishes remote configurations in Config from server lists in Home. After importing, select a server and test the connection.
1. Tell server subscriptions and remote configurations apart
In Shadowrocket, a “subscription” generally means a remote update relationship; it does not mean every subscription belongs on the same page. Home manages servers and connections, Config manages configuration files and rules, and Settings manages app preferences. If nothing changes in the list after importing, first check that you’re on the right page. That’s usually more useful than repeatedly pasting the link.
A server subscription is usually an HTTPS URL that returns a server list the app can recognize. A remote configuration can also use an HTTPS URL, but its contents may include sections such as [General] and [Rule]. The two can look alike, so an https:// prefix alone doesn’t tell you what a link is for. Check the description from the source of your existing subscription and the content it returns.
| What you have | Where to import it | What to check afterward |
|---|---|---|
| Server subscription URL | Home → + → Type → Subscribe | Subscription group and server entries in Home |
| Server parameters | Home → + → Add Server editor; select the correct Type | Server address, Port, and authentication details |
| Server share QR code | Scanner in Home | Recognized type and destination address |
| Share link in the clipboard | Copy the full text, return to the app, and check what it recognizes | Whether the import is a single server or a subscription |
| Remote configuration URL | Add and manage remote configurations in Config | Whether the configuration downloaded and is selected for use |
2. Subscribe: Handle server subscriptions separately from Config
To add multiple servers, open the Add Server page from Home and set Type to Subscribe. Don’t treat a server subscription as a rules file. The example https://example.com/sub?token=xxxx illustrates URL structure only; it is not a working subscription. Copy the complete address you already have, including any query parameters after the question mark.
-
Check the content
Make sure the source identifies it as a server subscription, and keep the full URL intact. Don’t copy the page title, explanatory text, or quotation marks surrounding the link.
-
Choose the type
Go to Home → + in the top-right corner to open the Add Server editor, then choose Subscribe under Type.
-
Enter the address
Paste your subscription URL into the appropriate address field and add a note that will help you identify it. Before saving, check for line breaks, spaces, or non-ASCII punctuation.
-
Save and update
After saving, return to Home and check the subscription group and its entries. To fetch the content again, update the subscription and check the list when the update finishes.
If you’re looking at Subscribe in Config or its remote configuration subscription manager, first confirm that you’re working with a configuration file. Rules such as DOMAIN-SUFFIX, IP-CIDR, GEOIP, and FINAL belong to the rules system; they are not server addresses, passwords, or other server parameters. A successful remote configuration download does not mean a connectable server has appeared in Home.
3. Add Server: Use manual entry when you have all the parameters
Add Server is the editor for adding servers, and Subscribe is one of the available Type options. To enter a single server manually, select its actual protocol, such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, or WireGuard. Don’t choose Subscribe just because you have an address.
Manual entry requires complete parameters. A domain name and Port alone usually aren’t enough to connect. Depending on the protocol, you may also need a password, UUID, key, TLS settings, or transport parameters. Fields are interdependent; don’t fill in unknown values based on another server’s settings.
- Address and Port: Enter the server’s domain name or IP address, then enter the Port provided by the source. TLS doesn’t always mean the Port is
443; enter each value as provided. - Authentication fields: Keep passwords, UUIDs, and keys distinct. Don’t enter a token from a subscription URL in the server password field.
- TLS and server name: If the original parameters include an SNI or server name, enter it exactly as provided. If certificate validation fails, check the name and your device’s date and time first.
- Transport parameters: Values such as Path and Host may be case-sensitive, and slashes in a path are part of the parameter. Check the source of your existing configuration if a value is missing.
- Check the result: After saving, return to Home and confirm that the expected server appears—not just a subscription group that hasn’t fetched any content yet.
If you already have a complete ss://, vmess://, vless://, or trojan:// share link, let the app recognize the entire link, then check the parsed result. Manually decoding and splitting the contents can leave out parameters. Seeing an entry means parsing succeeded; you still need to test whether the connection works.
4. QR code and clipboard: Different input methods, same content types
QR code scanning works well when the code is displayed on another screen. Open the scanner from Home and allow camera access if prompted the first time. Fit the entire QR code in the viewfinder. Once it’s recognized, check whether it contains a server share link, a subscription URL, or an ordinary web address before confirming the import.
Clipboard import is useful when you receive a text link on the same iPhone or iPad. Copy the complete content, then return to Shadowrocket. If a clipboard recognition or import prompt appears, check the entry before confirming. When iOS asks whether to allow pasting, grant permission for this action as appropriate. If no prompt appears automatically, paste the link manually on the relevant add page; that alone doesn’t mean the link is invalid.
Choose an input method: another screen or this device
Another screen
- Use the scanner in Home to read the complete QR code.
- Avoid glare, obstructions, and cropping the edges of the QR code.
- If the result is a web page, first check whether it’s only an informational page.
This device
- Copy the complete share text, return to the app, and check what it recognizes.
- When copying a URL, keep the
?,&, and all following parameters. - If automatic recognition doesn’t appear, paste the link manually on the relevant add page.
QR code and clipboard are just ways to provide input. The content itself determines whether it goes into the server list or configuration manager.
Subscription URLs and QR codes may contain access credentials. Hide the full token, password, and QR code in troubleshooting screenshots. To describe the issue, include the error text, the page or entry point used, and when it occurred. Don’t submit a real subscription to an unfamiliar conversion site just to inspect its contents.
5. Choosing between a subscription and manual entry
If you already have a server subscription and need to keep its list updated, retaining the Subscribe relationship is easier to maintain. For a single server or to check an individual field, manual entry is more direct. This comparison covers server entry settings in Shadowrocket, not service quality.
Subscribe
Best forIf you already have a server subscription, save its URL so you can fetch the remote list again later. The update reflects the remote content, so check whether you need to keep any manually changed entries before updating.
Best for: Users with a complete subscription URL who want to manage a group of servers.
Single-server entry
Choose the correct protocol and enter its parameters to check the address, Port, and authentication fields individually. The entry won’t automatically receive new parameters when another subscription changes.
Best for: Users with complete parameters for one server, or those checking a single server in isolation.
Scanning a QR code to import one server doesn’t create a subscription update relationship; clipboard import works the same way. To tell whether an entry can be updated, check whether you saved a subscription URL or an individual server—not which input method you used to add it.
6. Import troubleshooting: Check the stage where it failed
Record “can’t import,” “update failed,” and “can’t connect” as separate issues. The first usually occurs while the content is being recognized, the second while remote content is fetched or parsed, and the last after a server entry already exists. Each calls for different checks, so trying another import method repeatedly may not help.
| What you see | Check first | Next step |
|---|---|---|
| Message says the text can’t be recognized | Whether you copied the complete link with the correct protocol prefix | Remove any surrounding explanatory text, keep the link’s characters intact, and paste it again. |
| Subscription update returns 401 or 403 | Whether the URL credentials are complete and the subscription is still authorized | Check with the source of your existing configuration. Don’t change the server protocol parameters first. |
| Subscription update returns 404 | Whether the path has expired or was copied incorrectly | Check the full path; don’t just check whether the domain opens. |
| Update times out | Whether your current network can reach the subscription URL | Check over both Wi-Fi and cellular, and note whether the failure occurs on only one network. |
| Request succeeds, but no servers appear | Whether the response is a login page, error page, or configuration file | Check that the subscription format matches the import method. An HTTP success response doesn’t confirm the format is correct. |
| Server appears but won’t connect | Whether the server is selected and its parameters match the routing settings | Move on to connection diagnostics instead of importing the same entry again. |
Minimum checks after import
- Return to Home, select the server you want to use, and confirm that the selection indicator appears beside it.
- Check Global Routing. Config routes traffic according to the active configuration rules; Proxy uses the proxy route, and Direct connects without a proxy. Scene involves scene settings, so check which one is active during the test.
- Turn on the connection switch in Home. The first time you connect, follow the system prompt to allow adding a VPN configuration.
- Run Connectivity Test and note the result. A successful test only means the specified test destination was reachable at that time; it doesn’t guarantee that all requests are working.
- If the connection reconnects automatically, check Settings → On Demand to make sure an automatic reconnection isn’t being mistaken for an import issue.
At this point, subscription retrieval, content parsing, and connection testing have been checked separately. To continue troubleshooting, keep the error message and sequence of steps, and change one variable at a time—for example, switch networks or check just one parameter. Changing the subscription, rules, and connection settings all at once makes it harder to find the cause. See the rules manual for rule syntax.