Shadowrocket FAQs
Find the category that matches your issue, then work through the checks. The first two categories cover downloads and recovery; the last two cover importing existing subscriptions, connections, and rules. Expand a question to read the full steps.
Before you download
Authenticity & pricing
Understand the difference between getting the app, purchase history, and services you already use. Store search results, device language, and account region are separate details.
Can I use Shadowrocket on a computer or Android?
Yes. 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. Choose your device on the download page. Desktop, Android, and Linux installers are available from this site at /dl/shadowrocket/. A mobile purchase is not required to install the desktop version.
How can I verify Shadowrocket on the App Store?
On the product page, check the name Shadowrocket, developer Shadow Launch Technology Limited, official icon, and app ID 932747118. Compare the icon with the official artwork shown in this site's header; don't rely on a similar name alone. The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac, Windows, Android, and Linux versions are free. A free listing with the same name in a mobile app store is not this product.
Does the one-time app purchase include the service needed to connect?
A one-time app purchase is not a service plan. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; the Mac, Windows, Android, and Linux versions are free. These prices cover the app only, not access to any server or subscription. You'll need your own existing subscription or server details to connect. This site provides the official site and manual; it does not provide, sell, or recommend servers or subscriptions.
What if Shadowrocket doesn't appear in App Store search?
Check the spelling, then open the product page for your device from the download page. The app is currently unavailable on the mainland China App Store, so check your Apple ID country or region rather than changing your device language. Apple's region-change path is Settings → Apple ID → Media & Purchases → View Account → Country/Region. Before changing regions, read the system notices about your balance, active subscriptions, and payment method. Don't keep switching regions if you don't meet the requirements.
Do I have to buy it again after switching devices or reinstalling?
The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac, Windows, Android, and Linux versions are free. On a mobile device, sign in with the Apple ID used for the original purchase, find Shadowrocket in your App Store purchase history, and download it again. The same purchase can be used on iPhone and iPad. If the App Store still shows a purchase button, check your account and store region. Restoring the app does not restore local settings, so back them up separately before switching devices.
Can I install Shadowrocket on iPad, and where can I check the system requirements?
Yes. The iPhone and iPad app is available from the App Store for a one-time purchase of $2.99 and works on both devices. The Mac, Windows, Android, and Linux versions are free. Check the App Store listing for the iPad system requirements and review its compatibility details before installing. If you already purchased the app, use the original account to download it again. When adding a VPN configuration, follow the system prompts to approve it; app purchase status and VPN authorization are separate.
First launch checks
Installation & first launch
Choose your operating system and Mac chip version first, then handle system authorization. Allow installation only after confirming the installer came from this site.
Which Mac version should I choose: Apple Silicon or Intel?
Open About This Mac from the Apple menu. If it lists a Chip with an Apple family name, choose the Apple Silicon version. If it lists an Intel processor, choose the Intel version. The download page has a separate DMG for each. Drag the app into Applications before opening it. If macOS says it can't verify the developer, first confirm the file came from this site, then follow the prompt under System Settings → Privacy & Security and choose Open Anyway.
What should I do if Windows SmartScreen warns that the app may be risky?
First, confirm you downloaded the Windows 64-bit EXE from this site's download page; the installer is served from /dl/shadowrocket/. Once you've confirmed the source and file, select More info in the SmartScreen prompt, then Run anyway. If that option isn't available or your device is managed by your organization, check its security policy and ask your administrator. Don't disable system protection just to launch the app.
What if my Mac says the developer can't be verified or the app is damaged?
Check the Mac chip version and download source, then move Shadowrocket to Applications. If macOS can't verify the developer, go to System Settings → Privacy & Security, select Open Anyway, and confirm the system dialog. If macOS says the app is damaged, download it again. Once you've confirmed it came from this site, run xattr -cr /Applications/Shadowrocket.app in Terminal and try opening it again. Don't run this command on files from unknown sources.
What should I check if the Android download won't install?
Check that your device supports the arm64 installer on the download page and that the file finished downloading. If Android blocks installation, allow the browser or file manager you used to open the file to install unknown apps. You can turn this permission off afterward. If you see a parsing error, download the file again and check available storage. If device-management policy blocks installation, contact your administrator instead of repeatedly changing permissions.
Which Linux package should I choose: deb, rpm, or AppImage?
Choose the package for your distribution: use deb for Debian, Ubuntu, and similar systems; rpm for Fedora and similar systems; or AppImage for a portable option. Get the appropriate installer from the download page. Before running an AppImage for the first time, make the downloaded file executable in its properties or run chmod +x in Terminal, specifying the file. If installation reports dependency errors, check the package manager output. Don't mix package formats from different distributions.
The interface is in English. Which labels should I learn first?
Match each label to its purpose: Home shows the connection and servers; Add Server lets you enter server details; Subscribe is for an existing subscription; Config manages configuration files; Global Routing controls how requests are handled; Settings contains app settings. Labels may vary with your system language and the languages available in the app. Look for the English labels in the interface rather than expecting translated buttons from a tutorial.
Import existing details
Subscriptions & server imports
The steps below assume you already have your own subscription or server details. Check the information you enter, then distinguish request failures from parsing and connection failures.
What information do I need before importing an existing subscription?
Have your complete subscription URL ready, and confirm the service is active and the format works with Shadowrocket. Copy the entire URL, including all parameters, without adding spaces, line breaks, or explanatory text. Then follow the tutorial to enter it under the appropriate type in Add Server. Subscription URLs may contain access credentials, so use them only on your own devices. Importing a server list and enabling a Config are separate steps; check the active configuration after importing.
In what order should I troubleshoot a failed subscription import?
First check that the URL is complete and hasn't expired, then confirm your device's current network can reach the subscription endpoint. Identify whether the error is a connection timeout, a certificate issue, or a parsing failure. For a timeout, try again on another working network. For a parsing failure, ask your existing service provider to confirm the response and format. A page opening in a browser doesn't prove the subscription is valid: a login page or error page may load successfully but can't be imported as a server list.
Will a failed Subscribe update affect my existing servers?
Check the update message and confirm existing entries are still in the list before doing anything; don't delete the entire subscription right away. A failed update doesn't necessarily mean existing servers are unusable—test the connection separately. Check the subscription URL, expiration, and network, then try updating manually. After a successful update, make sure the selected entry is still there. If the provider changed server names or list contents, you may need to select an entry again. Back up important configurations before making changes.
What if I still can't connect after importing with Scan QR Code?
First check whether the QR code contains a single server profile or a subscription URL; each is managed differently after import. Review the detected protocol, server address, port, and authentication fields. If TLS, SNI, or transport settings are included, compare them with your existing server details. Don't share a screenshot of the QR code; it may contain complete connection credentials. Successful scanning only means the contents were read. Select the entry and test the connection separately.
Which fields are easy to miss when entering VLESS or other protocol details?
Confirm the protocol matches your existing server details, then check the address, port, authentication, transport, and TLS fields one by one. VLESS configurations may also require SNI, a path, or other server-specific settings; entering the address alone may not be enough. Ask your existing service provider about missing fields instead of guessing. Don't turn off certificate verification to hide a hostname or certificate configuration error.
Do I also need to import a Config after importing a subscription?
That depends on how you want requests handled. A subscription mainly provides server entries, while a Config contains rules and related settings; they're not the same thing. If you use a Config with Global Routing, make sure the intended configuration is enabled and check Rule and FINAL. Updating a subscription does not update rules. Back up your current configuration before editing, and change one item at a time to identify whether an issue comes from server details or rules.
Troubleshoot by symptom
Rules & troubleshooting
Check in this order: basic network, selected server, Global Routing, Config, then DNS. Keep your original settings and change one item at a time.
What should I check if the connection toggle won't turn on or switches off immediately?
First check that you've approved the system VPN configuration, then confirm a working server entry is available and selected. If you canceled the authorization prompt the first time, try again and follow the system prompts. Also check for another VPN connection, device-management restrictions, or configuration conflicts. If the toggle immediately switches back off, note the exact error and inspect the configuration; don't toggle it rapidly over and over. If the issue persists after restarting the app, continue troubleshooting authorization, configuration, and network in that order.
How do I choose Config, Proxy, or Direct in Global Routing?
Config handles requests according to the rules in the active configuration. Proxy sends requests to the selected proxy policy, though system and local-network exceptions may still apply. Direct connects straight to the destination. For everyday rule-based routing, check that the Config is correct and select Config. To troubleshoot, briefly compare Proxy and Direct against the same destination, then restore your original setting. Don't leave a test mode enabled by mistake.
What should I do if it says connected but I can't access the internet?
A connected status means a connection was established; it doesn't guarantee every request will succeed. Turn off the connection to test your basic network, then turn it on and test the selected server. Next, compare Proxy and Config in Global Routing against the same destination. If Proxy works but Config doesn't, check Rule order, policy references, and FINAL. If neither works, check the server and DNS. Change one setting at a time and record the result rather than changing several settings at once.
How can I tell whether a server test timeout or slow browsing is caused by the network or the server?
Keep the server and destination the same, test over both Wi-Fi and mobile data, then review the test method and result in Connectivity Test. Results depend on the destination and method, so they don't necessarily reflect speeds in every app. If your basic network is slow too, troubleshoot the local network first. If only one existing server is affected, check its status and configuration. Repeated tests generate more requests; a few comparable results are more useful than constant retesting.
Is a website failing to load because of DNS or a Rule?
Compare the same destination under Direct, Proxy, and Config. Then check the diagnostics for resolution errors and identify which Rule matched the request. DNS issues mainly affect domain resolution; a rule issue may send a request to the wrong policy. Both can happen at once. Check the order of rules such as DOMAIN, DOMAIN-SUFFIX, and IP-CIDR, and confirm FINAL. Don't replace all DNS settings and rules at once, or it will be hard to tell what fixed the issue.
What should I do if battery drain increases or behavior changes after an update?
Compare similar usage periods in your system battery statistics, and consider actual traffic, network signal, frequent reconnects, and logs rather than relying on a single percentage reading. Check whether On Demand keeps triggering and whether connection tests are running in the background. If an issue starts after an update, back up Config, restart the app, and check the selected server and Global Routing. Retest with as few changes as possible. On iPad, compare network status before and after sleep and wake to see whether the issue occurs only after a network change.