A Shadowrocket subscription is an import-and-update method for server details; it is not a proxy server and does not create a connection on its own. This guide is for beginners who already have their own provider and subscription. It explains how the provider, subscription link, imported entries, and selected server relate to one another, then shows where to add and refresh a subscription in Shadowrocket. You will also learn what to check when an update does not produce usable server entries.
1. Understand the provider, subscription, and node
These terms describe different parts of a connection. A provider operates or manages the service and gives its customer connection details. A subscription is a link or import mechanism that lets Shadowrocket retrieve a set of those details and refresh them later. A node is an individual server entry in the imported list, with its own connection information, such as a protocol, address, port, and required authentication fields.
A subscription link is therefore not the same thing as a node. It does not necessarily represent one server, and pasting it into a browser does not establish a proxy connection. Shadowrocket uses the link to request configuration data from the provider. After a successful import or update, the app can show one or more server entries on Home. You then select an entry and use the connection switch to start the system VPN connection.
Key distinction: importing is not connecting
After saving a subscription link, confirm that an update has completed and that server entries appear on Home. Only then select an entry and turn on the connection; the link itself is not a selectable server.
A useful way to picture the relationship is that the provider supplies the data, the subscription link points Shadowrocket to that data, and each imported node is a possible connection endpoint. The subscription may include several entries, but the number and types depend on the service and the information it supplies. Shadowrocket can import and manage the details; it cannot make an unavailable server reachable or supply missing account credentials.
- Provider: The service responsible for the account and the connection information. Ask that provider about account access, link validity, supported protocols, and service-side availability.
- Subscription: The link or other subscription details you enter in Shadowrocket. Treat it as private account information: someone who obtains it may be able to access the same subscription data.
- Node: An individual imported server entry. Its protocol and parameters must match the provider’s details; the address, port, password, UUID, and keys are not interchangeable fields.
- Config: A configuration file that may define rules and routing behavior. It is separate from a subscription update, so changing or refreshing one does not automatically mean the other has changed.
Buying Shadowrocket and obtaining a connection service are also separate matters. Shadowrocket is an Apple-platform app distributed through the App Store; an app purchase does not include a provider account or service plan. Get the app only through the App Store page, and use your own provider’s instructions for the subscription and server details.
2. What a subscription update changes—and what it does not
When you update a subscription, Shadowrocket requests the latest data available through the link you added. Depending on what the provider has published, the update may add entries, remove entries, or change existing server details. The exact behavior and available controls can depend on the subscription and app interface. A refresh is not a guarantee that every old entry will remain unchanged, nor is it a test that every imported server is reachable.
Keep three checks separate: whether the subscription can be reached, whether the update returns server entries, and whether a selected server can connect. A successful refresh answers only the first part of the import process. A server may still be offline, its credentials may have changed, or the current network may prevent access. Similarly, seeing an entry on Home does not prove that the entry is selected or that the active routing mode uses it.
| Action or result | What it means | What to check next |
|---|---|---|
| Save the subscription | The link has been entered in the app; server data may not have been retrieved yet. | Run an update and check whether entries appear on Home. |
| Update completes | Shadowrocket received a response for the subscription request. | Check the imported entries and their protocol details. |
| Entry appears on Home | A server entry is available to select in the list. | Select the intended entry, then check Global Routing and connect. |
| Connection switch is on | The app has attempted to establish the system VPN connection. | Run Connectivity Test and check access in an app or browser. |
Subscription data can be sensitive even when the URL looks like an ordinary web address. Do not post the complete link, its query parameters, server passwords, UUIDs, or private keys in screenshots, public forums, or support messages. If you need help, describe the error and the step where it occurred, and mask identifying parts of the link. Store the original details somewhere you control so you can re-enter them if you change devices or remove the subscription.
Do not assume that a subscription refresh is a backup. It retrieves the provider’s current published data; it may not restore custom local edits, manually added servers, your selected server, routing choices, or every setting on the device. Before removing a subscription or changing a configuration, note what you have customized and retain the provider’s original details securely. If a local edit disappears after an update, check whether the provider’s subscription is designed to replace that data, and ask the provider how its updates are intended to work.
3. Add your subscription and verify the imported entries
Use the subscription URL supplied for your own account. Do not substitute a website address, a server address, or a link copied from an unrelated source. If the provider gives you a subscription link and separate manual server parameters, follow its instructions about which method to use; entering the link as though it were a node’s Address will not import it correctly.
-
Open Home
In Shadowrocket, go to Home and tap the “+” in the upper-right corner. This is the server and subscription management area. If you are editing a Config file instead, return to Home before adding the subscription.
-
Choose Subscribe
Set Type to Subscribe. Enter a recognizable name if the interface offers a label field, then paste the complete subscription URL from your own provider. Check that the link has no missing characters, leading or trailing spaces, or accidental line breaks.
-
Save and update
Save the subscription entry, return to Home, and start the subscription update using the available update action. Wait for the request to finish rather than repeatedly tapping the connection switch. An update retrieves server details; it does not itself connect to a server.
-
Check the result
Look beneath the subscription on Home for imported server entries. Confirm that the list is not empty and that the names and protocols resemble the information your provider supplied. If the update reports an error, note its exact wording and check the link with your provider before changing unrelated settings.
-
Test one entry
Select one imported entry and verify that the selection indicator moves to it. Check Home → Global Routing, then turn on the connection and allow the system to add a VPN configuration if prompted. Run Connectivity Test and separately confirm that the intended app or website loads.
For the first test, use one selected entry and avoid changing several variables at once. If the connection fails, first distinguish an import problem from a server or routing problem: an empty list points to the subscription request or returned data, while a populated list with a failed connection requires checking the selected entry, its current parameters, network access, and Global Routing. A successful Connectivity Test is useful diagnostic information, but it does not replace checking the actual service or website you intend to use.
Refreshing later follows the same separation of steps. Update the subscription, inspect the resulting list, select the entry you want, and test the connection if necessary. If a familiar entry name changes or disappears, the provider may have changed its published data. Confirm the current details with the provider rather than copying parameters from an old entry into a different protocol. Names alone do not establish that two entries have the same server, credentials, or transport settings.
4. Frequently asked questions
I saved the subscription, but Home is still empty. What should I do?
Saving only stores the subscription information; it may not retrieve server entries. On Home, run the subscription update and wait for the result. If the list remains empty or an error appears, check that you copied the full URL from your own provider, confirm that your account and link are still valid with them, and retry on a network that can reach the subscription source. Do not paste the URL into a node’s Address field.
Does a successful update mean the proxy is working?
No. It means the subscription request returned data, not that a particular server can be reached. Select an imported entry on Home, check Home → Global Routing, turn on the connection, and run Connectivity Test. Then check the app or website you actually need. If the update succeeds but the connection test fails, report the selected entry and test result to your provider without sharing passwords or the full subscription link.
Will refreshing overwrite my changes or remove an entry?
It can change the imported list according to the provider’s current subscription data and the app’s handling of that subscription. Do not rely on a remote subscription as a copy of locally edited settings. Before making changes that matter, record the relevant details securely and keep a separate backup of any Config file you edited. Ask your provider whether its subscription updates are expected to replace or preserve local changes.
Can I share my subscription URL to get help?
Do not share the complete URL publicly. It may contain account-specific information that grants access to subscription data. Describe the error message, the time of the failed update, and whether any entries appeared; mask the URL and all credentials in screenshots. For questions about account status, link expiry, or server availability, contact the provider through its own support channel.
The practical rule is simple: the provider supplies the service information, the subscription link imports or refreshes that information, and a selected node is what Shadowrocket attempts to use for a connection. Keep those steps distinct, protect the link as private account data, and verify both the imported list and the connection rather than treating either as proof of the other.