Official Manual · Shadowrocket Q&A

Shadowrocket Guide

Cross-platform proxy client with rule-based routing. Find answers about access, setup, and rule-based routing; iPhone / iPad: $2.99 one-time purchase on the App Store; Mac, Windows, Android, and Linux versions are free.

Current version v2.2.92 · Mac, Windows, Android, and Linux versions are free

New to Shadowrocket? Read the getting started guide →
  • Global Routing
  • Subscribe
  • On Demand
Official Shadowrocket Home screenshot showing the connection toggle, Global Routing, and Add Server
Shadowrocket · Official Home screenshot
Q01

Check the configuration before diagnosing the connection

Shadowrocket's connection toggle, server details, and routing rules are separate settings. Checking them one at a time makes it easier to identify the cause than changing several at once.

Before you begin

Have a subscription or server details ready

First, prepare a subscription link you already have or server parameters from your own service provider. The client reads this information to establish a connection; installing the app does not create a usable server. For manual setup, check Type, Host, Port, and the relevant authentication fields individually. Do not use a website login password as connection credentials.

A subscription may contain multiple entries, but seeing them in the list only confirms that import is complete. Whether they connect depends on service status, protocol parameters, and the current network. During troubleshooting, keep one entry and one network fixed, note what happens, and then change one condition at a time.

Suggested order

Get → Import → Route → Verify

For your first setup, open the download page, choose your device, and follow the getting started guide to import details and authorize the VPN configuration. If you can already connect, go straight to the Global Routing and Config guides to see why a request uses PROXY, DIRECT, or REJECT.

The official Home screenshot above shows where to find the connection toggle, Global Routing, and Add Server. It does not show your device's current connection status. Check actual rules against your own configuration, paying particular attention to whether an earlier broad rule overrides a later, more specific condition.

Q02

Shadowrocket setup questions

Start with a specific question and go to the relevant setting. Interface terms below refer to iPhone / iPad; on other platforms, refer to the labels shown in the app.

The first matching rule determines the policy

When Global Routing is set to Config, requests are routed according to the rules in the active configuration. Open Config to confirm which file is in use, then check the order of the rules. Specific domain conditions generally go before broad conditions, with FINAL at the end for requests that do not match earlier rules. PROXY uses the proxy policy, DIRECT connects directly, and REJECT denies the request. Global Routing options Proxy and Direct switch the overall handling mode; they are not the same as matching individual rules in a configuration.

Show troubleshooting steps

Note the current file and Global Routing option, test one target request, and check which policy matched. Change only the relevant rule order. Avoid changing the server and configuration at the same time, so you can tell which change made a difference.

Q03

Choose how to get Shadowrocket for your device

Two ways to get it: iPhone / iPad: $2.99 one-time purchase on the App Store; Mac, Windows, Android, and Linux versions are free, with installers available on this site's download page.

iPhone / iPad

App Store $2.99 one-time · Free on other platforms

Get Shadowrocket from its App Store product page. Check the App Store page for system requirements. Before purchasing, confirm the store associated with your account. The same purchasing account can restore access on compatible iPhone and iPad devices; changing devices does not require a new purchase.

iPhone / iPad access details →

Mac

Free · Apple silicon / Intel

Check your chip in About This Mac, then choose the matching dmg. The download page has separate buttons for Apple silicon and Intel. If a system prompt appears when you first open the app, check the source and follow the installation guidance rather than guessing the chip based on browser detection.

Mac downloads →

Windows

Free · 64-bit installer

Get the exe from this site's download page. If SmartScreen appears on first launch, confirm that the file came from this site, then select “More info → Run anyway.” If your device is managed by an organization, follow the administrator's installation policies.

Windows downloads →

Android

Free · arm64 apk

Get the apk from this site's download page. When prompted by the system, allow the browser that started the installation to install unknown apps. If the built-in WeChat browser cannot download the file, open the download page in your system browser. You can revoke the temporary permission after installation if needed.

Android downloads →

Linux

Free · deb / rpm / AppImage

Choose a format based on your distribution's package management. Install deb and rpm packages with the appropriate package manager; AppImage requires execution permission first. The download page includes format and installation details. Before running a command, confirm the download location and exact filename.

Linux downloads →

Desktop and Android installers are available from this site's /dl/shadowrocket/ directory. To update, return to the download page for the current package; iPhone / iPad updates are handled through the App Store. Installation permissions and VPN connection permissions are separate steps. After installation, follow the getting started instructions to confirm VPN authorization.

View all platforms →
Q04

Three steps to your first connection

The preview below uses iPhone / iPad as an example. First connect manually, then consider automatic triggers, sync, or more advanced rule changes.

STEP 01 · Add Server

Add an existing server or subscription

Enter existing details from the add menu in Home. For a single server, fill in the fields according to Type. For an existing subscription, import it using Subscribe and update it. After saving, return to SERVER to check the entry and select the server you want to test. An import completing does not mean the connection has succeeded.

If using a QR code, first confirm the details came from your own service provider, then scan with Scan QR Code. Check the fields after import, and do not show subscription URLs or authentication details in public images.

STEP 02 · Global Routing

Check how requests are handled

To route requests by rules, select Config and confirm the active configuration file in Config. Proxy and Direct set the overall handling mode and are useful for troubleshooting once you understand their purpose. Do not keep switching modes whenever a target fails while overlooking the specific rules.

Keep the configuration simple for your first test. Confirm that the selected server can connect, then check the routing result. If you also import a complex configuration, change servers, and adjust DNS, it will be difficult to identify the cause of a problem.

STEP 03 · Connectivity Test

Turn on the connection and verify access

When establishing your first connection, allow the VPN configuration when prompted by the system. After authorization, return to Home, check the connection status, run Connectivity Test, and visit the target you need to verify that actual requests behave as expected.

An active connection toggle does not mean every request uses the proxy. If the result is unexpected, first check Global Routing and the rule policy, then check service status. Recording the specific failure stage helps more than repeatedly reinstalling the app.

Q05

How to verify the app, purchase, and restore access

Shadowrocket is a closed-source commercial app. Check App Store product details for iPhone / iPad; get installers for other platforms from this site's download page.

  • Developer Shadow Launch Technology Limited
  • App ID 932747118
  • iPhone / iPad $2.99 one-time · Free on other platforms

Check the developer, icon, and app ID

On the App Store product page, confirm the name is Shadowrocket and the developer is Shadow Launch Technology Limited, then check that the link contains app ID 932747118. Compare the official icon with the one in this site's header. Do not rely only on a name or similar-looking graphic in search results; all three details should refer to the same product.

This is the official Shadowrocket website and manual. The access guide explains store visibility, purchase, and restore in separate sections. Desktop and Android users should visit this site's download page and choose an installer for their device; the iPhone / iPad App Store purchase process does not apply to them.

If it does not appear in search, check the store region

The App Store shows apps based on the country or region associated with an account. Shadowrocket is currently unavailable to search for or get from the China mainland storefront. Device language, system region, and account storefront are separate settings; changing the device language alone does not change the account's store catalog.

First check the account shown under “Media & Purchases” in account settings, then check its “Country/Region.” Whether you can change regions depends on conditions such as account balance, active subscriptions, and payment details. Follow the prompts on your account page. For the exact check order, see the access guide; a missing search result does not by itself mean the device is unsupported.

One-time purchase and restoring on another device

The App Store price for iPhone / iPad is a one-time $2.99 in the US storefront; other storefronts show local currency. Mac, Windows, Android, and Linux versions are free. iPhone and iPad can share a purchase under the same purchasing account. When changing devices or reinstalling, first look in App Store purchased items and then check device compatibility.

If the page shows a purchase price again, first check whether the account under “Media & Purchases” matches the original purchasing account instead of paying again. Check the product page and Family Sharing settings for eligibility and member access. See the App Store page for system requirements.

Update the app and subscription separately

App Store provides app updates for iPhone / iPad. Mac, Windows, Android, and Linux users can return to this site's download page for the current installer. An app update changes the client itself; a Subscribe update changes the existing server list; a Config update may change routing rules. Each operation affects a different item.

Keep any configuration notes you need before updating. If a problem occurs, first identify which part was just updated, then compare the connection before and after. Do not attribute a failed server directly to an app update, and do not use subscription reimport as a substitute for checking the active configuration and Global Routing.

Selected FAQs

Why can't I connect after a successful subscription update?

A successful subscription update only confirms that the list was retrieved; it does not mean every server in it is available. Check the selected entry in SERVER, run Connectivity Test, and check service status, authentication parameters, and the current network. If the entry connects but the target cannot be accessed, check Global Routing and which rule matched.

Troubleshoot the connection step by step
Which Global Routing option should I choose: Config, Proxy, or Direct?

Choose Config to route according to configuration rules. Proxy and Direct set overall proxy and direct-connection modes, respectively. Choose based on what you are testing, and resend the target request after switching. In Config mode, a DIRECT result does not mean the client has failed; the request may have matched a rule that correctly uses a direct connection.

View routing mode details
What if the connection turns on and then connects or disconnects automatically?

First check the On Demand conditions and system VPN status. On Demand may establish a connection again when its conditions are met; an unavailable server or network change may also affect the connection. Temporarily disable On Demand and test manually to distinguish an automatic trigger issue from a server connection issue.

View the first connection steps
Why did changing one rule make no difference?

Confirm that the file you edited is the selected Config and that Global Routing is set to Config. Then check from the top of the rules list to see whether an earlier condition already matches. After saving, send the request again rather than judging the new rule by an existing connection. If needed, restore the original file for comparison.

View configuration checks
Q06

Installation and routing topics

For questions beyond the basic workflow, explore a topic-specific guide. These three articles cover Linux installation, REJECT rules, and the first connection screen.