If you already have a subscription URL, add it via Home → + → Type → Subscribe. For a single server’s connection details, use Add Server to enter them manually. QR codes and clipboard import are just different ways to provide the data; what gets imported depends on their contents. This guide assumes you already have your own provider and subscription. It explains where to import, which fields to fill in, how to update and verify results, and the difference between Config files and Subscribe server lists.
1. Identify the Link Type: Subscribe and Config Are Different
Before importing into Shadowrocket, determine whether you have a server list, a single-server share link, or a Config file. Don’t choose an import option just because a link starts with https://: HTTPS URLs can return very different types of content.
Subscribe retrieves and updates a group of servers. Config manages a configuration file containing settings such as rules and DNS. If you’re looking for “Subscribe in the Config tab,” note that these are different features: to add a regular server subscription, go to Home → + → Type → Subscribe. Don’t import a server subscription as a Config file.
Server subscription
- Contents
- A group of server connection details
- Import path
- Home → + → Type → Subscribe
- Example
https://example.com/sub?token=xxxx- What updates
- The server list changes to match the subscription response
This is a dummy value and cannot be used to connect. Enter the full URL of a subscription you already have.
Config file
- Contents
- Configuration settings such as rules and DNS
- Import path
- Config → + to add a remote Config URL
- Common structure
[General]、[Rule]- When it takes effect
- Select the Config file and use the appropriate Global Routing mode
A filename and extension alone don’t confirm the content type. Check the provider’s description of how the file is intended to be used.
A single-server share link usually has a protocol prefix, such as ss://, vmess://, vless://, or trojan://. It typically describes one server, not a subscription that can be updated. A QR code or clipboard import may contain one of these links. After saving, check whether Shadowrocket added an individual server or a subscription group.
2. Import a Subscribe URL and Check the First Update
Copy the client subscription URL from your existing provider’s account page—not the login page URL. The token in the link is an access credential. Preserve its capitalization, question marks, and separators exactly. Don’t post it in public comments or remove parameters for easier record-keeping.
-
Copy the URL
Copy the full URL of your existing subscription. Check that there are no extra spaces, quotation marks, or punctuation at either end. Don’t copy the page title or the browser’s share description.
-
Open the Add Server screen
Go to Home → + in the top-right corner to open Add Server. Tap Type and select Subscribe instead of keeping the protocol selected during your last manual entry.
-
Fill in the fields
Paste the subscription URL into URL and enter a recognizable name in Remarks. URL is the address used to retrieve the list; don’t split it into separate Address and Port fields.
-
Save and update
After saving, return to Home and check for a subscription group and its server entries. If the list hasn’t loaded, pull down to update and check for an error.
-
Verify the contents
Expand the group and compare the number of servers, their names, and protocols with your provider’s information. If the group appears without any servers, check the update response first rather than repeatedly adding the subscription.
A successful save only means the subscription record was stored; it doesn’t confirm that remote content was retrieved. Updating also depends on network access, credentials, and response parsing. If the URL returns a login page, being able to open that page doesn’t make it a valid server list for import.
3. Add a Server Manually: Enter the Correct Values for Its Protocol
If you only have connection details such as Address, Port, a password, or a key, go to Home → + → Add Server and select the actual protocol under Type. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different authentication and transport fields. Don’t just change the type name and reuse the previous entry’s settings.
There’s no universally correct port. Enter 443 only if your provider specifies Port 443. The number alone doesn’t mean TLS is enabled, and it can’t replace a password, UUID, public key, or other authentication details.
- Address: Enter the hostname or IP address supplied by your provider. If the field expects a hostname, don’t add
https://or a webpage path. - Port: Enter the service’s actual port, from 1–65535. Don’t mistake query parameters in a subscription URL for a port.
- Authentication: For Shadowsocks, use the specified encryption method and password. For VMess, VLESS, and other protocols, check the required identifiers and options; they aren’t interchangeable.
- Transport and TLS: Enter the supplied values for fields such as SNI, Host, and Path. The Address and the domain used for TLS verification may differ; don’t assume they match just because their names look similar.
- WireGuard: Check the local private key, peer public key, address, Allowed IPs, and other details. WireGuard isn’t a connection type that requires only a password.
After saving, verify the details before testing connectivity. A manually added server has no subscription to update it. If your provider changes the port, password, or transport settings, you’ll need to edit the entry yourself. If you have an existing subscription, it’s usually more convenient for syncing list changes, but check the update results either way.
4. Import from a QR Code or Clipboard: Check the Data and Where It’s Saved
A QR code isn’t a protocol. It may contain a single-server share link or a subscription URL. Its size, filename, or accompanying description doesn’t tell you what’s inside. Scan only QR codes from your existing provider or ones you saved yourself, and avoid importing Config files from unknown sources.
Scan a QR code
- Open the scanner at the top of Home, grant camera access when prompted, and position the full QR code within the frame.
- If the QR code is saved on your device, use the photo import option in the scanner. Grant photo access as prompted by the system.
- Check the content after it’s recognized. A single-protocol link should be added as a server entry; a subscription URL should be handled as Subscribe. Don’t skip verification just because the scan succeeded.
- After saving, return to Home and check for the new entry or group. A subscription still needs to successfully update its server list; scanning a QR code doesn’t confirm that a server is usable.
Import from the clipboard
- Copy the full share link. Don’t include chat explanations, list numbers, or code fences.
- Return to Shadowrocket and allow the necessary paste access. If a clipboard import prompt appears, review the contents before confirming.
- If no automatic recognition prompt appears, first check that the text is a complete, supported share link. For a regular HTTPS subscription URL, go to Home → + → Type → Subscribe and paste it into URL instead of relying on automatic recognition.
- Check the new entry’s Type, Address, and Port. When you’re done, replace the clipboard contents with ordinary text that contains no credentials to avoid pasting them accidentally later.
5. Verify the Import: Check the Server List and Global Routing Separately
On Home, select an imported server, then turn on the connection and allow the VPN configuration when prompted. A VPN status indicator only means the tunnel is established; it doesn’t mean every destination is routed through the selected server. Whether a connection is forwarded also depends on Global Routing and the current Config.
Config
RecommendedUse the selected Config to handle connections. Rules can specify PROXY, DIRECT, or another defined policy. How connections that don’t match earlier rules are handled depends on settings such as FINAL; they aren’t necessarily sent direct.
Best for: Everyday use when you’ve checked the Config file and want connections routed according to its rules.
Proxy
Route intercepted connections through the proxy, which is useful for temporarily ruling out rule selection as the cause. It can’t fix an incorrect password, an unreachable port, or outdated server settings.
Best for: Temporarily checking whether the selected server can forward a connection to its destination.
Direct
Handle connections using a direct connection mode. If a webpage opens after switching to Direct, that doesn’t prove the newly imported server works; this test doesn’t check the proxy route.
Best for: Comparing with your local network to see whether the problem is with regular network access.
Change one variable at a time during testing: keep the server and test destination the same, then compare Proxy with Config. If Proxy works but Config doesn’t behave as expected, check the matching rules in Config. If both fail, recheck the server details and network reachability first. Scene in Global Routing provides context-based selection; don’t add scene changes while troubleshooting for the first time.
- Check that the intended server is selected on Home, rather than just having its subscription group expanded.
- Check the current Global Routing mode. In Config mode, also confirm which Config file is selected.
- If the connection keeps reconnecting or disconnecting, check the triggers under Settings → On Demand. On Demand doesn’t update subscriptions.
- Compare before and after using the same destination, and check the actual connection records. A response to a latency test doesn’t mean every request will succeed.
6. Common Import and Update Questions
The subscription saved, but why is the list empty?
On Home, pull down to update and note whether the result is a timeout, authentication error, or parsing failure. Check that the URL is the client subscription address from your existing provider, not an account page, and make sure the token is complete. Don’t keep creating the same subscription to retry.
The update timed out. Should I enable proxy updates?
First, confirm that your current network can reach the subscription URL. If you already have a working server, connect to it, then go to Settings → Subscribe, check Update via Proxy, and try the update again. If you don’t have a working connection, enabling this option alone can’t create a route to the URL; first resolve network access to the subscription address.
The QR code scanned successfully. Why isn’t there a subscription group?
Check whether the QR code contains a single-server share link such as ss://. If it imported one server, not seeing a subscription group is expected. For a list that can be updated, use a Subscribe URL you already have rather than scanning the same entry again.
I copied the link. Why didn’t an import prompt appear?
Check whether the system allowed paste access and whether the clipboard contains any extra explanatory text. A regular HTTPS URL may not automatically trigger a server import. If it’s a subscription URL, go to Home → + → Type → Subscribe and paste the full address into URL.
There are fewer servers after the update. Should I add them again?
First, confirm that the update succeeded, then compare the list with the information from your existing provider. If the remote list removed entries, the local group may change as part of normal syncing. Don’t delete the original subscription right away. Check the URL, group, and error messages before deciding whether to correct the record.
An import is complete when the content type is correct, all fields are saved, the subscription updates successfully, and requests behave as expected with the selected server and routing mode. An entry appearing, a successful QR scan, or a VPN icon alone doesn’t confirm all of this.