VPN Keeps Disconnecting but Internet Is Fine? How to Fix It
Why a VPN tunnel drops while your regular connection works, and how to fix it: keepalives, protocol switches, MTU, battery savers, and conflicting VPN apps.
If your VPN keeps disconnecting but your internet is fine, the problem is almost always the tunnel, not your connection. The VPN is a separate encrypted session on top of your internet link, and it can be cut off by a router quietly forgetting it, oversized packets, your device’s power saving, a network change, or another VPN app taking over, while ordinary browsing keeps working.
Below is what causes each of those and how to fix it, roughly in the order worth trying.
Why the VPN drops when everything else works
Ordinary web traffic is short and bursty. Each page load opens fresh connections, so your browser barely notices if a router or firewall forgets an old one. A VPN is different: it is one long-lived session to one server, and every packet you send has to fit inside it. That makes it fragile in ways normal browsing isn’t:
- NAT and firewall timeouts. Home routers, mobile carriers, and public Wi-Fi keep a table of active connections and drop entries that go quiet. The WireGuard manual says this directly: its optional keepalive exists “for the purpose of keeping a stateful firewall or NAT mapping valid persistently.”
- Missed keepalives. OpenVPN sends regular pings and restarts the tunnel if none come back in time. According to the OpenVPN manual,
--ping-restarttriggers a restart “after n seconds pass without reception of a ping or other packet from remote.” A few seconds of packet loss that you’d never notice while browsing can be enough to trip it. - Packet size (MTU) problems. Encryption adds overhead to every packet. If the result is too large for some link along the way, packets get fragmented or dropped. Small requests work but larger transfers stall, and the app may decide the tunnel is dead.
- Power management. On Android, Doze mode “suspends network access” for idle apps, and App Standby “defers background network activity for apps with no recent user activity.”
- Another VPN taking over. Android’s VPN documentation is explicit: “There’s only one active service per user or profile. Starting a new service, automatically stops an existing service.”
Quick diagnosis: match the symptom to the cause
| When it drops | Most likely cause | First thing to try |
|---|---|---|
| After the phone or laptop sits idle or the screen turns off | Battery saving or sleep | Exclude the VPN from battery optimization |
| When the connection is quiet for a while | Router/NAT timeout | Switch protocol or enable keepalive |
| During big downloads, video calls, or uploads | MTU / fragmentation | Try another protocol or a lower MTU |
| When you move between Wi-Fi and mobile data | Network change | Use a protocol that handles roaming; update the app |
| Right after opening another security or VPN app | Conflicting VPN | Remove or disable the other VPN |
| Only on one network (office, school, hotel) | That network limits VPN traffic | Try a TCP or alternative protocol |
Step-by-step fixes
1. Rule out the simple stuff
- Update your VPN app and your operating system. Fixes for reconnect bugs ship in ordinary updates.
- Connect to a different server, ideally one closer to you. A single overloaded or unhealthy server is a common cause, and switching is the fastest test.
- Restart your router and device to clear stale connection tables.
- Check how many devices are signed into your VPN account. Most providers limit simultaneous connections, and going over can bump devices off. Your provider’s account page shows the current limit.
2. Switch the VPN protocol
Most consumer VPN apps let you pick a protocol in their settings, commonly WireGuard (or a provider’s own WireGuard-based option), OpenVPN UDP, OpenVPN TCP, or IKEv2. Different protocols react differently to flaky networks, so this is one of the most effective fixes.
- If you’re on OpenVPN UDP (UDP is OpenVPN’s default, per its manual), try OpenVPN TCP on networks that seem to drop UDP traffic. TCP is often slower, but it can be more stable on restrictive networks.
- If you’re on OpenVPN and the drops come when you switch networks, try WireGuard or IKEv2 if your app offers them.
- If you’re on WireGuard and it drops on one particular network, try OpenVPN TCP there.
Leave automatic protocol selection on if your app has it, unless you’re testing one protocol on purpose.
3. Stop power saving from killing the tunnel
If disconnects line up with the screen turning off or the device idling, power management is the likely cause.
On Android:
- Open Settings and find your VPN app under Apps.
- Open its Battery settings and set it to Unrestricted or Don’t optimize. Wording varies by manufacturer and Android version.
- Check for a separate manufacturer battery manager or “sleeping apps” list and make sure the VPN isn’t in it.
Android’s Doze documentation says idle apps only get network access during short maintenance windows. An app running a foreground service, which is what VPN apps use (it’s why they show a permanent notification), is not treated as idle. Manufacturer battery tools can still be more aggressive than stock Android.
On laptops, check whether the drops happen when the machine sleeps. Most VPN apps reconnect on wake, but if yours doesn’t, look for a reconnect or “auto-connect” option in its settings.
4. Remove VPN conflicts
- Look for other VPNs: antivirus suites with a built-in VPN, browser VPN extensions, a work or school VPN profile, or an old VPN app you forgot about.
- On Android, go to Settings > Network & internet > VPN (the path varies by device) and see which apps are listed. Only one can be active at a time, so two apps set to auto-connect will keep knocking each other off.
- Uninstall or disable whatever you don’t use.
If you use Always-on VPN on Android, note that the system controls the connection rather than the app, according to Android’s docs. If the VPN app doesn’t support Always-on properly, turning that setting off and using the app’s own auto-connect can be more stable.
5. Fix keepalive and MTU (advanced users)
If you run your own WireGuard or OpenVPN configuration rather than a provider’s app, you can tune these yourself:
- WireGuard keepalive:
PersistentKeepaliveis off by default. The manual says a device behind NAT that rarely sends traffic “might benefit from having a persistent keepalive interval of 25 seconds; however, most users will not need this.” If idle tunnels die, add it to the[Peer]section. - OpenVPN keepalive:
keepalive 10 60means ping every 10 seconds and restart if nothing comes back for 60. It’s usually set on the server, which pushes it to clients. - OpenVPN packet size:
mssfixlimits the size of TCP packets inside the tunnel so they aren’t fragmented after encryption. The manual lists its default as1492 mtu. Lowering it can help on links with a smaller MTU, like PPPoE or some mobile networks. - WireGuard MTU: set
MTUin the[Interface]section. There’s no single correct value. Lower it in small steps and test large downloads after each change.
Commercial apps usually manage this for you. Some expose an MTU setting, and their support docs will list the values they recommend.
Protect yourself while you fix it
Each time the tunnel drops, your traffic may go out over your normal connection until the VPN reconnects. That’s why the internet “seems fine”: it’s simply no longer going through the VPN. Turn on your app’s kill switch if it has one. On Android, you can also enable Always-on VPN together with Block connections without VPN, which the Android docs describe as blocking “any network traffic that doesn’t go through the VPN.” Just be aware that if the VPN can’t reconnect, you’ll have no connection at all until it does.
When to contact your VPN provider
If you’ve tried several servers, at least two protocols, and battery exemptions and the drops continue, send your provider’s support team the app’s connection logs (most apps can export them from settings) along with when the drops happen. Logs usually show whether the cause is timeouts, a server-side issue, or the network blocking the protocol. Don’t share your account password with anyone, including people claiming to be support.
Menu names and settings in VPN apps and operating systems change often. The steps above reflect the official documentation as of October 2026.
Free apps worth trying
SponsoredSponsored links. Installing through them can earn us a commission, at no cost to you. Apps are free to download; some offer optional in-app purchases.
Frequently asked questions
Why does my VPN only disconnect when my phone screen is off? +
That pattern points to power management. Android's Doze mode suspends network access for apps while the device is idle, and some manufacturers add their own battery savers on top. Excluding the VPN app from battery optimization in your phone's settings is the usual fix.
Is it safe to keep using the internet while the VPN keeps dropping? +
Every time the tunnel drops, traffic may go out over your normal connection until the VPN reconnects. If that matters to you, turn on your VPN app's kill switch, or on Android use Always-on VPN with Block connections without VPN, so nothing leaves the device unprotected.
Should I use UDP or TCP for my VPN connection? +
UDP is the default for OpenVPN and is usually faster, and WireGuard only uses UDP. If your network keeps dropping UDP sessions, switching to an OpenVPN TCP option or another protocol your app offers is a reasonable test, though TCP is often slower.
Can two VPN apps cause disconnects? +
Yes. On Android there is only one active VPN service per user or profile, and starting a new one automatically stops the existing one. Antivirus suites with built-in VPNs or a work VPN can knock your main VPN offline the same way.
Sources
- wg(8) manual page - WireGuard tools (github.com)
- OpenVPN reference manual - link options (github.com)
- VPN - Android Developers (developer.android.com)
- Optimize for Doze and App Standby - Android Developers (developer.android.com)