Cross-platform rule-based proxy client: import an existing configuration and process requests by rule. iPhone / iPad: $2.99 one-time; Mac, Windows, Android, and Linux versions are free.
First distinguish servers, configuration files, and routing modes; then adjust individual options.
Rules are matched from top to bottom
In Config, check the [Rule] section of the active configuration. Requests are checked in order, and the action specified by the first matching rule is applied; matching results are not combined. Place specific domains before broader rules, then use FINAL for requests that remain. Global Routing uses the configuration for rule routing only when Config is selected; Proxy and Direct are useful for troubleshooting overall proxy and direct-connection behavior. Keep a copy before editing, then retest the same target afterward. Changing the server and rules at the same time makes the cause difficult to identify.
Trigger connections based on network conditions
On Demand can trigger a connection when specified conditions are met; it is not a scheduled subscription update. Find On Demand in Settings. First confirm that a manual connection works, then set network conditions one at a time. After saving, test what happens when joining and leaving the relevant network, and check the system connection status. If automatic connections differ from expectations, temporarily turn the feature off and use the manual toggle to create a repeatable test. On Demand cannot replace valid server details or automatically correct expired credentials or an incorrect port.
Match the protocol to the server parameters
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard. When adding a server through Add Server, make sure Type matches the existing server details, then enter the address, port, and authentication fields for that type. The protocol name alone does not determine whether a connection will succeed; the transport, TLS, and server requirements must also match. Do not guess the type from the appearance of a link or enter one protocol's password in another protocol's authentication field. If information is missing, check the original configuration rather than repeatedly trying unrelated options.
Import a subscription you already have
A subscription centrally manages a set of server details. Before starting, have your existing subscription link ready. In Add Server, select the appropriate Subscribe type, enter the address, and save; then check that all expected entries appear. Updating a subscription fetches remote content again; it does not confirm that a connection test has passed. If an update fails, do not immediately delete older entries that still work. First check that the link was copied in full, is still valid, and can be reached over the current network. Subscription links may contain personal credentials and should not appear in public screenshots, logs, or configuration files shared with others.
Manage configuration files and servers separately
Server entries describe where to connect; Config files describe how to handle requests. They are not interchangeable. Before editing, confirm which file is active and check the General, Rule, Host, and URL Rewrite sections separately. The presence of a rule does not prove that it is taking effect. To keep settings across devices, check the iCloud sync options available in the app and verify the result on the other device. Sync is not the same as a local backup: save a copy before important changes, especially because remote updates and local edits can overwrite the same content.
Match test results to a specific request
Connectivity Test in Home is a starting point for connection troubleshooting; Diagnostics in Settings provides further checks. Before testing, fix one server and one routing mode. Record whether the problem occurs during resolution, connection establishment, or the response, then change just one related setting. Traffic statistics in Data can show whether data is being transferred, but traffic does not guarantee that the target page loaded, and one successful test does not mean all requests follow the same route. Before sharing diagnostics, remove subscription addresses, authentication fields, and other content that could identify a personal configuration.
Global Routing and rule policies are separate settings
Global Routing determines how requests are handled overall, while PROXY, DIRECT, and REJECT at the end of a rule determine what happens to a matched request. For everyday rule routing, select Config and confirm the intended configuration file is active. During troubleshooting, you can temporarily switch to Proxy or Direct to compare results, but note the original setting and restore it afterward. If you switch to Direct, the presence of PROXY in a configuration file does not mean the rule is faulty.
Likewise, seeing an entry in the server list only means its details have been saved; it does not mean the server is reachable. Check “import succeeded,” “server reachable,” “rule matched correctly,” and “request completed” as four separate steps. Verify one stage at a time to avoid changing rules when a subscription update fails, or repeatedly reimporting a server when rule order is the actual issue.
Choose How to Get Shadowrocket by Device
Two ways to get it: iPhone / iPad is a one-time $2.99 purchase on the App Store; Mac, Windows, Android, and Linux versions are free.
iPhone / iPad
App Store · $2.99 one-time · Other platforms free
iPhone and iPad share a purchase. Check the App Store page for system requirements. Open the product page, verify the developer and app ID, then check whether the app is available to your account. Store listings vary by account region, so failure to find the app in search does not mean it is no longer available.
If you have already purchased the app, check your purchase history before taking further steps. The current storefront determines the price. Mac, Windows, Android, and Linux versions are available free through the links below.
Open About This Mac to check the chip or processor name, then choose the matching dmg. Apple Silicon and Intel have separate installers; do not guess based on appearance or device size. The iPhone / iPad app is a one-time $2.99 purchase on the App Store; Mac and other desktop and Android versions are free.
If the first launch shows “cannot verify the developer,” confirm the file came from this site, then choose “Open Anyway” under Privacy & Security in System Settings. If it says the app is “damaged,” the download page has steps to resolve the issue.
Get the Windows 64-bit installer from the download page, save it locally, and then run it. If SmartScreen displays a warning, first verify the download source and file, then select “More info → Run anyway” to continue. If your device is managed by an organization, check whether installation is allowed.
Windows, Mac, Android, and Linux versions are free; the iPhone / iPad app is a one-time $2.99 purchase on the App Store. Existing configurations can help verify connection parameters, but permissions and interface layouts should be checked separately on each operating system.
Get the arm64 apk for Shadowrocket for Android from this site's download page. If Android asks for installation permission, allow “Install unknown apps” only for the browser or file manager you are using, and turn off the permission afterward. If a download will not start in WeChat, reopen this site in the system browser.
Android, Mac, Windows, and Linux versions are free; the iPhone / iPad app is a one-time $2.99 purchase on the App Store. When the system requests VPN permission on the first connection, read the prompt and confirm that the action is from Shadowrocket.
Choose a package format based on your distribution: use deb for Debian- and Ubuntu-based systems, rpm for Fedora and similar systems, or choose AppImage. AppImage needs execute permission after download. When using a package manager, check the dependencies and installation result shown in the terminal rather than running the downloaded file repeatedly.
Linux, Mac, Windows, and Android versions are free; the iPhone / iPad app is a one-time $2.99 purchase on the App Store. Get installers for computers and Android from this site's download page; files are served from the /dl/shadowrocket/ path on this site.
The steps below use the interface terms from iPhone / iPad. Before starting, have your existing subscription or server details ready.
01
Add Server: enter existing details
Open Add Server from Home. To add a server manually, select Type first, then enter Host, Port, and the corresponding authentication fields. For an existing QR code, use Scan QR Code; for an existing subscription, choose the Subscribe type. After saving, return to the list and check that the name and entry are as expected. Do not skip verification just because a saved confirmation appeared.
When copying a subscription address, check that the beginning, end, and parameters are complete. Do not paste explanatory text, spaces, or line breaks along with it. If import fails, check the content format and address validity first. If import succeeds but the test fails, check the server parameters. These issues occur at different stages and do not require changing everything at once.
02
Global Routing: choose how requests are handled
Use Config to route requests according to a configuration, and confirm the active file on the Config page. Proxy sends requests through a proxy, while Direct connects directly. For an initial test, choose one mode and select the server you want to test. Avoid switching modes repeatedly during the test, or the results will not be directly comparable.
Rules in the configuration determine what happens after a request matches. PROXY does not provide server details, and DIRECT does not guarantee that the destination is reachable. If one site behaves differently from others, check the rule that actually matched and the resolution result rather than deleting the entire configuration. See the complete rule guide for details.
03
Home: connect and test a request
Return to Home and turn on the connection. The first time, confirm VPN configuration permission when prompted by the system. Then run Connectivity Test and open a specific target you want to check. A switch in the on position only means the connection process has started; you still need to verify that the request completed and used the expected handling mode.
If it fails, first confirm that the basic network works, then check the selected server, Global Routing, and the active configuration. Keep the target and steps reproducible, and change one setting at a time. Before sharing diagnostic records, remove subscription links and authentication information. Do not publish full screenshots containing personal configuration details.
Verify the app using its product page, and choose the way to get it based on your device.
Check the developer, icon, and app ID
Open the Shadowrocket product page on the App Store. Confirm that the developer is Shadow Launch Technology Limited, the app ID is 932747118, and the icon matches the official one. Check all three together: a similar name, prominent search placement, or similar icon colors are not substitutes for verifying the app's identity. Use the product link on the download page to open the listing.
The iPhone / iPad app costs $2.99 as a one-time purchase on the US App Store; other storefronts show local currency. Mac, Windows, Android, and Linux versions are free. Do not apply the free-platform download method to an App Store listing, and do not rely on the price of a similarly named listing to identify the product. Get computer and Android installers from this site's download page.
Check search results and account region separately
App Store visibility depends on the account's region, content restrictions, and account status. If the app is unavailable in the mainland China storefront, trying different search terms repeatedly will not resolve a regional visibility issue. First confirm the country or region of the account currently signed in, then check content and age-rating restrictions in system settings. Finally, use the app ID to see whether the product page opens.
If you need to change your account region, follow Apple's process in account settings and check conditions such as account balance, subscriptions, and payment details. Changing the device language does not change the storefront region. If you already purchased the app, first confirm that you are using the original purchasing account. Switching accounts on the same device does not merge purchase histories.
Restoring a purchase and moving between devices
iPhone and iPad share a purchase. When changing devices or reinstalling, look for Shadowrocket in the purchased items of the original purchasing account. Restoring the app and restoring its in-app configuration are separate tasks: reinstalling the app does not guarantee that old servers, rule files, and connection selections return with it. Before migrating, check configuration backups or in-app sync options, then verify each item after migration.
The iPhone / iPad app is a one-time $2.99 purchase; Mac, Windows, Android, and Linux versions are free. To reinstall on a free platform, return to this site's download page and select the relevant device. For Mac, make sure to check whether you need the Apple Silicon or Intel version. A purchase receipt does not include server parameters; after installation, you still need to import your existing configuration.
Installation and Troubleshooting Guides
Check the requirements and steps for each operating system and specific issue.
Get the arm64 apk from this site and check which app is allowed to install unknown apps. If downloads do not work in WeChat, open the download page in the system browser and review permissions after installation.
Choose a package format for your distribution, install with apt or dnf, or add execute permission to AppImage. If the app does not start, first check the file path, permissions, and dependency messages.
Check the storefront region, content and age-rating restrictions, and account status in order. Verify the app using ID 932747118 and distinguish search visibility issues from purchase-history issues.