Cross-platform rule-based proxy client for importing existing connection details and setting up rule-based routing. iPhone / iPad: $2.99 one-time purchase through the App Store; Mac, Windows, Android, and Linux versions are free.
iPhone / iPad: $2.99 one-time through the App Store; Mac, Windows, Android, and Linux versions are free. Check your device and system first, then choose the matching option on the download page. If the system blocks an installation the first time you open it, follow the instructions on the download page rather than treating the prompt as a connection issue.
Desktop and Android installers are provided through this site's /dl/shadowrocket/ path. After an app update, get the latest package from the corresponding platform option. App Store manages iPhone / iPad updates.
First distinguish server details, configuration files, and routing modes. The sections below explain each by task; setting names remain in English so you can match them in the app. Their positions may vary by platform, so refer to the labels shown in your current interface.
Feature index
Global Routing and rule order
Global Routing determines how requests are handled. Config routes traffic according to the rules in the current configuration, Proxy sends applicable requests through the selected proxy, and Direct connects without a proxy. To handle domains or addresses differently, select Config first, then confirm which configuration file is in use. Rules are usually matched in order; a broad condition near the top can override more specific conditions below it. FINAL handles requests that did not match earlier rules. After making changes, verify the result for a specific destination instead of checking only the connection toggle.
On Demand triggers a connection when specified conditions are met, helping reduce repeated actions on a regular network. First verify that the server and rules work with a manual connection. Then check the On Demand conditions in Settings, keeping automatic trigger issues separate from server problems. After enabling it, test switching between Wi-Fi and mobile networks, and check whether other VPN configurations are involved. When you temporarily stop using it, also check whether the on-demand conditions are still active; a single manual disconnect does not confirm what will happen next.
Settings
On Demand
Match Type to the server parameters
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, and Hysteria2. When adding connection details, identify the Type first, then enter the address, port, authentication, and transport fields using your existing server information. A protocol is not a speed setting that can be switched at will: changing the client type alone cannot establish a connection if the server does not provide that protocol. If the same address fails to connect, check TLS, the server name, and transport settings rather than repeatedly changing protocols. See the protocol guide for details on the available fields and trade-offs.
Add Server
Type
Host
Port
Subscribe and individual server details
A subscription is used to retrieve and update multiple connection details; an individual server link usually describes one connection. Import only details you already have and understand. Get subscription links from your provider. When using Subscribe, check the full address. After importing, confirm that the expected entries appear in the list, then select one to test. If an update fails, check whether the link has expired, contains spaces, or is accessible from your current network. Keep the existing entry before adding it again to avoid confusing duplicates. Do not post links containing authentication details publicly.
Config
Subscribe
Add Server
Config: save rules and related settings
Configuration files organize rules and related settings; they are not the same as server subscriptions. In Config, confirm which file is selected, then review sections such as General, Rule, and Hosts. Keep a recoverable copy before making changes. If you use iCloud to sync details, check the relevant settings and sync results on each device; an app purchase does not automatically mean the configuration has synced. For use across devices, also check that paths, fields, and features are supported. Adjust and test one type of setting at a time so you can identify which change affected request handling.
General
Rule
Hosts
URL Rewrite
HTTPS Decryption
Assess test results separately from actual requests
Connectivity Test can check whether connection details are reachable. Test Method in Settings affects how the test runs. A response does not mean every app request will succeed; also check Global Routing, rule matches, and actual access results. Data can help you observe traffic changes, but total traffic alone cannot prove that a particular destination used a specified policy. When troubleshooting, record the network and symptoms, then review relevant information in Diagnostics. Before sharing records, conceal server addresses, authentication fields, and subscription links to protect your existing connection details.
Set your goal before changing anything: to add an existing server, start with Add Server; to update multiple entries, use Subscribe; to route traffic by destination, check Config and Global Routing. Connection methods, rules, and automatic triggers are separate settings. Avoid changing them all at once during your first setup.
The steps below use iPhone / iPad as an example. Before starting, prepare your own subscription link or server details and confirm that the device's regular network works. Complete one verifiable connection before adding complex rules; this makes issues easier to identify than importing several sets of details at once.
01
Add Server / Subscribe: import existing details
For one server, open Add Server from Home and fill in Host, Port, and the relevant authentication fields according to Type. If you have an existing link or QR code, use the appropriate import option to reduce manual entry errors. For bulk subscriptions, find Subscribe in Config. After importing, check the name, protocol, and address in the list before repeatedly tapping connect. Watch for extra spaces, line breaks, or missing characters introduced during copying.
Server links, subscription addresses, and configuration files serve different purposes. If an import option reports a format mismatch, first identify what type of details you have rather than modifying authentication information through trial and error. This guide explains how to use details you already have; this site does not provide, sell, or recommend nodes or subscriptions.
02
Global Routing: choose how to handle requests
Return to Home, select the server you want to use, and check Global Routing. Choose Config for rule-based routing. To check the selected proxy itself, you can temporarily use Proxy once you understand its scope; Direct means a direct connection. These are three handling modes, not three separate servers. When using Config, confirm that the currently selected file in Config contains the rules you need; importing a file does not enable it automatically.
For the first test, keep a recoverable copy of your configuration. example.com in the rule example is for syntax illustration only, not usable connection information. Before copying the example into a configuration, understand the matching target and policy. Check the quick reference for unfamiliar keywords before adding them.
03
Connection toggle and Connectivity Test: verify in stages
Turn on the connection toggle at the top of Home and confirm VPN configuration permission when prompted by the system. Then run Connectivity Test and visit the destination you want to test. An enabled toggle means the connection configuration is active; it does not verify access to a particular destination. A response from the test also does not confirm that rules matched as expected. If needed, combine traffic changes in Data with diagnostic records to determine whether the issue is with the network, server authentication, or routing settings.
When a connection fails, record what happened: no connection at all, failure for some destinations, or an issue that appears only after switching networks. Change one variable at a time and test the same destination again. First check the device network and server details, then Global Routing and configuration rules, and finally automatic trigger conditions. This sequence gives you a basis for comparison and avoids losing track after multiple changes.
The full guide follows the steps in order and explains what to expect after importing and what to check first if verification fails. For Type and parameter details, refer to the protocol guide.
Verify the app identity and distinguish two services
Shadowrocket is a closed-source commercial application. This is the official Shadowrocket website and manual; the download and usage instructions cover the client itself. When checking the product, use the Shadowrocket app name and identity details.
On the App Store product page, check the official icon beside the app name, the developer name Shadow Launch Technology Limited, and app ID 932747118 in the product link. A name in search results alone is not enough to distinguish listings, and a similar icon is no substitute for checking the developer. Open the product details before deciding whether to get the app.
For iPhone / iPad, system requirements are as listed on the App Store page; check the compatibility information for your current device before purchasing. For computers and Android, choose the matching installer from this site's download page. Packages are provided through this site's download path; do not mistake a same-name result in a mobile app store for the desktop version.
iPhone / iPad: $2.99 one-time through the US App Store. Mac, Windows, Android, and Linux versions are free. Other stores may display prices in local currency; the purchase confirmation page shows the actual charge. The one-time purchase is for the client, not a recurring server service, and it does not automatically add any servers to your list.
Purchases and restores with the same Apple ID
You can get the app on iPhone and iPad from purchases associated with the same Apple ID. When changing devices or reinstalling, first check the account currently used for purchases in the App Store, then look for Shadowrocket in your purchases. Restoring the app and restoring your connection details are separate tasks: after reinstalling the client, also check whether your existing subscriptions, servers, and configuration have been restored. A completed download alone does not confirm that your connection details are all there.
Can't find it? Check your store region
The app is currently unavailable on the mainland China App Store. If it does not appear in search, first check your Apple ID's store region and open the specified product page directly to confirm availability. Before changing your account region, review the prompts about balance, subscriptions, and payment methods, and follow the steps in your Apple account settings. System language and store region are separate settings; changing your device language does not change the product's availability.
Client purchase ≠ server plan
The client reads connection details, establishes connections, and handles requests according to rules. Server addresses, authentication details, and subscription validity depend on the service information you already have. After purchasing or downloading Shadowrocket, you still need to have a valid subscription or server information. This site does not provide any nodes or subscriptions or recommend providers. If a subscription expires, check the status of the original details; buying the client again will not fix server authentication.
App updates and subscription updates are separate
App Store manages app updates for iPhone / iPad. Get new installation packages for Mac, Windows, Android, and Linux from this site's download page. An app update changes the program itself; a Subscribe update refreshes the connection details returned by your existing subscription. Neither replaces the other. Save important configuration before updating, then verify the same destination and rules again to spot any behavior changes.
A failed connection does not mean you need to get the app again. First check that your details are complete and the network works, then verify the selected server and Global Routing. For On Demand, rule matches, or protocol parameters, consult the relevant guide.
The homepage establishes the steps for getting and configuring the app; these articles explain specific situations. They cover the two price tiers, purchase recovery on iPad, and Hysteria2 transport characteristics. If you have not imported any connection details yet, start with the first-connection steps in the setup guide.
iPhone / iPad: $2.99 one-time through the App Store; Mac, Windows, Android, and Linux versions are free. Learn how store pricing, purchase coverage, and server services differ, and how an app purchase record differs from the validity of an existing subscription.
Learn how to find the app in purchases associated with the same Apple ID, and why you should still check connection details after restoring the app. Covers iPad landscape split views and keyboard input, with tips for reviewing lists, editing fields, and checking configuration.
Explains Hysteria2's design trade-offs for mobile networks and high packet-loss links, starting with transport and congestion control, and discusses the relationship between speed and battery use. Protocol selection still depends on existing server support; a protocol name alone does not guarantee performance.
You can also read about choosing Linux package formats and importing with Subscribe. Use the protocol guide for protocol fields, the quick reference for interface names and rule keywords, and the setup guide for step-by-step instructions.