First distinguish active transfers, standby battery use, and the service being stopped in the background. Then decide whether to change battery optimization settings. This guide covers v2rayNG with the Xray core, explains what VPN and proxy-only modes handle, and walks through Android background permissions, per-app proxy, and split routing. Verify changes with repeatable comparisons instead of relying on the battery usage ranking.
Identify the battery drain scenario—not just the percentage
The app percentages on Android’s battery screen show each app’s relative share over a reporting period; they don’t mean that the app used the same percentage of the entire battery by itself. Systems also differ in how they attribute VPN traffic, background time, and network use. When a browser streams video, v2rayNG handles forwarding and encryption too, so appearing near the top of the battery list alone doesn’t prove there’s a problem.
Start by noting whether the screen is off, whether you’re on Wi-Fi or mobile data, whether downloads are ongoing, and whether the service keeps disconnecting. The figures below are troubleshooting parameters, not measured battery-life results or promises of longer battery life.
- Phone heats up during use: Pause video, cloud photo backups, and large downloads first. Check whether traffic and temperature drop together.
- Disconnects after the screen locks: Check whether the system is stopping the service. Don’t assume the node has failed or blame battery use.
- Traffic continues during standby: Check which apps are syncing and whether they need to use the VPN before changing protocol settings.
- Mobile data uses noticeably more battery: Test again on stable Wi-Fi. Weak signal, network switching, and repeated reconnects can all increase wireless overhead.
VPN mode vs. proxy-only mode: different traffic coverage
v2rayNG’s VPN mode uses Android’s VpnService to create a local virtual network interface and send traffic from included apps through the forwarding chain and Xray core. It doesn’t connect your device to an additional conventional VPN service; it’s how the app receives traffic from other apps. The protocol, node, and routing rules determine what happens next.
Proxy-only mode mainly provides a local proxy listener and doesn’t automatically handle traffic from every app. An app must support SOCKS or HTTP proxies and be configured to use one; a browser working online doesn’t mean other apps are using the proxy too. In some versions, choose this under Settings → Service Mode in the navigation drawer. Menu labels and available options depend on the installed version.
VPN mode with per-app controls
RecommendedA good fit for everyday use on most phones. First make sure the apps that need a proxy can connect, then narrow which apps are covered. There’s no need to hunt through each app’s own proxy settings.
Best for: Multiple apps need internet access, and you want to control which ones are covered.
Proxy-only mode
Only apps explicitly configured to use the local proxy will use the service. Check the listening address and port in each app’s settings. Local connections usually use a loopback address; don’t enable LAN access just to investigate battery use.
Best for: Apps that support proxies, when you can verify how they handle DNS, UDP, and other connections.
Bottom line: Narrow the traffic coverage before changing modes
For everyday use, keep VPN mode and configure per-app proxy. Test proxy-only mode only after confirming that the target apps can fully use the local proxy. Otherwise, traffic that isn’t being captured may look like a battery saving.
Battery optimization exemptions keep the service running; they don’t reduce power use
Settings such as “Unrestricted” or “Don’t optimize” are intended to prevent background restrictions from interrupting the service—not to reduce power use. Removing those restrictions can let the service run continuously, making its battery use more apparent than when the system frequently stops it. Check these settings first only if the connection drops when the screen locks, the notification disappears, or you have to restart the service after returning to the app.
-
Open app details
Long-press the v2rayNG icon → App info → Battery or App battery usage. Note the current setting, then look for options such as “Unrestricted” or “Allow background activity.”
-
Adjust battery restrictions
On Android versions with a stock-style interface, try “Unrestricted” and test again. On older versions, go to Settings → Apps → Special app access → Battery optimization, show all apps, and set v2rayNG to “Don’t optimize.” Not every system has both paths.
-
Check background management
On manufacturer-customized Android, search Settings for “Auto-start” or “App launch management.” If the service is being stopped, check whether background activity is allowed. Change auto-start permissions only if you need the app to perform a corresponding action, such as restarting after boot.
-
Keep the service notification enabled
Check the service notification permission under App info → Notifications. Since Android 8.0, foreground services generally need an associated notification. Don’t stop the service just to hide its notification, and don’t assume that allowing notifications guarantees background operation.
-
Test with the screen locked
Start the service, turn off the screen, wait for one comparison window, then check the notification, service status, and connectivity. If it stops only in battery saver mode, record that condition separately rather than disabling every system power-saving feature at once.
Per-app proxy: keep apps that don’t need it out of the VPN
If only a few apps need a proxy, per-app proxy is usually easier to check than routing every app through the VPN and then adding direct-connection rules. In common v2rayNG versions, open Settings → Per-app proxy from the navigation drawer. Some versions put the app list one level deeper; read the “Bypass mode” description before changing it.
The key is what the selected apps mean. In common versions, with “Bypass mode” off, only checked apps use the proxy. With it on, checked apps bypass the VPN. Don’t rely on the switch position alone—read the on-screen description. Bypassed apps usually use the system network, so don’t assume v2rayNG’s DNS or routing rules still protect them.
- Open “Per-app proxy” and enable “Enable per-app proxy.” Start by listing only the apps that really need a proxy, such as a browser and a work app.
- For “Proxy only selected apps,” turn off “Bypass mode” and check only the apps listed above. For “Bypass selected apps,” turn on bypass mode and check the apps that should connect directly.
- Save or go back, then stop and restart the v2rayNG service. Android VPN app lists usually take effect when the interface is created, so leaving the settings page may not rebuild the connection.
- Test one app included in the VPN and one excluded from it. A browser, an in-app web view, and a download component may belong to different processes or app packages, so check their actual behavior.
- Review the list after installing new apps. With “Proxy only selected apps,” newly installed apps aren’t automatically included.
Split routing and per-app proxy do different jobs
Per-app proxy determines which apps enter the VPN. Split routing determines whether connections that reach the core are proxied, sent directly, or blocked. A connection routed directly may still pass through the local interface and core, so don’t expect it to have the same processing overhead as an app that bypasses the VPN entirely.
| Setting | What it does | What to verify |
|---|---|---|
| Battery optimization exemption | Reduces background restrictions on the service | Whether the service keeps running with the screen locked |
| Per-app proxy | Controls which apps enter the VPN | What checked apps mean and where their traffic exits |
| Domain or IP routing | Selects an outbound route for captured connections | Rule order and which rule matches |
| DNS settings | Controls domain resolution paths and policies | Whether resolution succeeds and returns expected results |
In the navigation drawer, open “Routing settings” and check the existing rules and active route first. Don’t add large numbers of rules from unknown sources. Xray routing typically matches rules in order; a broad rule near the top can make more specific rules below it ineffective. Repeatedly sending failing connections to an unavailable outbound route can trigger app retries and extra network activity.
- Local network: If you need to access a printer or other LAN device, check the direct-connection rules for private IP ranges and the relevant Android VPN restrictions.
- DNS: If resolution is slow, times out, or returns unexpected results, check the current DNS settings first. Don’t change DNS, the node, and the entire routing setup at once, or you won’t know what helped.
- Background sync: Consider removing backup and update apps that don’t need a proxy from the included-app list. Whether they should connect directly depends on your needs.
- Protocol choice: You can’t predict battery life from the names VMess or VLESS alone. Transport, server quality, packet loss, and actual traffic all affect power use.
Compare two test rounds instead of copying battery-saving figures
Keep the battery level, signal, screen state, and background tasks as consistent as possible. Establish a baseline on stable Wi-Fi, then test mobile data separately. Don’t compare battery drain while charging, or compare a video-streaming round with a screen-off standby round.
- Record a baseline: Keep the original settings and note the starting and ending battery levels, traffic over 30 minutes, whether the service reconnects, and foreground and background times on the system battery screen.
- Change one thing: For example, enable only “Proxy only selected apps,” restart the service, and run another test window under the same conditions.
- Repeat the test: Run a second comparison under the same conditions. If the battery level changes by only one percentage point over a short period, the system’s display precision may hide any difference. Observe for longer; don’t calculate an exact percentage of battery saved.
- Check the trade-offs: Make sure notifications, message sync, domain resolution, and access to target apps still work as needed. A lower number isn’t worth missed traffic or service interruptions.
Bottom line: Keep changes that are repeatable and don’t disrupt connectivity
If narrowing the app list consistently reduces background traffic in repeat tests without affecting connectivity, keep the change. If the difference isn’t consistent, investigate signal strength and background tasks instead of switching cores or stacking more keep-alive settings.
Still draining battery or disconnecting? Troubleshoot by symptom
Why does the connection still drop when battery use is unrestricted?
First distinguish a stopped service from a failed connection. If the service has stopped, its running status will end or you’ll need to start it manually; if the connection has failed, the service may still be running while requests time out. Check manufacturer background restrictions, whether another VPN is taking over Android’s VPN slot, and when network changes occur. Then check v2rayNG logs for timeouts, DNS errors, or handshake failures.
Why is there traffic when I’m not actively using my phone?
Push notifications, account sync, automatic updates, and cloud backups can all run while the screen is locked. Check traffic usage under App info first, then adjust the per-app list. The node connection may also use data to stay connected, but not all background traffic is caused by keeping the service alive.
Can frequent speed tests help me choose a more battery-efficient node?
Frequent latency tests, bulk node checks, and repeated subscription updates all generate requests. During troubleshooting, test only a few candidates as needed and prioritize nodes that are stable in real use. A lower latency figure doesn’t guarantee lower battery use and can’t replace a standby comparison under the same conditions.
Should I switch clients or reinstall the app?
First note the v2rayNG version, Android version, service mode, and steps to reproduce the issue; then consider an upgrade. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core, so check protocol and configuration compatibility separately. Reinstalling changes settings and the app list, so it shouldn’t be the first step. Don’t assume v2rayN desktop background settings apply to Android.
For more help troubleshooting, see the Help Center or Technical Reference. Before sharing logs, remove subscription URLs, node credentials, UUIDs, and sensitive domain names. Keep only the error type, timestamp, and necessary environment details.