At a glance

You can’t judge Shadowrocket’s battery use solely by the VPN icon or time spent in the background. On Demand controls when a connection starts; it isn’t a battery-saving switch. For iPhone and iPad users with their own server details, this guide covers persistent tunnels, Wi-Fi and cellular conditions, failed connection retries, and battery comparisons to help distinguish normal traffic overhead from activity that needs troubleshooting.

First, know that an active connection doesn’t mean constant heavy load

Once Shadowrocket connects, iOS routes relevant traffic through its network extension. Returning to the Home Screen, locking the device, or switching apps doesn’t necessarily end the tunnel. But an active tunnel doesn’t mean the processor is constantly under heavy load, either. Battery use depends on traffic volume, encryption, signal strength, connection maintenance, and how often failed connections are retried.

Streaming video, syncing photos, and downloading large files all use power for the display, wireless communication, and data processing. Some network processing may be attributed to Shadowrocket in Battery settings, so its share of system battery usage shouldn’t be read as the same percentage of additional battery consumed by the app. The share can also change when other apps use less power.

App request System tunnel Rule matching Destination connection Data transfer

What On Demand does—and doesn’t do

After you set up connection conditions in Shadowrocket’s Settings → On Demand, iOS can use the saved rules to decide when to start a VPN connection. This lets you tailor connection behavior to your needs, such as connecting on a particular network. It doesn’t start a new tunnel for every request and close it as soon as the transfer ends.

On Demand and Home → Global Routing work at different levels. On Demand controls when a connection starts; Global Routing determines how traffic in the tunnel is handled. Setting Global Routing to Direct doesn’t turn off the VPN or disable On Demand. If you select Config, traffic handling depends on the rules and policies in the current configuration.

SettingWhat it doesWhat this means for battery use
Settings → On DemandSets conditions for starting connections automaticallyMay change how often or how long you connect; doesn’t guarantee lower battery use
Global Routing → ProxyUses a global proxy routing modeStill depends on actual traffic and the quality of the remote connection
Global Routing → DirectUses a global direct routing modeDoesn’t mean the network extension has stopped
Global Routing → ConfigMatches rules and policies in the current configurationCheck which rules and policies actually match

Set connection conditions for Wi-Fi and cellular

Start by defining which networks should trigger a connection, then configure On Demand. Don’t assume that Wi-Fi should always be off and cellular always on: home Wi-Fi, public Wi-Fi, and cellular may each have different access requirements, and the network type alone doesn’t establish whether a connection is secure. Available options and their order depend on the current interface.

  1. Confirm a manual connection

    On Home, select a server you already have and connect. Confirm that the webpages you need load correctly. If manual connection isn’t working, troubleshoot the server and configuration first so you don’t mistake a connection issue for an On Demand condition problem.

  2. Open the condition settings

    Go to Settings → On Demand and check whether it’s enabled and which conditions are saved. Before making changes, note the original settings—especially the network type, Wi-Fi name, and associated connection action.

  3. Set conditions for each network

    Choose the desired actions for Wi-Fi and cellular using the options shown in the interface. If matching by Wi-Fi name, verify the SSID carefully; two networks with similar names won’t necessarily match the same condition.

  4. Test network switching

    After saving, connect to the target Wi-Fi network, another Wi-Fi network, and cellular, one at a time. Let each connection stabilize, then check the status on Home and open the webpages you need.

  5. Test after locking the device

    While connected to the same network, lock the device for a few minutes, then unlock it and test access. Note whether it reconnects or is briefly unavailable. To temporarily disable connections, turn off On Demand first, then turn off the connection on Home.

When you move in and out of Wi-Fi coverage, the device may switch networks repeatedly, and existing connections may need to recover. If your settings cause the tunnel to start and stop repeatedly, those reconnections may offset any power saved while idle. For a commute, check that switching is stable before narrowing the networks that trigger automatic connections.

Use repeatable battery comparisons instead of guesswork

On your iPhone or iPad, open Battery in Settings and compare similar time periods, including battery level, screen activity, and app usage. Background activity time only indicates that activity occurred; it can’t be used on its own to calculate power consumption. The layout of this system screen may vary by iOS version. Check the App Store listing for system requirements.

Start with two 60-minute sessions under similar conditions: use the same device and Wi-Fi, keep screen brightness similar, and do the same tasks. This is a logging plan, not a test result. Don’t extrapolate a few percentage points of battery loss over a short period to estimate all-day battery life.

TestConnection setupWhat to record
A: Steady connectionDisable On Demand and connect manually for 60 minutesStarting and ending battery level, screen-on time, tasks, perceived temperature, and connection interruptions
B: On Demand connectionEnable the target conditions and do the same tasks for 60 minutesRecord the same metrics, plus automatic connections and network switches
C: Disconnected baselineDisable On Demand and turn off the connectionCompare only if you can complete the tasks normally; failed access can make the sessions incomparable

For unusual battery drain, check retries before changing protocols or rules

If the device gets noticeably warm while idle, first check for ongoing traffic or repeated connection attempts. Confirm which server is selected on Home, then check the address, port, authentication details, and transport settings for a service you already have. Don’t change ports at random to test the connection. For example, if your service uses port 443, it will connect only if the remote server is listening on that port and the other settings match.

The following are examples of messages that may appear in network errors. Not every protocol uses the same wording. Troubleshoot an item only if the corresponding message appears in your logs; otherwise, don’t treat it as a confirmed cause.

Error: Connection timed out

Possible cause and fix: The connection wasn’t established within the allowed time. The remote server may not be responding, the route may be unavailable, or the network may be unstable. Check the address and port for a server you already have, try again on stable Wi-Fi, then compare with cellular using the same server. Avoid repeatedly triggering connection attempts.

Error: Network is unreachable

Possible cause and fix: The current network has no usable route to the destination. This may also appear briefly while switching networks. Confirm that the device has basic internet access, wait for Wi-Fi or cellular to stabilize, then try again. If the error persists, check the destination address and whether it’s reachable on the current network.

If there are no repeated connection attempts but traffic is high, first identify which app is making requests, then check Global Routing. With Config selected, review request logs to confirm which rules matched and which policy was applied. The presence of DOMAIN-SUFFIX, GEOIP, IP-CIDR, or FINAL in a configuration doesn’t prove that traffic is being handled as intended. Rules determine where traffic goes; they don’t eliminate it.

FAQ: Persistent connections, closing the app, and automatic reconnects

Will enabling On Demand always save battery?

Not necessarily. Check Settings → On Demand to confirm that the conditions actually reduce connections you don’t need, then compare battery use with the same network and tasks. If the conditions always call for a connection, usage time may be similar to staying connected continuously.

Why does the connection still show as active after I swipe the app away?

The app interface and the VPN network extension managed by iOS are separate layers. To pause the connection, open Shadowrocket, disable automatic triggers in Settings → On Demand, then turn off the connection on Home and check the system VPN status.

Is battery use after locking the screen a sign of a problem?

First check the relevant period in Battery settings, then look for syncing, audio playback, background requests, or connection retries. A locked screen doesn’t mean the device has stopped using the network. Investigate further if a consistent difference appears in comparisons with similar tasks.

What should I change if the connection retries every time I switch to cellular?

First check that the cellular and Wi-Fi conditions in Settings → On Demand match your expectations, then test the switch again where the signal is stable. A change in network address may require the existing connection to recover. Record brief recovery separately from repeated connection failures.

How can I prevent an automatic connection when I don’t need one?

First disable On Demand triggers in Settings → On Demand, then turn off the connection on Home. Open a webpage again and check the status to confirm that no other system automation or device management setting is requiring a connection. Re-enable the original conditions when you’re ready to use them again.