This guide is for users who already have a subscription or connection details from their service provider. It covers four ways to add them to Shadowrocket. First, learn the difference between server subscriptions in Home and configuration files in Config. Then choose an import method based on whether you have a URL, connection details, or a QR code. Finally, check that the import, connection, and routing rules each work as expected.
1. Subscribe, Config, and individual server links: what’s the difference?
Before importing, identify what you have. A subscription URL points to an updatable server list; a server share link describes one connection; and a configuration file can contain global settings, routing rules, and other sections. Don’t assume these belong in the same place just because they’re all links.
The “Subscribe in Config” wording in the title needs clarification: Config is primarily for managing configuration files. Server subscriptions are usually added in Home → + → Add Server → Type → Subscribe. If you see a remote configuration option in Config, make sure the URL returns a configuration file. Don’t load a server subscription URL as a configuration file. Settings controls app preferences; it isn’t where server lists are managed.
| What you have | Where to add it | What to check after saving |
|---|---|---|
| A server subscription URL from your service provider | Home → + → Type → Subscribe | A subscription group and server entries appear in Home |
| Address, port, authentication, and transport settings | Home → + → Add Server | Check each saved connection parameter |
| A QR code or link for a single server | Scan the QR code or import from the clipboard | Confirm the protocol and server address were parsed correctly |
A configuration file with sections such as [General] and [Rule] | Configuration management in Config | Confirm the configuration is selected and the rules are as expected |
2. Subscribe: add a subscription and keep its update source
Get the subscription from your service provider. Subscribe saves the source URL and requests it again when you refresh, then parses the response. The number and names of servers, along with their settings, may change with each response. Don’t treat a temporary edit to an entry in a subscription list as a permanent, independent configuration.
-
Get the URL
Get a subscription URL compatible with Shadowrocket from your service provider. Copy the entire URL, including any parameters after the question mark. Don’t copy the account management page URL.
-
Choose the type
Go to Home, tap “+” in the top-right corner to open Add Server, then select Subscribe under Type. Don’t leave it set to an individual server protocol.
-
Paste and save
Paste the complete URL into URL, add a label you’ll recognize, and save. Check that there are no extra spaces, line breaks, or punctuation added by a messaging app at either end.
-
Check the list
Return to Home and look for the subscription group and its entries. To fetch the list again, pull down on Home to refresh and check whether the update returns an error.
-
Verify the results
Check that the group contains selectable servers, then open an entry to verify its protocol and address. A group name with no entries doesn’t mean the subscription content was parsed successfully.
A subscription response may contain a list of supported share links or Base64-encoded content. Whether it can be imported depends on the actual content and format. If a browser opens the URL, that only means the request received a response. A login page, error message, or expiration notice won’t produce a usable server list.
3. Add Server: enter connection details by protocol
Manual entry works well when you have one set of clearly defined parameters to check individually, or want to create a separate test entry. Go to Home → + → Add Server, select a Type, then fill in the fields required for that type. Changing Type can change what the fields mean. Don’t reuse passwords, UUIDs, or transport options across protocols.
Check Shadowsocks settings
- Type
- Shadowsocks
- Address
- example.com, shown only as an address format example
- Port
- 8388, shown only as a port format example
- Method
- Must match the encryption method configured on the server
- Password
- Enter the complete password provided by your service provider
Port 8388 isn’t required. Use the address, port, and authentication details provided by your service provider.
Check Trojan settings
- Type
- Trojan
- Address
- example.com, shown only as an address format example
- Port
- 443, shown only as a port format example
- Password
- Must match the authentication password configured on the server
- TLS / SNI
- Check TLS and the server name against the server settings
Port 443 alone doesn’t confirm that TLS is configured correctly. The connection address and SNI may also be different names.
VMess and VLESS commonly use a UUID for authentication. With WebSocket, also check the transport type, Path, and Host. Don’t put a Trojan password in a UUID field. For Hysteria2 and WireGuard, select the matching Type and fill in its specific fields; changing only the server address won’t make settings for another protocol work.
- Enter the port as a decimal number from 1 to 65535. Don’t put the entire
example.com:443string in the Port field. - When copying a password, UUID, or Path, preserve capitalization and symbols. Don’t remove slashes or trailing characters.
- If TLS certificate verification fails, first check the device’s system time, server name, and certificate configuration. Don’t mask the problem by weakening verification.
- A manually entered server won’t automatically sync when your service provider changes the subscription. To keep getting updates, retain the Subscribe source.
4. Scan a QR code: identify what it contains first
Scanning is just an input method; it doesn’t change what the QR code contains. It may encode a single ss:// share link, a vmess://, vless://, or trojan:// link, or a subscription URL. After importing, check whether you have an individual server or an updatable subscription source.
- Tap the scan icon in Home and allow camera access when prompted the first time. If you previously denied permission, open the system Settings, find Shadowrocket, and check its Camera permission.
- Fit the entire QR code in the viewfinder and avoid glare, obstructions, or displaying it too small. If the code is on the device you’re using, copy and import the original link instead.
- After scanning, check the content that appears and review the confirmation screen. A regular web address alone doesn’t mean you have a working server subscription.
- Return to Home and check for the new entry or subscription group. Verify the protocol, address, and label before testing the connection.
Scanning the same QR code twice may create duplicate entries. Before deleting anything, compare the server address, port, and source so you don’t remove a different entry with the same name by mistake. A QR code in a screenshot may contain a full password or subscription token; obscure these details when sharing troubleshooting screenshots.
5. Clipboard import: use it for raw share links
Clipboard import is useful when you already have the raw text. Copy the full link, switch back to Shadowrocket, and confirm the import or paste prompt if it appears. If iOS asks whether Shadowrocket can paste, allow access for this paste. If there’s no import prompt, use the relevant manual option: enter a subscription URL under Subscribe, or enter single-server details in Add Server using the matching Type.
Choose what to do based on the clipboard contents
Individual server share link
- Common prefixes include
ss://,vmess://,vless://, andtrojan://. - Copy the complete text starting at the protocol prefix, without any introductory text.
- After importing, check the Type, address, and port—not just the label.
- An individual entry doesn’t have a subscription source for bulk updates.
Server subscription URL
- It usually starts with
https://, but that prefix alone doesn’t prove it’s a subscription. - Get the original URL from your service provider and keep all query parameters.
- If it isn’t detected automatically, go to Home → + → Type → Subscribe and paste it there.
- After saving, check that a subscription group appears and verify the refresh result.
Scanning and clipboard import make it quicker to add content. Continued updates depend on saving a valid Subscribe source.
Messaging apps may split long URLs across lines or include a trailing bracket or comma in the copied text. The encoded value after % is part of the URL; don’t decode it manually before pasting. If you copied a Base64 string rather than a link with a protocol prefix, ask your service provider which format it uses. Don’t guess the protocol by repeatedly switching Type.
6. After importing: test the connection, rules, and updates
A successful import, a reachable server, and a working website are three different outcomes. An entry in Home only means the content was saved. A latency result doesn’t confirm that DNS, TLS, server-side forwarding, or every destination website is working. For your first test, use an entry with verified, complete settings to avoid the confusion of changing several options at once.
- In Home, select the server you want to test and run Connectivity Test. Note whether it returns a value, times out, or reports an error. Don’t treat an example result as a pass criterion.
- Turn on the connection switch. The first time you connect, follow the system prompt to authorize the VPN configuration, then check the system connection status.
- Check Global Routing. Proxy, Direct, Config, and Scene are different routing modes. Direct isn’t suitable for testing whether a proxy server can handle the request.
- To test rules, select Config and confirm that the intended configuration file is selected there. Rules are usually matched in order:
DOMAIN-SUFFIXmatches domain suffixes,IP-CIDRmatches IP ranges,GEOIPmatches geographic classifications, andFINALhandles requests that didn’t match earlier rules. - Open a destination page you’re authorized to access and use the connection log to see how the request was routed. If the server test succeeds but the domain won’t load, check DNS next. Follow the steps in Troubleshooting to narrow down the cause.
7. Frequently asked questions about adding subscriptions
Why are there no servers in Home after I added a link in Config?
First check whether the URL points to a server subscription or a configuration file. Add server subscriptions in Home → + → Type → Subscribe. Loading routing rules in Config doesn’t automatically create a server list. Don’t keep pasting the same URL into both places; check with your service provider about the format it returns.
I saved a Subscribe entry, but it has no servers. What should I do?
Open the subscription entry again and check that the URL is complete. Then pull down in Home to refresh and check for an error. Identify whether it timed out, failed authentication, or couldn’t parse the content. Make sure the subscription hasn’t expired and the URL doesn’t return a login page. When troubleshooting, share only redacted error details—never the full token.
Why can I scan a QR code but not update it later?
Check whether the QR code added an individual server link or a Subscribe source. If it only added a standalone server, there’s no subscription URL to update. For ongoing updates, get a subscription from your service provider, save it in Home with Type set to Subscribe, and check the corresponding group.
There’s a link on the clipboard, but no import prompt appears. Why?
Copy the raw link again without any descriptive text, and make sure pasting is allowed. For a subscription URL, go to Home → + → Type → Subscribe. For an individual server link, check that its protocol prefix and text are complete. If it still isn’t recognized, ask your service provider about the format. Don’t enter a regular web address in the server Address field.
Why did my manually edited server settings revert after an update?
Subscribe updates fetch content again from the source, so entries managed by that source may be replaced. For comparison testing, create a separate entry with a recognizable label. For permanent setting changes, check what your service provider includes in the subscription. Before deleting the old entry, make sure the new one passes a connection test.