Shadowrocket First-Time Setup: VPN Permission and Home Screen Guide

Learn why Shadowrocket requests VPN access on first launch, and explore the Home screen’s connection toggle, Global Routing, Connectivity Test, and SERVER list.

At a glance

This guide is for anyone who has just installed Shadowrocket and hasn’t connected for the first time yet. First, distinguish system VPN permission from server settings, then learn what Home, Config, and Settings do. By the end, you’ll know how to grant permission, import your own subscription, select a server, verify the connection, and identify which layer may be causing an issue.

VPN Permission: What You’re Allowing

Shadowrocket uses Apple’s Network Extension capabilities to handle traffic. During initial setup, iOS may ask for permission to add a VPN configuration. This prompt may also appear the first time you turn on the connection toggle rather than as soon as you open Home. Tap Allow and complete any authentication requested by the device. The timing and wording of the prompt may vary by device.

This permission allows the app to establish a local VPN connection. It does not import a subscription or create server addresses, ports, or credentials. The system VPN configuration, Shadowrocket rule configuration files, and server details from your provider are three separate things. System permission alone is not enough to reach destinations that require a proxy.

  1. Verify the App

    Make sure the app is named Shadowrocket, the App Store developer is Shadow Launch Technology Limited, and the app ID is 932747118. To verify these details again, visit the app guide.

  2. Open Home

    Open the app and check whether SERVER already has any entries. An empty list means you haven’t added server details yet; it doesn’t mean system authorization failed.

  3. Allow the Configuration

    When the system asks to add a VPN configuration, tap Allow and complete any authentication required by your device. If the prompt hasn’t appeared yet, prepare your server details, then try the Home connection toggle.

  4. Check the Status

    Return to Home and check the connection status. Permission granted doesn’t mean the connection is working: you still need to select a server and verify it with Connectivity Test and an actual request.

Home, Config, and Settings: What Each One Does

Home is where you manage the current connection, routing mode, tests, and server selection. Config is for configuration files and their rules. Settings contains app preferences, including On Demand. On your first run, establish a working manual connection in Home before changing other settings. This makes it easier to tell connection issues apart from automatic connection behavior.

3 Main Tabs
Home / Config / Settings: connection, configuration files, and app preferences
4 Modes
Global Routing:Proxy / Direct / Config / Scene
2 Settings Levels
Settings → On Demand: Review automatic connection settings

The Home connection toggle starts or stops the local connection. Global Routing determines how requests are routed. Connectivity Test provides a way to diagnose connectivity. SERVER lists imported or manually added servers. These sections work together but don’t replace one another: changing the routing mode won’t fix an incorrect password, and selecting a server won’t add missing rules to a configuration file.

SERVER List: Import First, Then Choose a Default Server

This guide assumes you already have a provider and subscription of your own. Get your subscription from your provider. Shadowrocket is a closed-source, paid app available as a one-time purchase through the App Store; buying the app does not include a service plan. Purchasing the app and obtaining a working server are separate steps. If SERVER is empty, start by preparing your own connection details.

To import a subscription, tap “+” in the upper-right corner of Home, choose Subscribe under Type, paste your own subscription URL, and save. Return to Home to check that server entries appear, and update the subscription if needed. Subscription URLs often contain credentials, so don’t include the full URL in public screenshots or support requests. To add a server manually, choose the Type that matches the protocol provided by your provider.

Choose an Import Method Based on What You Have

I Have a Subscription URL
  • Home → “+” → Type → Subscribe。
  • Paste the URL from your provider, then save.
  • Check the update result and the actual entries in SERVER.
  • After updating, confirm which server is currently selected.
I Have the Details for One Server
  • Home → “+” → Type, then choose the matching protocol.
  • Enter the server address, port, and authentication details.
  • Check the TLS and transport settings against the details provided.
  • After saving, return to SERVER and select the entry.

Both methods import information you already have. Once the import is complete, select a default server and verify the connection.

Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different fields and authentication methods. Don’t reuse a set of parameters for another Type just because the names look similar. Use the port provided by your provider; for example, enter 443 only if they specify it—443 is not a universal port for every protocol. Don’t replace the TLS server name with an IP address without checking the required value.

Global Routing: How Modes and Rules Work Together

Global Routing changes how traffic is handled; it doesn’t change your provider account or server settings. When troubleshooting for the first time, note the current mode. If Proxy works but Config doesn’t, check which rules match and where the policies point before changing passwords or reinstalling the app.

Config

Recommended

Routes requests according to the rules and policies in the active configuration file. A request may use a proxy or go DIRECT; requests that don’t match earlier conditions are handled by a fallback rule such as FINAL. Make sure the configuration file works before using this as your everyday mode.

Best for: everyday use with established routing rules.

Proxy

Handles traffic intercepted by the app in proxy mode, which can help isolate the effects of standard routing rules. Switching to Proxy won’t fix the connection if the server is unavailable.

Best for: checking the proxy path and comparing it with Config.

Direct

Handles traffic intercepted by the app in direct mode. This is different from stopping the VPN connection: the app can remain connected while requests take a direct route.

Best for: checking whether a destination is reachable directly over your local network.

Scene

Uses configured scene conditions to determine routing behavior. Check the scene settings and your current network before selecting it. Scene does not automatically find an available server.

Best for: switching behavior based on your environment when scenes are already configured.

When learning Config, start with four common rule keywords. DOMAIN-SUFFIX matches domain suffixes; GEOIP matches based on an IP address’s geographic location; IP-CIDR matches address ranges; FINAL sets the policy for requests that haven’t matched an earlier rule. Rules are generally evaluated in order, so put more specific conditions before broader ones.

[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

Connection Toggle and Connectivity Test: How to Check That It Works

After selecting a server, turn on the connection toggle in Home. If the system asks for permission, grant it first. If the toggle immediately switches off again, check the system prompt and server settings. A toggle that stays on only indicates the connection is in its corresponding state; it doesn’t mean every destination is reachable. Test a destination’s response and make an actual request as well.

Before Connecting

Check
Home → SERVER
Current selection
The default-selection dot is next to the intended server
Routing mode
Home → Global Routing
Source of settings
Use the address, port, and credentials provided by your provider

Confirm the destination before turning on the connection. Change one variable at a time.

After Connecting

Check
Home → Connectivity Test
Check the result
See whether the test gets a response or times out
Make an actual request
Open a destination you need to access
Keep conditions consistent
Use the same server and network, and note the Global Routing mode

Test results apply only to the conditions tested; they don’t replace an actual request.

Latency tests in SERVER and Connectivity Test aren’t the same thing. Latency reflects the response under the selected test method; it isn’t a bandwidth guarantee. Connectivity Test results can also depend on the test destination, DNS, routing policies, and network conditions. If a test succeeds but a specific page won’t load, check the domain, matching rules, and route for that request.

Settings → On Demand: Configure It After Manual Connection Works

On Demand triggers connection behavior based on conditions you set. It determines when to connect; it doesn’t determine whether a server is available. Before using it for the first time, make sure manual connection, Connectivity Test, and an actual request all produce results you can interpret. Then review the conditions in Settings → On Demand.

If the connection comes back shortly after you turn it off, check whether On Demand is enabled and whether the current network meets its conditions. Assuming the toggle is broken could lead you to mistake normal on-demand behavior for a fault. After changing the conditions, try again on the same network and note the app’s status.

  1. In Home, confirm the current server and Global Routing mode, then verify the connection manually.
  2. Open Settings → On Demand and check whether it’s enabled and which network conditions are configured.
  3. Adjust the conditions as needed. When troubleshooting for the first time, don’t also change the rules file or server settings.
  4. Return to Home and observe the connection on the network you expect to use. Confirm that the behavior matches your settings.
Get Shadowrocket from the App Store