When Shadowrocket first connects on an iPhone, iOS may ask whether to allow the app to add a VPN configuration. This prompt can be confusing if you are setting up a proxy rather than subscribing to a traditional VPN service. The permission is needed because iOS provides apps such as Shadowrocket with a system-managed way to handle network traffic. It does not, by itself, supply a remote server, create a subscription, or mean that every connection is sent through a proxy.

At a glance

This beginner’s guide explains what the iOS VPN configuration does, what happens when you allow or deny the system prompt, and how to confirm that Shadowrocket is connected. The steps assume you already have your own subscription or connection details. The key distinction is that VPN access lets the app work with a local system tunnel; your selected connection and routing settings determine how traffic is handled beyond your iPhone.

1. Why Shadowrocket asks for VPN access

iOS does not let an ordinary app freely intercept and route all of the device’s network traffic. To provide traffic-routing features, Shadowrocket requests permission to add a VPN configuration to iOS. After you approve the request, the operating system can establish a local network tunnel managed by the app. Shadowrocket uses that system-supported connection to process traffic according to the connection and routing settings you have selected.

The word “VPN” in the iOS prompt describes the system networking mechanism. It does not tell you which remote service, if any, the app will use. A proxy client can use the same operating-system facility to receive and process traffic, even though its purpose and setup are not identical to a conventional VPN service. The iOS permission is therefore about allowing a network configuration to be created and used—not about buying a connection or choosing a particular server.

Think of the request as permission for Shadowrocket to connect its local traffic-handling component to iOS networking. That component can then apply the selected routing mode and, where appropriate, forward traffic using a connection you already configured. Without that system authorization, the app cannot establish the same system-level tunnel, so its connection features may not work as expected.

App requests authorization iOS adds a configuration System tunnel starts Routing settings apply Selected connection handles traffic

This is different from granting an app general access to every item on your iPhone. The prompt concerns a VPN configuration and the network traffic handled through it. Review the wording shown by iOS, and do not treat an unfamiliar prompt from another app as equivalent just because it also mentions a VPN.

2. What the iOS configuration enables

The configuration allows iOS to start and manage a network tunnel associated with Shadowrocket. While the tunnel is active, the app can apply its traffic-handling behavior, such as using a selected connection or applying rules from the active configuration. The system status indicates that a VPN-style network connection is active; it does not reveal which server is selected, whether a particular domain matched a rule, or whether a request reached its destination successfully.

There are two related but separate places to check. Shadowrocket’s Home screen is where you select an existing connection, control the app’s connection, and review Global Routing. iOS Settings is where you can inspect the system VPN configuration and its status. The presence of a configuration in iOS does not prove that a usable connection has been imported into Shadowrocket. Likewise, seeing a connection entry in Shadowrocket does not alone prove that the iOS tunnel is currently active.

Shadowrocket settings

Screen
Home
Connection
Select an existing connection that you are authorized to use
Routing
Check Global Routing: Proxy, Direct, Config, or Scene
Configuration
Check the active file in Config when using rule-based routing

These choices determine how Shadowrocket handles traffic after the system tunnel is available.

iOS Settings

Purpose
Review the VPN configuration managed by iOS
Status
Check whether the system connection is active
Authorization
Allow the configuration when prompted by iOS
Menu
Look under Settings → General → VPN & Device Management → VPN; labels may vary by iOS version

This view confirms system-level status, not the result of every individual request.

When you use Config routing, the active configuration’s rules decide how matching traffic is handled. A rule may send a request through a proxy or use DIRECT, and a fallback such as FINAL may apply when no earlier rule matches. With Proxy selected, traffic handled by Shadowrocket follows the global proxy behavior; with Direct selected, the traffic is not sent through a proxy by that routing choice. These routing choices are not the same thing as turning the iOS VPN configuration on or off.

3. What VPN permission does not mean

Approving the prompt does not automatically provide a remote VPN server or proxy connection. You still need valid connection details or your own subscription, and the selected connection must be usable on the network you are currently using. If you have not added connection details, authorizing the iOS configuration alone will not create them.

Permission also does not mean that every request from every app necessarily follows the same proxy route. The behavior depends on Shadowrocket’s current Global Routing mode, its active configuration and rules, and the traffic being tested. A request matched to DIRECT can remain direct even while the system shows an active VPN configuration. A system VPN indicator is evidence of a tunnel state, not a receipt showing the route taken by each domain.

Nor does the prompt mean that Shadowrocket is itself a traditional VPN provider. The app is a client that applies connection and routing settings you configure. The iOS mechanism helps the client handle network traffic; it does not bundle an independent remote network service into the permission. Client purchase and access to a connection service are separate matters.

Practical distinction: check the tunnel and the route separately

If iOS reports an active VPN connection but a website behaves differently than expected, check Global Routing and the matching rule in Config before changing the system permission. The tunnel can be active while a particular request is routed DIRECT, blocked, or affected by an unrelated DNS or network issue.

This distinction is useful when diagnosing both apparent successes and failures. If a page loads, that alone does not prove it used a proxy. If a page fails, that alone does not prove the VPN authorization was denied. Record the system status, selected connection, Global Routing mode, and test result separately so you can identify which part needs attention.

4. Allow and check the configuration

For a first connection, start with the system prompt and then verify the app’s own settings. Exact screen placement can vary by iOS release and device, so follow the labels displayed on your iPhone rather than relying only on an icon location. These steps are for checking your own existing connection details; they do not provide a connection or subscription.

  1. Review the prompt

    When iOS asks to add a VPN configuration, read the request and choose Allow if you intend to use Shadowrocket’s network features. iOS may ask you to authenticate with the device passcode or another system authentication method.

  2. Check Home

    Open Shadowrocket → Home. Confirm that an existing connection entry is available and select the one you intend to test. If you have not imported your own connection details, the VPN permission prompt cannot substitute for them.

  3. Check routing

    On Home, review Global Routing. Choose the mode that matches your intended test. If you use Config, open Config and confirm that the intended configuration is active and contains the rules you expect.

  4. Start the connection

    Turn on the connection from Home and wait for the app and iOS to show a connected state. If iOS presents the authorization prompt at this point, approve it only after confirming that the request is from Shadowrocket and is expected.

  5. Test one request

    Open a destination you normally use, then check the result in the app. Use Home → Connectivity Test if you need a basic connectivity check, and keep the same network and test method when repeating it.

To inspect the system entry later, open iOS Settings and look for the VPN section. Depending on the installed iOS version, a route such as Settings → General → VPN & Device Management → VPN may be available; on some versions, VPN can also appear directly in Settings. Check whether the Shadowrocket configuration is listed and whether the current status agrees with what the app shows. Do not infer a successful proxy route solely from the presence of this entry.

If you are deciding whether to allow the configuration, consider what you are trying to do. If you want to use Shadowrocket’s traffic-routing features, iOS needs to authorize its configuration. If you do not intend to connect, you can decline; the app will not be able to establish that system tunnel until authorization is granted. You can review the system configuration later in Settings, but changing or removing it may interrupt active connections.

5. Troubleshoot VPN access and connection status

When Shadowrocket does not connect, troubleshoot in stages instead of repeatedly toggling the iOS permission. First determine whether authorization was granted, then check the app’s selected connection and routing mode, and finally test the destination. This separates a system-configuration issue from a connection, rule, or network issue.

“I tapped Allow, but Shadowrocket still says it is disconnected.”

Return to Home and check that an existing connection is selected and the connection switch is on. Then inspect iOS Settings → VPN to see whether the Shadowrocket configuration is present and active. If it is listed but inactive, start the connection again from Home and note any new iOS prompt or error.

“The VPN indicator is visible, but one website still does not load. Why?”

Check Global Routing first. If it is set to Config, open Config and inspect the rule that matches the domain, including whether the action is PROXY or DIRECT. Then test another destination and check Home → Connectivity Test. The indicator does not confirm the route or result for each request.

“I denied the prompt. How can I try again?”

Start the connection again from Shadowrocket. If iOS no longer displays the authorization prompt, open Settings and inspect the VPN section for an existing Shadowrocket configuration. Check the system’s available controls there, then return to Home and retry. Menu names can differ by iOS version.

“Does adding the configuration mean I have a VPN subscription?”

No. It adds the system configuration used by the app. You still need your own valid connection details or subscription. Check the selected entry in Home and confirm with your service provider if those details are unavailable or no longer work.

If the VPN entry is missing, the connection repeatedly stops, or iOS displays a specific error, write down the exact message and when it appears. Note whether the problem happens on Wi-Fi, cellular data, or both. Avoid changing several settings at once: changing the selected connection, routing mode, configuration, and system authorization together makes it difficult to identify which change affected the result.

Also distinguish authorization problems from routing outcomes. If iOS cannot establish the system configuration, focus on the VPN section in Settings and the system prompt. If the tunnel is active but a destination fails, focus on the selected connection, Global Routing, rules, DNS behavior, and the current network. If only one app or domain is affected, compare it with another test destination before resetting the entire configuration.

6. Common questions

The short answers below summarize the most common misunderstandings. Use them alongside the checks above: the system status and Shadowrocket’s routing settings answer different questions.

The practical takeaway is simple: iOS VPN access is the system permission Shadowrocket needs to establish its traffic-handling tunnel. It is not a remote connection service and does not determine the route for every request by itself. Confirm the iOS tunnel, the selected connection, and Global Routing as separate parts of the setup; that gives you a clearer answer when a connection works—or when it does not.