How to set up a proxy server on Android

Android gives you two routes for sending traffic through a proxy: the Wi-Fi settings built into the system, and a dedicated app. The built-in route fails for most commercial proxies for one documented reason. Google’s ProxyInfo API reference defines a proxy configuration as a host, a port and an exclusion list, or a PAC file URL. There is no field for a username or a password, and no field for SOCKS. That is why an authenticated proxy returns error 407 in the system settings no matter how carefully you type the address. This guide covers the app route.

A proxy set on Android does not reach every app, and this is documented behaviour rather than a fault in your setup. The ProxyInfo reference on developer.android.com explains that proxy settings are already wired into the java.net and Apache HTTP stacks, so URLConnection and HttpClient pick them up automatically. Everything else is on its own: “Other HTTP stacks will need to obtain the proxy info from PROXY_CHANGE_ACTION broadcast”, states the same page. Apps built on Cronet, on native NDK code or on Flutter’s dart:io must subscribe to that broadcast themselves, and many never do. Their traffic leaves the device unproxied.

 

Screenshots in any Android proxy guide will only partly match your phone, because the install base is split across many versions and skins. Google’s own distribution data, reported by Android Headlines in January 2026, put Android 15 at 19.3%, Android 14 at 17.2%, Android 13 at 13.9%, Android 11 at 13.7% and Android 16 at 7.5%. The three most common versions together cover barely half the base. On top of that, Samsung, Xiaomi and OPPO replace the Settings app entirely, so menu wording differs even on identical Android versions.

Setting up proxies with apps

We will show the proxy configuration using two programs: ProxyDroid and Drony. In them you will connect both “Socks” and HTTPS proxy.

Any proxy app that routes traffic for other apps has to satisfy Google’s VpnService policy, and that policy shapes what you will find on Google Play. The Play Console Help page on VpnService states that “Only apps that use the VpnService and have VPN as their core functionality” may open a device-level tunnel, with exceptions for security tools, browsers, network utilities and carrier apps. Such apps must declare the use in their store listing, encrypt traffic to the tunnel endpoint, and must not redirect traffic from other apps for monetisation. Apps that fail this get removed.

The VpnService rules have been criticised for catching tools that never touched anyone’s traffic but the user’s own. When Google announced them, Reda Labdaoui, marketing and sales manager at the Swedish ad-blocking developer Blokada, told The Register that the “policy changes also apply to apps that use the service to filter traffic locally” on the device. The practical effect for anyone setting up a proxy is a narrower catalogue on Google Play, and more instructions that end with sideloading an APK.

ProxyDroid

ProxyDroid no longer requires root, and the screenshots below show an older build. The current source, published by developer madeye in the ProxyDroid repository on GitHub, describes the app as “VPN-first. No iptables, no redsocks, no root.” It registers a standard Android VpnService, captures packets on a TUN device and converts them into SOCKS5 or HTTP proxy connections in userspace through a Rust tun2socks bridge. The interface was rewritten in Jetpack Compose with Material 3, and individual apps can be excluded from the tunnel. If your build greys out the On/Off switch, you are running an abandoned copy.

proxydroid настройка

The proxy configuration algorithm in ProxyDroid is as follows:

  1. Open the application, tap the “Address” and enter it.

    прокси дроид проксиproxydroid proxy

     

  2. Click “Port” and enter it.

    proxydroid настройка проксипроксидроид настройка прокси

     

  3. Click the “Proxy Server type” and select it. We had IP of the Socks 5 protocol.

    proxydroidпроксидроид

     

  4. Scroll down and check the box next to “Enable Authorization”.

    proxydroid android

     

  5. Specify the username.

    проксидроид androidproxydroid андроид прокси

     

  6. Enter the password.

    proxydroid андроид проксиproxydroid прокси android

  7. Scroll up and tap “On / Off”. On the current build the switch activates without root; grant the VPN permission prompt when Android asks for it.

    proxydroid proxy android

Drony

Drony has not been on Google Play since 2 January 2020. The AppBrain listing for Drony records the app by developer sandrob as unpublished on that date, with the last update on 3 November 2019 and version 1.3.154 as the final release. It held a 3.88 rating from roughly 4,700 users before removal. Six years without a patch means no fixes for anything found in its networking code since then, and the only remaining sources are third-party APK mirrors that Google does not vet. Treat the walkthrough below as historical.

Old proxy APKs may refuse to install at all. Since Android 14 the system blocks any package whose targetSdkVersion is below 23, returning “App package must target at least SDK version 23, but found 7” according to Google’s Android 14 behavior changes documentation. Android specialist Jason Bayton notes on bayton.org that apps “targeting API levels lower than 24 (7.0) will not install from Android 15 onwards”, and that Android 16 kept that threshold. Apps installed before an upgrade survive it. New sideloads do not.

We do the following:

  1. Open “Drony”. The Log section will appear in the program. Swipe left. We will see the “Settings” section.

    drony настройка проксиdrony proxy настройка

     

  2. Select “Not Wi-Fi”.

    дрони настройка прокси

     

  3. Click “Hostname” and enter the proxy IP address.

    дрони настройка проксиdrony настройка прокси андроид

     

  4. Select the “Port” and enter it.

    drony настройка прокси андроиддрони настройка прокси андроид

     

  5. Select the “Username” and enter the login of the intermediate server.

    дрони андроидdrony android

     

  6. Click “Password” and enter it.

    drony ввод проксидрони ввод прокси

     

  7. Tap “Proxy type” and select the type of IP address.

    drony socks5drony https

     

  8. Go to the “Log” tab and click “Enable”.

    дрони прокси android

     

  9. We see that the proxy is working. If you want to disable the IP address, click “Disable”.

    дрони андроид прокси

Checking that the proxy actually works

Do not trust a green indicator inside the proxy app. Open a browser and check your visible IP against a checker; if it still shows your carrier or home address, the traffic is not going through. Then repeat the check inside the specific app you actually need proxied, because as explained above not every app honours system proxy settings. If Chrome returns ERR_TUNNEL_CONNECTION_FAILED, the host or port is wrong, the proxy is down, or your IP is not on the allowlist. On a developer-enabled device, adb shell settings get global http_proxy shows what the system currently holds.

IP allowlisting is the wrong authentication method on mobile data. Carriers place many subscribers behind one public IPv4 through carrier-grade NAT, and the address your device presents changes as it moves between towers, so there is no stable IP to allowlist. Use login and password authentication instead, which in turn means the built-in Wi-Fi proxy field cannot be used and a proxy app is required. On Wi-Fi the picture is different: a home or office connection usually holds a stable address, and allowlisting works there.

Before buying, settle three things that decide whether the proxy will work on your phone at all. First, the protocol: HTTP and HTTPS run through system settings, SOCKS5 needs an app. Second, the authentication method: login and password for mobile data, allowlisting only on a stable Wi-Fi address. Third, the exact apps you need routed, since the ones running their own HTTP stack will bypass a system proxy. You can buy USA proxies on our website; support runs 24/7 and will help you match the protocol and IP type to your case.