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.
- Connected while idle: The connection may still need maintenance, or other apps may make background requests. That doesn’t mean there’s no network activity.
- Ongoing data transfer: Check which apps are in use, how much data is moving, and the device’s temperature—not just the VPN indicator.
- Repeated connection attempts: Even if a webpage never loads, handshakes, lookups, and retries may continue to use power.
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.
| Setting | What it does | What this means for battery use |
|---|---|---|
| Settings → On Demand | Sets conditions for starting connections automatically | May change how often or how long you connect; doesn’t guarantee lower battery use |
| Global Routing → Proxy | Uses a global proxy routing mode | Still depends on actual traffic and the quality of the remote connection |
| Global Routing → Direct | Uses a global direct routing mode | Doesn’t mean the network extension has stopped |
| Global Routing → Config | Matches rules and policies in the current configuration | Check 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.
-
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.
-
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.
-
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.
-
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.
-
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.
| Test | Connection setup | What to record |
|---|---|---|
| A: Steady connection | Disable On Demand and connect manually for 60 minutes | Starting and ending battery level, screen-on time, tasks, perceived temperature, and connection interruptions |
| B: On Demand connection | Enable the target conditions and do the same tasks for 60 minutes | Record the same metrics, plus automatic connections and network switches |
| C: Disconnected baseline | Disable On Demand and turn off the connection | Compare only if you can complete the tasks normally; failed access can make the sessions incomparable |
- Don’t charge during either test, and don’t compare a video session with one where the device is locked and idle.
- Note extra activity such as downloads, system updates, and photo syncing. Periods that include these tasks aren’t suitable for a direct comparison.
- For cellular tests, keep the location and signal conditions as similar as possible. Wireless activity under a weak signal may mask differences caused by connection settings.
- If the results are close, repeat the comparison at a similar time of day. A difference in a single test doesn’t prove that one setting will always use less power.
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.
- Subscription updates: Test a manual update only when needed. If it fails, first check that a link you already have is still valid. Repeatedly refreshing isn’t a battery troubleshooting method.
- Protocol choice: Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard have different settings and network behavior. There’s no fixed battery-saving ranking that applies regardless of the device, server, and network conditions.
- Log privacy: When documenting an issue, keep the time, network type, and error message. Remove subscription tokens, passwords, and other authentication details before sharing logs.
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.