October 28, 2026 · Rules & Routing · About 8 min read

Shadowrocket vs sing-box on iPhone: Which Proxy App Fits You?

Not sure whether to buy Shadowrocket or try sing-box on your iPhone? This practical comparison covers setup, protocols, rules, cost, and daily use, then recommends an app by user type. Get a clear view of the trade-offs before switching configs or choosing your main iOS proxy client.

At a glance

Choosing between Shadowrocket and sing-box on iPhone depends less on a universal speed winner and more on how you want to manage profiles, protocols, and routing. Shadowrocket is a paid iPhone and iPad app with familiar Home, Config, and Global Routing controls. sing-box is a separate proxy platform whose iOS experience depends on the app and profile you use. This comparison focuses on setup effort, configuration style, protocol needs, purchase expectations, and everyday maintenance. It assumes you already have your own service and configuration; neither app purchase nor software project supplies a proxy service.

1. The real difference: a finished app or a configurable platform

Shadowrocket and sing-box can both be part of an iPhone proxy setup, but they present different choices to the user. Shadowrocket is a closed-source commercial app with a user interface organized around servers, configuration files, routing modes, and connection controls. Its value is that common tasks—selecting an existing server, importing a configuration, choosing a routing mode, and checking a connection—are available within one app workflow.

sing-box is best understood as a proxy platform and configuration ecosystem rather than as a promise that every iPhone installation has an identical interface. The available iOS app, the way it imports profiles, and the controls it exposes depend on the particular app build and its integration with the sing-box core. That distinction matters: documentation for a core configuration format does not necessarily describe the buttons or profile-import flow in a specific iPhone app.

For a buyer, the practical question is therefore not simply “Which name has more features?” Ask how much of the work you want the app to do for you. If you want a dedicated client with recognizable screens and settings, Shadowrocket may be easier to operate day to day. If your existing setup is already built around sing-box configuration and you are comfortable checking structured configuration, continuing with a compatible sing-box iOS app may involve less translation.

2. Setup and configuration: convenience versus direct control

In Shadowrocket, the normal setup sequence is to import an existing configuration or add a server, confirm the selected item in Home, authorize the iOS VPN request, and then test the connection. To add a server manually, use Home → “+” → Add Server, select the matching Type, and enter the address, port, and authentication fields supplied for your own service. A protocol name alone is not enough to fill in a server: each protocol may require different transport, TLS, credential, or obfuscation values.

Configuration files and server entries do different jobs. A server entry contains connection details; a configuration file can contain routing rules and policies. Before changing either, note which server is selected and which configuration is active. If the connection fails immediately after an edit, restore the previous known-good values before changing other settings. Changing the server, rules, and network at the same time makes it difficult to identify the cause.

With sing-box, setup may be straightforward if you already have a compatible profile and the iOS app accepts it as supplied. It can be more involved if you need to translate settings, understand a JSON-based configuration, or determine which fields the app permits you to edit. Do not assume that a profile written for one environment can be pasted into every iPhone app unchanged. Check the app’s own import guidance and validate that its supported fields match the profile you have.

Shadowrocket workflow

Server entry
Home → “+” → Add Server
Profile management
Config
Routing mode
Home → Global Routing
Before editing
Record the active server and configuration

Separate connection details from rules so that a change can be tested in isolation.

sing-box workflow

First check
Confirm the iOS app and its supported profile format
Configuration
Review the profile’s inbound, outbound, and route settings
Import
Use the import method documented by that app
Before editing
Keep an unchanged copy of the working profile

The core format and the app’s visible editing controls are not necessarily the same thing.

For either choice, begin with one existing server and a minimal test. Confirm that the profile imports, that the iOS VPN permission is granted, and that a known destination behaves as expected. Then introduce custom routing or additional protocol settings one change at a time. This sequence avoids treating an import success as proof that authentication, DNS, routing, and destination access all work.

3. Protocols and compatibility: match the configuration you already have

Protocol support is a useful filter, but protocol names are only the start of compatibility. Shadowrocket supports multiple proxy and tunnel types, including commonly encountered names such as Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard. The exact fields and options available can depend on the app version and the protocol implementation. Check the current app interface and the details provided for your existing service rather than relying on a generic protocol list.

sing-box is known as a multi-protocol proxy platform, but that does not mean every iOS app using it exposes every feature, transport, or setting supported by the core. Compatibility depends on the particular iOS app, its embedded core, and the profile format it accepts. Even when two implementations recognize the same protocol name, they may differ in supported options or in how a profile expresses them.

Before switching, compare the actual fields in your working configuration. Check the server address and port, authentication method, transport, TLS settings, and any required identifiers or keys. A mismatch in one field can look like a protocol incompatibility even when the protocol itself is supported. If a service provides a profile, use its documented import path and do not remove fields merely because they are unfamiliar.

A practical first choice when you want a dedicated iPhone client, familiar Home and Config screens, and a visual place to select servers and routing modes. Confirm that the protocol and required options in your own configuration are available in the installed app.

Best for: users who value a guided, app-centered workflow and want to manage everyday connection tasks from recognizable screens.

A reasonable fit when your existing setup already uses sing-box profiles or you specifically need a compatible sing-box configuration workflow. Check the iOS app’s supported core features, import method, and profile-editing limits before moving your daily setup.

Best for: users who already understand their sing-box profile and are prepared to verify app-specific compatibility.

Do not choose based on an advertised protocol count alone. A shorter list that exactly matches your existing profile may be more useful than a longer list that requires configuration work you do not want to maintain. Conversely, if a specific feature is essential, verify it in the actual iOS app rather than assuming support from the name of its underlying core.

4. Rules and diagnostics: understand what happens after connection

A connected VPN indicator does not by itself prove that a request used the intended proxy. In Shadowrocket, first check Home → Global Routing. If the mode is Config, the active configuration’s rules determine how requests are handled. If it is Direct, a working VPN connection can still send the tested request directly. If the mode is Proxy, the result does not establish that a particular rule matched.

Shadowrocket custom rules are read from top to bottom, and the first matching rule wins. Specific exceptions should therefore appear before broader domain or address rules. A final fallback handles traffic that has not matched an earlier line. For example, this illustrative rule sequence allows one hostname to use DIRECT, sends other subdomains through PROXY, and directs remaining traffic to the final policy:

[Rule]
DOMAIN,api.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

The example domains are placeholders, not service endpoints. The key diagnostic is the order: if a broader rule appears first, a later exception may never be reached. In a sing-box configuration, routing is expressed through its own structured route model. Do not paste Shadowrocket rule lines into a sing-box profile or assume that matching concepts use identical syntax. Translate the intended behavior and then validate the resulting profile according to the iOS app’s guidance.

Use a small test matrix instead of changing several rules at once. Keep the same network, server, and destination; test the expected direct case and the expected proxied case separately. If both behave incorrectly, check the active profile and routing mode before editing the rule. If only one destination fails, verify whether an earlier rule catches it, whether DNS handling changes the match, and whether the destination itself is reachable through the selected route.

Choose the workflow you can diagnose, not just the one you can import

Before making either app your daily client, test one server, one direct destination, and one proxied destination. Keep a copy of the working profile and record the selected routing mode. A setup that you can reproduce and troubleshoot is more useful than a feature you cannot verify.

5. Cost and daily use: separate the app from the service

Shadowrocket is a paid app obtained through the App Store. Its purchase covers the client app, not a remote server, a subscription, or service credentials. Check the App Store product page for current purchase availability, compatibility, and system requirements. The developer is Shadow Launch Technology Limited, and the app ID is 932747118. Use the official App Store listing as the source of current product details.

Do not compare the purchase cost of one app with the cost of a service plan as if they were the same item. A client is software for managing a connection; a subscription or server service is separate and has its own provider, terms, and availability. A free or differently distributed client does not make an existing service free, and buying Shadowrocket does not activate or renew a service.

For daily use, consider what happens when you update a profile, switch networks, or troubleshoot a failed connection. Shadowrocket provides a consistent set of app-level areas to check: Home for selection and connection state, Config for configuration files, Settings for app options, and Global Routing for traffic handling. With sing-box, the day-to-day experience depends more on how the iOS app presents profiles and errors. If you already maintain sing-box configurations, that may feel natural; if you prefer screens that separate common tasks, the Shadowrocket workflow may be easier to revisit.

Also account for migration effort. Before switching, preserve the current profile, note all required server parameters, and confirm that your existing configuration can be imported or accurately represented in the new app. Do not delete a working setup until the replacement has passed the same connection and routing tests. This is especially important when rules include domain exceptions, DNS behavior, multiple outbound choices, or fallback actions.

6. A practical decision checklist

Make the decision using your own configuration rather than a general claim that one client is faster or universally better. First list the protocol and options your current service requires. Then identify whether you need a visual server list, editable routing rules, or compatibility with a profile you already maintain. Finally, test the exact iOS app you plan to use. Menu names, import support, and available settings can differ between app implementations and can change over time.

If your priority is a dedicated iPhone and iPad client with clear everyday controls, Shadowrocket is a strong default to evaluate. Install it only through the App Store, verify the listing and app ID, and test your own configuration. If you are already comfortable managing sing-box profiles and the particular iOS app supports your required configuration, staying with that workflow can avoid unnecessary translation. Neither choice removes the need to understand your server details and routing behavior.

Can I import the same profile into both apps?

Not necessarily. Check the profile format accepted by each iOS app. A configuration written for one client or core may need conversion, and an import that completes does not prove every field was applied. Test authentication and routing before replacing a working setup.

Does buying Shadowrocket include a server or subscription?

No. The purchase is for the client app. You need your own service and valid configuration details. Verify purchase and compatibility information on the official App Store listing before installing.

Which one should I choose if I am new to proxy configuration?

Start with the app whose import process and controls you can verify. Shadowrocket’s Home, Config, and Global Routing areas provide a straightforward place to check common tasks. If you choose a sing-box iOS app, first confirm that you understand its profile format and that it supports the options your configuration requires.

How can I tell whether a routing rule is the problem?

In Shadowrocket, confirm Home → Global Routing is set to Config and that the intended file is active in Config. Then check rules from top to bottom, since the first match wins. Test one destination at a time and keep the server and network unchanged.

The short version is to choose for maintainability. Shadowrocket suits users who want a dedicated, app-centered iPhone workflow and whose existing protocol settings are supported. sing-box suits users whose profiles and skills already fit its configuration ecosystem and whose selected iOS app exposes the required features. Keep the original configuration, verify the exact app, and test real routing before making either one your only setup.

Verify the official App Store listing