Designed primarily for iPhone and iPad, with guidance on importing existing subscriptions and configuring traffic rules. The app is a one-time purchase; check the App Store listing for system requirements.
Understand connections, routing, and configuration files
Shadowrocket Q&A is the official Shadowrocket manual. First identify which layer your issue belongs to: server details determine where the connection goes, Global Routing determines how requests are routed, and rules in Config determine how specific destinations are handled. Turning on the connection only means the connection process has started; it does not mean every destination follows the same route.
The six topics below are organized around common tasks. If you’re new to Shadowrocket, start with Global Routing, then import a subscription you already have. If you’re already connected, start with Config and the diagnostic tools. Example domains and IP ranges are for explaining rules only; they are not server details. Select a topic to read its guide, or see the user manual for the full workflow.
Global Routing: Choose among three modes
Choose Config to route requests according to rules, Proxy to test the current proxy route, or Direct to check how your local network connects directly. Find these options under Global Routing on Home. In Config mode, results depend on the active configuration file and rule order, not just the selected server. When troubleshooting, change one mode at a time, revisit the same destination, and record the result. This helps distinguish a routing change from a server parameter issue.
Set up On Demand only if you want connections to start automatically under specific network conditions. First verify that your existing server works when connected manually, then check the available On Demand options in Settings. The options shown in the app may vary. On Demand and routing rules operate at different levels: the former determines when a connection starts; the latter determines how requests are handled. If the connection starts again after you turn it off, check this setting and the system VPN status before deleting servers. Test the changes on each network you actually use.
Rule example · Not an On Demand condition
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
Subscribe: Import an existing subscription and verify it
To import a subscription, you need a valid subscription URL of your own. Under Type in Add Server, select Subscribe, enter the URL and a label as prompted, then save and check that the corresponding server group appears. A successful import does not guarantee that every entry will connect; verify the protocol and status as well. If an update fails, first check that the URL is complete, then confirm that your local network can reach the subscription source. Subscription URLs may contain account credentials, so don’t share them publicly or include them in screenshots. Keep your existing working details before updating so you have something to compare against.
Rules you can configure after importing
DOMAIN,example.com,PROXY
FINAL,DIRECT
Type: Match the protocol and parameters
When adding a server, choose the Type that exactly matches your existing server details; don’t choose based only on a similar name. Protocols such as Shadowsocks, VMess, VLESS, Trojan, and Hysteria2 use different fields. Check Host, Port, authentication details, and transport options individually. If a field is missing, refer to your provider’s documentation instead of guessing by switching protocols. The protocol determines how the connection works; Config rules determine where requests go. Neither replaces the other. Keep one configuration you can verify, then adjust parameters one at a time to pinpoint issues.
For predictable routing, check the active Config file rather than just confirming that a file was imported. Open the file and review the matching conditions, policies, and order under Rule. More specific conditions generally belong before broader ones; FINAL handles requests that did not match earlier rules. Keep a copy of the original file, change one group of rules at a time, and test the destination. If you manage configuration files with iCloud, confirm that both devices have the same file selected and the same contents. File sync does not mean all connection states are synced.
When a connection issue occurs, start with Connectivity Test to see how the current test performs, then review Data traffic records and Diagnostics in Settings. Test results depend on the method and network, so they don’t necessarily reflect real-world app speeds. Traffic records alone also don’t prove that a request followed the intended policy. Use the same destination to compare the current server, Global Routing mode, and matched rule. Before sharing troubleshooting details, remove subscription URLs, authentication information, and private browsing records; include only what’s needed to identify the issue.
Rule examples for checking policies
DOMAIN,example.com,DIRECT
FINAL,PROXY
Devices and the App Store
Purchase and first-launch guidance by device
Shadowrocket is available only on Apple platforms, exclusively through the App Store. Before purchasing, check the listing in the storefront associated with the Apple Account you use, and review compatibility, price, and the purchase button. Check the App Store listing for system requirements, compatibility, and whether Universal Purchase applies. Don’t assume a result shown on another device applies to your current device.
iPhone
After purchasing and installing from the App Store listing, prepare your own server details and follow the guide to add them. When you connect for the first time, the system may ask to add a VPN configuration. Confirm only after checking that the request comes from the Shadowrocket app you opened. This permission sets up a system connection configuration; it does not create a server or subscription.
Use the same Apple Account you used to purchase the app to check your App Store purchases, then restore access as shown in the store. Check the App Store listing for purchase eligibility on iPhone and iPad. A larger display does not change the meaning of server parameters; after importing, verify the selected server, Global Routing mode, and active Config individually.
Shadowrocket is also available from the same App Store on Mac and Apple TV. Check the store listing for compatibility.
Before switching devices, consider app purchase history and in-app configuration data separately. The App Store identifies purchases through your account; save or sync configuration data using the options provided in the app. Even if the store lets you download the app again, recheck your existing subscriptions, authentication fields, and system permissions on the new device. Don’t assume all settings have been restored automatically.
Verify the genuine app and understand the purchase
Check the developer, official icon, and App ID
A search result can help you find a listing, but it does not verify that it’s genuine. On the App Store product page, confirm the name is Shadowrocket, then check the developer, icon, and App ID together. Shadowrocket is a closed-source commercial app; purchases, redownloads, and updates are handled through the App Store. Check the store listing directly for price, compatibility, and update history instead of relying on outdated information elsewhere.
Developer
Shadow Launch Technology Limited
Check the full developer or seller name on the product page. Don’t rely only on the title in search results or pay just because a description looks similar. Open the listing and check which app the purchase button applies to; this helps avoid selecting an app with a similar name.
App ID
932747118
The App Store product page URL contains id932747118. The App ID identifies the specific listing and does not change with the displayed price or store language. Read the full number and compare it with the developer and official icon rather than relying on part of the name in the URL.
Official icon: Compare it with the icon in this site’s header
This site’s header uses the official Shadowrocket icon. The white background and blue-purple outlined design can help you recognize the App Store listing, but a similar-looking icon alone is not enough to confirm it. Check the developer’s full name first, then the App ID, and finally compare the icon and app name. All three details should identify the same app. Verify the listing on its product page before purchasing; the details are easier to inspect there than in search results.
One-time purchase: You’re buying the client app
Shadowrocket is a one-time purchase. The US storefront price is approximately $2.99; prices in other storefronts are shown in local currency. The amount shown on the App Store purchase confirmation screen is the final price. A one-time purchase covers the app only; it does not include external servers or determine how long your existing subscription remains valid. If you have a payment issue, first check the account and payment status shown in the store so you don’t mistake a failed payment for a connection problem.
Listing visibility: Check your account region and restrictions
If you can’t find the listing, first check the storefront region used by your Apple Account, then review your device’s content and age-rating restrictions. You can also open the product page from this site’s App Store guide to see any specific messages. Region, account status, or device settings may affect how the product page appears; one unsuccessful search doesn’t mean the app has changed its name. Follow the page prompts to check the relevant settings. Don’t share your account password or payment information with anyone to find the listing.
Restore a purchase: Start with the original account
After reinstalling or switching devices, first confirm that the App Store is signed in with the Apple Account used for the original purchase. Then search for Shadowrocket in your purchases or app list. If the store still shows a price, check the account, purchase history, and listing before paying again. Check the current store guidance for Family Sharing and cross-device eligibility. After redownloading the app, restore your own configuration data and verify connection permissions on the new device.
Updates and configuration: Keep separate records
App updates are delivered through the App Store; check the store for available updates and release notes. Configuration files, subscription contents, and the app itself are separate. Updating a subscription may change the server list; editing Config may change request routing; updating the app changes client features and behavior. Before making changes, note which type of update you’re performing and keep your existing working configuration. If something goes wrong, you can then troubleshoot the relevant layer instead of resetting everything at once.
Choose the next step based on what you observe; don’t change everything at once
Before troubleshooting, note your current network, selected server, Global Routing mode, and active Config. Change one variable at a time and test the same destination again so you can distinguish a parameter issue from a rule or local network issue. The answers below point to likely causes and what to check next. For specific fields and full instructions, continue to the troubleshooting guide.
I imported a Subscribe profile. Why can’t I connect?
Importing means the app received the entries in the subscription; it doesn’t guarantee that each one can connect. First confirm that a server is selected in the list, then check that your subscription is valid and its protocol parameters are correct. Next, run Connectivity Test on the same network and try accessing a destination. If the update failed, check that the URL wasn’t truncated and that the subscription source is reachable. Don’t delete the whole list right away.
Why are some requests still DIRECT in Config mode?
Config routes requests according to rules; it doesn’t send every request through PROXY. First check which file is active, then review the rules from top to bottom for a match, paying particular attention to broad conditions and the position of FINAL. To compare routes, you can temporarily change Global Routing, then restore the previous mode after testing. Don’t mistake a temporary setting for your long-term configuration.
Why is real-world browsing still slow when Connectivity Test shows a low figure?
A test may measure conditions that don’t reflect the full process of accessing a site, so one number can’t tell you everything. Real-world performance also depends on the destination, transport parameters, local network, and current route. Compare the same destination while changing one network or existing server at a time, and confirm that requests use the intended policy. Don’t change the protocol, server, and rules all at once; otherwise, it’s hard to tell what caused the difference.
Why do I need to check my configuration again after reinstalling the app?
The App Store restores your purchase eligibility; it does not confirm that all in-app data has been restored. After reopening the app, check your server list, active Config, and system connection permissions, then test manually with an existing server. If you use iCloud to save data, confirm what the current device actually received. Protect backups containing authentication details, and don’t share a complete configuration when asking for help.
Verify the genuine app, understand protocols, and troubleshoot connections
For help with a specific issue, continue with a related guide. Each article starts with the conclusion and the conditions it applies to, then walks through the checks. Guidance involving servers and protocols assumes you already have your own details; it does not evaluate or recommend providers. Here are the three latest articles. Browse the article index by topic for more beginner and App Store account guidance.
If you find a listing with a similar name or icon, open its product page and check the developer’s full name, read the App ID in the product URL, and compare the official icon. This article explains what each detail tells you and follows the order in which to check them, so you don’t have to rely on search ranking or title alone.
Learn how Hysteria2 transport works, how it relates to QUIC and UDP, and how congestion control and network conditions affect it. Once you understand the basics, check the parameters against your own server details. A protocol name alone does not guarantee connection speed.
Even after a connection is established, server response, transport parameters, and your local network can all affect performance. This article uses a fixed destination, one change at a time, and repeated tests to explain the troubleshooting order, what to record, and when to check which rules matched.