What Is a Shadowrocket Subscription? Nodes and Servers Explained

A subscription link is not a proxy node or a provider account. Learn how a service provider supplies server options, how Shadowrocket uses a link to import and update them, and where to manage subscriptions in the app. This guide gives beginners a clear starting point for understanding node lists and What Is a Shadowrocket Subscription? Nodes and Servers Explained stale entries.

At a glance

A Shadowrocket subscription is an address used to import and refresh connection entries; it is not itself a proxy server, a single node, or a provider account. This guide explains how the pieces relate, where to add and update a subscription in Shadowrocket, and how to investigate entries that appear stale or unavailable. The steps assume you already have your own service and subscription details. Subscription links can contain access credentials, so treat them as private.

A subscription, a node, and an account are different things

People often use “subscription,” “node,” and “server” as if they meant the same thing. They refer to different parts of a connection setup. A provider account is used to access the provider’s service or manage its settings. A subscription URL is a link that the provider gives you to retrieve connection information. A node, also called a server entry in everyday conversation, is an individual set of connection details that Shadowrocket can use. The exact labels and available information depend on the service and its format.

A subscription URL usually points to information maintained by the provider. When Shadowrocket imports it, the app reads the returned data and adds the supported connection entries to the app. Depending on the format and provider, the data may include one entry or many, and may include names, protocols, addresses, ports, and authentication details. The URL is therefore more like an access path to a managed list than a server address to connect to directly.

A server entry is the information needed to make a particular connection attempt. It can include a server address, port, protocol, and credentials or keys. Those values must match what the provider has configured. A descriptive name such as a city, region, or “fast” label is only a label: it does not prove where a server is physically located, how much capacity it has, or whether it is currently reachable. If an entry needs to be changed, use the details supplied by your own provider rather than guessing a port or replacing a password.

The provider account and the subscription link can also be separate. An account may be used to sign in to a provider’s website or app, while the subscription URL is copied into Shadowrocket. Having an account does not necessarily mean that a subscription link is already configured in Shadowrocket. Likewise, importing a link does not sign you in to the provider’s account-management page.

These distinctions help narrow down a problem. If the provider’s account page is unavailable, that is different from an imported entry failing to connect. If a subscription refresh succeeds but the list contains no entries, that is different from a populated list whose servers are unreachable. Identify which layer is failing before changing settings.

How Shadowrocket imports and refreshes subscription data

When you add a subscription, Shadowrocket saves the link and requests its data. The returned content is interpreted by the app, and supported entries appear in the relevant server list. The app does not create the provider’s servers; it imports the details the provider makes available. It also cannot infer missing credentials or correct an expired link. The provider controls whether the link is valid, what entries it returns, and when those entries change.

Subscription layer

Purpose
Retrieve a provider-maintained list
Added from
Home → + → Type: Subscribe
Contains
A private URL and its subscription settings
Refresh result
Entries returned by the provider

A successful refresh confirms that data was retrieved; it does not prove every returned server is reachable.

Server-entry layer

Purpose
Provide details for a connection attempt
May include
Protocol, address, port, and credentials
Selected in
Home → SERVER
Connection result
Depends on details and network access

Use the provider’s exact values; a list label is not a substitute for connection details.

Subscription refreshes can change the list because the provider may add, remove, rename, or update entries. A name changing does not necessarily mean the subscription URL has changed. Conversely, keeping the same URL does not guarantee that its returned data will remain unchanged. If a connection worked previously and later stops, refresh the list once, then check whether the relevant entry remains and whether the provider reports a change.

Do not confuse a subscription with a configuration file in Config. A subscription commonly supplies server entries; a configuration file can define broader app settings and routing rules. A file name or a provider’s description may not make the distinction obvious, so check what you were given and where the provider instructs you to use it. Adding a server subscription does not necessarily replace or update your selected .conf file, and changing a rule file does not necessarily refresh server entries.

Also distinguish importing from connecting. Seeing entries in the list means that Shadowrocket has stored connection information. It does not confirm that a particular server is online, that your network can reach it, that your routing mode sends the relevant request through it, or that the VPN tunnel is active. Check each of those separately when the result is unexpected.

Add or refresh your own subscription in Shadowrocket

Before entering a link, obtain the current subscription URL from your own provider and check that it is intended for Shadowrocket or a compatible format. Do not copy an account sign-in page, a general website address, or a single server address into the subscription field. Keep the link exactly as provided: an omitted character, extra space, line break, or missing query parameter can make it unusable. Because the URL may authorize access to your connection details, avoid pasting it into public messages or screenshots.

  1. Copy the link

    Use the subscription URL provided for your own service. Copy the complete link, including any characters after a question mark. Do not shorten it, remove parameters, add quotation marks, or append a server name. If the provider offers several link types, follow its instructions for the Shadowrocket-compatible option.

  2. Add a subscription

    Open Shadowrocket and go to Home. Tap + in the upper-right corner, set Type to Subscribe, and enter the URL in the subscription field. Review the entry before saving: the link should be in the URL field, not a server’s address or a password field.

  3. Save and inspect

    Save the subscription and return to Home. Check whether a group or its server entries appear. If the list remains empty, do not repeatedly create duplicate subscriptions. First confirm that the complete URL was entered and that the provider has made entries available for your account.

  4. Refresh the list

    When you need current data, use the app’s subscription refresh action, such as pulling down on Home when that gesture is available in your app layout. Wait for the result before trying again. Then check whether the entry count or names changed and whether the server you intend to use is still present.

  5. Select and test

    Under Home → SERVER, select one entry from your own list. Confirm the selected marker, check Home → Global Routing, and then start the connection using the app’s main switch. If iOS asks to add a VPN configuration, read and respond to the system prompt. A successful import and an approved VPN configuration are separate from a successful connection test.

If the app reports an error, record the exact message and the action that triggered it. Do not include the complete subscription URL in a support request or public post. If you need to share a diagnostic screenshot, first hide or remove the URL, server addresses, passwords, keys, QR codes, and any account identifiers. A redacted error message and the time of the attempt are usually safer and more useful than exposing credentials.

After an update, check the selected entry again rather than assuming the app will keep the same choice. If the provider has removed or renamed an entry, a previously selected item may no longer be available under its old name. Choose an entry that is currently present, then test it. Avoid changing the subscription, server parameters, and routing rules all at once; one change at a time makes the result easier to interpret.

Troubleshoot stale, missing, or unusable entries

“Stale” can describe several different situations: the list has not been refreshed, the provider no longer returns an old entry, a saved entry has outdated connection details, or a valid entry cannot be reached from the current network. These cases need different checks. Start with the visible symptom and avoid deleting the subscription as a first response, since removing it may discard information you still need to compare.

When troubleshooting, separate the four checks: the subscription URL can be fetched; the response can be interpreted into entries; a selected entry has usable details; and the device can establish a connection using those details. An issue at one step does not automatically mean the other steps are broken. For example, an imported list can be current even while one server is temporarily unreachable, and an accessible server cannot compensate for an expired subscription link if you need to retrieve updated details.

Conclusion: diagnose the layer before replacing anything

If entries are missing, investigate the subscription and its returned data. If entries are present but unusable, investigate selection, connection details, routing, and network reachability. Refreshing a list cannot repair an invalid server credential, and changing a server entry cannot restore an expired subscription URL.

Do not delete and re-add a subscription repeatedly as a substitute for checking the error. If you decide to remove an old entry, first confirm that you still have the original provider-issued URL and know which data the action will remove. If credentials may have been exposed, contact your own provider about replacing or revoking them. Treat the subscription link like a password even if it looks like an ordinary web address.

Shadowrocket is a paid Apple-platform client distributed through the App Store. Purchasing the app does not include a proxy service or subscription. The connection information discussed here must come from a service you already use, and the provider’s current instructions are the authority for its URL, account status, available entries, and server parameters.

Frequently asked questions

Is a subscription URL the same as a proxy node?

No. The URL is used to retrieve subscription data; a node or server entry is an individual set of connection details returned by that data. Enter the link under Home → + → Type: Subscribe, not as a server address.

Does adding a subscription create a provider account?

No. Shadowrocket stores and uses the link you provide; it does not create an account with the service provider. If your provider requires an account or separate activation, manage that through the provider using its own instructions.

Why are entries still listed after a refresh?

The provider may have returned the same data, or the refresh may not have completed successfully. Check the refresh result and compare the list. If you still cannot tell whether the data is current, ask your provider to confirm the link status without posting the full URL publicly.

Can I share my subscription link to get help?

Do not share the complete link. It may grant access to connection details. Share only the exact error text and the steps you took, after removing URLs, credentials, server addresses, keys, QR codes, and account identifiers from screenshots or logs.

Download on the App Store