v2rayNG on Android: VPN Permissions, Battery Optimization & Per-App Proxy

Learn what Android’s VPN permission prompt means, how to prevent battery settings from stopping v2rayNG, and when to use per-app allowlists or bypass lists.

At a glance

Android connection issues with v2rayNG usually come down to three things: whether Android allows the VPN, whether the service can keep running in the background, and whether the apps you want to use are included. This guide is for first-time setup, disconnects after locking the screen, and routing only selected apps through the proxy. Check permissions, background restrictions, and app lists in that order to separate system settings from node, DNS, and routing issues.

VPN permission: creates a local tunnel, but doesn’t verify your node

v2rayNG uses Android’s VpnService API to create a local virtual network interface, then passes captured traffic to the Xray core. The first time you start VPN mode, Android usually displays a connection request warning that the app can monitor network traffic. Tapping Allow authorizes the local tunnel; it does not test the remote server or fix an incorrect address, port, or security setting in your subscription.

Here, VPN refers to Android’s traffic-capture mechanism, not a specific remote protocol. A node may use VMess, VLESS, or another protocol. Android determines which apps enter the tunnel; the node configuration and core routing determine how their traffic is handled afterward. v2flyNG uses the V2Fly core, so not every v2rayNG setting described here applies to it.

1
Usually, only one VPN service can be active per user or profile
API 21
Android 5.0 and later provide APIs to allow or exclude apps
API 26
Android 8.0 and later require VPN background services to follow foreground service rules

The key icon in the status bar indicates an active VPN connection; it does not prove that proxy traffic is reaching its destination. Some devices hide the icon or show VPN status in Quick Settings instead. Check v2rayNG’s status, its service notification, and whether apps can actually reach their destinations. These Android platform details are not minimum OS requirements for the current app version.

  1. Select a node

    Open v2rayNG and select an imported node on the main screen. Check the server address, port, and protocol. A subscription group name does not necessarily identify the selected node.

  2. Start the service

    Tap the Start button in the bottom-right corner of the main screen. When Android shows a connection request, confirm the app is v2rayNG, then tap Allow to create the VPN connection.

  3. Check for conflicts

    Go to Android Settings → Network & internet → VPN to check for other active services. On some devices, look under Connection & sharing or More connections, or use Settings search to find VPN.

  4. Test access

    Use a browser included in the proxy list to open the site you want, then check the v2rayNG logs. If the service starts but the site won’t load, troubleshoot the node and DNS rather than repeatedly reinstalling the app.

Disconnects after locking the screen: check whether the service stopped or the network changed

If v2rayNG works with the screen on but stops after a few minutes locked, common causes include background restrictions, manufacturer process cleanup, or a stale connection after switching between Wi-Fi and mobile data. Exempting the app from battery optimization only addresses background restrictions; it cannot stabilize your carrier network or revive an unavailable node. First note whether the service notification disappears and whether you have to tap Start again after unlocking.

What you seeCheck firstWhat to do
Service stops and its notification disappearsBackground activity or process cleanupSet the app’s battery usage to Unrestricted, then check its autostart permission
Service appears active, but requests time out after switching networksUnderlying network or stale connectionConfirm mobile data works, stop and restart the service, then test the same site again
Only one app won’t loadPer-app list or the app’s connectionCheck the app list, fully close the target app, then reopen it
All apps fail consistently, even after a restartNode, DNS, or authentication settingsLook for DNS resolution failures, connection timeouts, or handshake errors in the logs; compare with a known-working node

Run a repeatable check: keep the same node and network, test in the foreground, lock the screen for 10 minutes, then check the service status as soon as you unlock. Also test once while switching from Wi-Fi to mobile data. Ten minutes is an observation window for troubleshooting, not a guarantee against disconnects. Recording the exact time is more useful than noting that it happens “often.”

Bottom line: change one variable at a time

First relax the battery restrictions, then repeat the screen-lock test with the same node. If the service stays active but requests still time out, investigate the network and logs instead of adding unrelated system permissions.

Battery optimization: configure battery use, autostart, and background locks separately

Android’s standard battery optimization, manufacturer autostart controls, and app locking in Recent apps are separate controls. Disabling one restriction does not disable the others. Menu names vary by Android version, region, and device. The paths below are common examples; if yours differs, long-press the v2rayNG icon, open App info, and look for battery and background activity settings.

SystemCommon settings pathWhat to change
Near-stock AndroidSettings → Apps → v2rayNG → App battery usageAllow background usage; select Unrestricted if a battery policy is available
XiaomiBattery saver in App info; search Settings for AutostartSet the battery policy to No restrictions and allow background autostart if needed
Huawei and HonorSettings → Apps → App launchTurn off automatic management for v2rayNG and allow background activity; enable autostart and secondary launch if needed
OPPO and realmePower usage or Battery usage in App infoAllow background activity, then check autostart settings
vivoSearch Settings for Background power consumption and AutostartAllow v2rayNG to run in the background and check its autostart permission
SamsungSettings → Battery → Background usage limitsKeep the app out of the Sleeping and Deep sleeping lists; optionally add it to Never auto sleeping apps

Locking an app in Recent apps can reduce the chance of accidentally closing it with a cleanup action, but it does not exempt the app from all battery restrictions. Autostart permission also does not guarantee that a proxy connection will start after reboot; that depends on the client, system authorization, and startup conditions. Don’t grant unrelated permissions, such as contacts or location, just to keep the app running.

Per-app proxy: choose an allowlist or bypass list

v2rayNG’s per-app proxy setting controls which apps send traffic through the VPN. The usual path is the side menu → Settings → Per-app proxy, where you can enable the feature, toggle Bypass mode, and select apps. Menu locations and labels vary by version. Follow the screen’s explanation of whether selected apps use or bypass the proxy.

Allowlist: route only selected apps

Recommended

Enable per-app proxy, turn off Bypass mode, and select only the browsers or tools that need the proxy. Unselected apps usually keep using the device’s normal network. This is easy to manage and troubleshoot when only a few apps need proxy access.

Best for: routing 2–3 apps through the proxy while other apps keep their normal connection

Bypass list: exclude selected apps

Enable per-app proxy, turn on Bypass mode, and select the apps that should stay outside the VPN. The VPN handles all other apps. Newly installed apps are usually included by default, so check whether they need to be added to the bypass list.

Best for: proxying most apps while letting a few connect directly

Disable per-app proxy

No app allowlist or exclusion list is applied. The VPN captures traffic from apps Android allows it to capture, then passes it to the core for routing. This is a useful baseline for troubleshooting, not a way to force every request through the same proxy exit.

Best for: confirming the overall connection works before narrowing the proxy scope

“Allowlist” is a convenient name for this mode, not a list supplied by your subscription server. Don’t rely on an empty allowlist as a way to block all traffic: the client may handle an empty selection specially, and Android may create a tunnel covering all apps if no allowed apps are added. If you don’t need the proxy, stop the service instead.

Per-app lists and core routing: two separate layers

Per-app proxy determines whether an app enters the VPN. Core routing determines which outbound route its traffic uses. Even when a browser is selected, some domains may still connect directly under your routing rules. Conversely, an excluded app usually never reaches the Xray core, so changing domain rules there won’t enable proxy access for it.

The same distinction applies to DNS. Apps in the tunnel may use system DNS or their own encrypted DNS; excluded apps usually resolve names over their normal network. Browser Secure DNS, the client’s DNS settings, and core routing rules are separate controls. If a domain won’t load while the service is still running, check DNS logs instead of changing battery settings.

  1. Turn off per-app proxy and test the basic connection with the same browser and node. Confirm that the node and core configuration work.
  2. Turn per-app proxy back on, select only that browser, and make sure Bypass mode is off. Then stop and restart the service.
  3. Visit one site that should connect directly and another that should use the proxy. Check the outbound route in the logs; page load speed alone isn’t enough to tell.
  4. Once the basic behavior is as expected, add other apps one at a time. Keep a list you can restore, and avoid changing DNS, routing, and battery settings at the same time.

Common issues: repeated permission prompts, reversed app selection, and failed reconnects

Why does Android ask for VPN permission every time I start?

The permission prompt is part of Android’s VPN setup and is usually unrelated to the node address. First check whether another VPN app has taken over or Android has cleared the previous authorization, then check the active service under Settings → VPN. Don’t change your node password or protocol just to dismiss the prompt.

I selected my browser. Why isn’t it using the proxy?

Go to Settings → Per-app proxy and check Bypass mode. When it’s on, selected apps bypass the VPN. To route only the browser through the tunnel, turn it off. Save, stop and restart the service, then reopen the browser. If it still connects directly, check the core routing rules.

Why does the VPN still disconnect when the screen is locked, even after I lock the app?

Locking the app in Recent apps does not replace its battery settings. Allow background activity in App info, then check autostart and sleep lists. Test for 10 minutes on a stable network. If the service stays active and only fails after a network switch, troubleshoot network recovery and the node instead of changing the app lock.

An app on the bypass list has no internet access. What should I change?

Go to Android Settings → VPN → v2rayNG and check whether Block connections without VPN is enabled. If excluded apps need direct access, turn off this restriction and test again. Then check mobile data permission and the app’s own network settings.

My phone didn’t reconnect after reboot. Do I need to reinstall the app?

Reinstalling isn’t the first step. Open v2rayNG manually, check that the node is still there, and try starting the service. If it connects, the configuration is intact. Then check the manufacturer’s autostart permission and whether the client offers a start-on-boot setting. If you use Android’s Always-on VPN, verify that it is supported on your device and app version.

Keep a stable, easy-to-understand setup: VPN authorization works, background restrictions are relaxed as needed, the per-app list has a clear purpose, and routing and DNS are tested separately. When something goes wrong, note your Android version, v2rayNG version, the time, network type, and service status. Before sharing logs, hide subscription links, server addresses, and authentication details. These details help diagnose issues more than repeatedly switching protocols.

Download v2rayN