Home › Guides › AdGuard guide

ByeDPI with AdGuard on Android: both at once, via proxy mode

You install AdGuard on Monday. On Tuesday you install ByeDPI — and AdGuard politely stops working, because Android just handed its one traffic-routing job to the new arrival. Nothing is broken. That's the one-VPN-app rule, and this guide is how both apps get their jobs back.

Last updated: November 3, 2026 · Checked against the official ByeDPI documentation and GitHub repositories.

Illustration for running ByeDPI with AdGuard: a green shield with a check mark beside an advertisement block crossed out in red
One chain, two jobs: AdGuard holds the VPN slot and filters the ads, ByeDPI feeds it through the proxy and handles the DPI.

Why they collide

On Android, "VPN mode" is not really about VPNs. It is the system's one sanctioned way for an app to see and route the device's traffic, which is why ad blockers, firewalls and tools like the ByeDPI Android app all reach for it — and why the system hands it to a single app. Start the second one and the first is evicted. Users reasonably assume the tools are incompatible. They are not; they just cannot both hold the same system role. The fix, in one line: AdGuard keeps VPN mode, ByeDPI drops into proxy mode, and AdGuard forwards its traffic through ByeDPI.

The arrangement that works

Let AdGuard keep VPN mode and do the filtering. Demote ByeDPI to proxy mode, where it simply listens as a SOCKS5 proxy on the phone itself. Then tell AdGuard that its upstream proxy is ByeDPI. AdGuard processes traffic first, then forwards it through the local proxy, whose desync methods deal with your provider's Deep Packet Inspection (DPI) filtering. The order matters and, helpfully, only really works in this direction.

1

Run ByeDPI in proxy mode

Open ByeDPI, switch it from VPN mode to proxy mode in its settings, and start it. Note the listening details: by default SOCKS5 on 127.0.0.1, port 1080.

2

Exempt ByeDPI inside AdGuard

In AdGuard, open the App management tab and add ByeDPI to the exceptions, so AdGuard does not try to route or filter the proxy app itself into a loop.

3

Set AdGuard's proxy to ByeDPI

In AdGuard's proxy settings, enter exactly: type SOCKS5, host 127.0.0.1, port 1080.

4

Start AdGuard and test both jobs separately

First confirm an ad-heavy page is filtered — AdGuard's job. Then open a DPI-blocked site — ByeDPI's job. Testing them separately tells you which half broke when something later goes wrong.

Where this setup usually breaks

A typo in the proxy fields. HTTP instead of SOCKS5, or port 1080 mistyped, produces the nothing-loads failure described in our SOCKS proxy setup guide and the troubleshooting guide. Forgetting the exception. Without it, AdGuard may try to manage ByeDPI's own traffic and the arrangement can loop or stall. Updating one app and losing the settings. After a major update to either app, re-check the three fields before blaming your provider for a new block. And a battery note: two traffic-processing apps cost more than one. It is the honest price of having both, and in our view worth it only if you genuinely use both — if ads do not bother you, ByeDPI alone in VPN mode is the simpler life.

Does the same trick work on desktop?

Not in the same form, because desktop ad blocking usually lives in the browser as an extension — and browser extensions happily coexist with a system or browser proxy setting. On Linux or Windows you simply set the SOCKS proxy as usual and keep your extension. The chain problem is an Android VPN-mode problem, and proxy mode is its specific answer. More Android-specific behaviour, including updates via Obtainium, is covered on the ByeDPI for Android page, and quick answers live in the FAQ.

Honest costs of the chain — and when we would not bother

The chain works, and this guide recommends it, but it is not free of cost and pretending otherwise would set you up to rip it out in a month. Two apps now process every packet your phone sends. On a recent phone you will not feel it; on an older one, the honest symptoms are a warmer device on long video sessions and battery drain you can measure rather than imagine. There is also a standing maintenance tax: when either app updates, the three proxy fields and the exception are worth a thirty-second re-check, because an update that resets one field produces exactly the nothing-loads failure you will otherwise blame on your provider.

After an update, if…Likely causeFix
Nothing loads at allProxy fields reset or mistyped during the updateRe-enter SOCKS5, 127.0.0.1, 1080 exactly
Ads are blocked, blocked sites stay blockedByeDPI stopped, or AdGuard is no longer forwarding to itStart ByeDPI in proxy mode; re-check AdGuard's proxy toggle
Unblocked sites crawlAdGuard is routing ByeDPI's own traffic, or filtering got heavierRe-add the ByeDPI exception under App management

One decision to keep separate: AdGuard's own HTTPS filtering, if you enable it, asks you to install its certificate so it can inspect encrypted traffic. That is a trust decision about AdGuard, with its own merits and its own critics, and it has nothing to do with ByeDPI — do not let the convenience of this combined setup smuggle it past you unexamined. And the honest opt-out: if you open blocked sites for twenty minutes a day and ads barely register, skip the chain entirely. Run ByeDPI alone in VPN mode for those sessions, close it after, and let your phone have one traffic app instead of two. The chain earns its complexity only when both jobs are genuinely daily jobs.

Two apps, one phone, no more fights

If the chain works, protect it: setting up the ByeDPI SOCKS proxy in your browser covers the proxy values you just typed, in their native habitat, and what DPI is and how providers block sites explains the filter you are routing around. More in that vein lives in the ByeDPI guides hub. Fresh install? the official ByeDPI download page and the step-by-step ByeDPI installation guide precede everything on this page. Breakages go to the ByeDPI support page; quick sanity checks to the ByeDPI FAQ.