Skip to content

How to Set Up a Proxy on Android

Set a proxy on Android: the Wi-Fi setting, which apps follow it, the APN on mobile data, adb's global proxy, SOCKS5, the login prompt and Android's errors.

HProxy TeamAugust 7, 2026Updated October 3, 202611 min read

How to Set Up a Proxy on Android

Android hides this one well. The proxy is not in the main settings menu; it belongs to each Wi-Fi network on its own, and the screen carries a warning worth reading first: "The HTTP proxy is used by the browser but may not be used by the other apps." This page shows where the setting is, which apps follow it, what to do on mobile data and with a login, and how to set a proxy for the whole device with adb.

We wrote it from Android's own source code, the Android Open Source Project, which defines every label, warning and error on the stock proxy screen, and from Chromium's code for Chrome. We did not use a phone for this page, so the screen below is drawn from Android's own texts rather than captured. Phone makers can move and rename the menus; the fields themselves come from Android.

Where you set itWhat it reachesWhat it leaves out
A Wi-Fi network: Proxy, ManualChrome and apps on Android's standard networking, on that networkMobile data, other networks, apps with their own network code, SOCKS
A Wi-Fi network: Proxy Auto-ConfigThe same, following the script's rulesThe same
The APN: Proxy and PortMobile data, for apps that follow Android's proxyWi-Fi
adb: settings put global http_proxyEvery network, for apps that follow Android's proxyApps with their own network code
An app's own proxy settingThat appEverything else
Who follows the Wi-Fi proxy on Android

Follow it

  • Chrome

    reads the proxy Android hands to apps

  • Apps on Java's standard networking

    URLConnection and Apache's HttpClient, automatically

  • Apps that ask Android for it

    as Android tells other HTTP stacks to

Left out

  • Apps with their own network code

    only if their makers built them to read it

  • Mobile data

    uses the APN's proxy instead

  • SOCKS5

    Android hands apps an HTTP proxy only

Source: AOSP: ProxyInfo.java, Proxy.java and the Settings app's strings; Chromium: proxy_config_service_android.cc · hproxy.comProxy.

Before you start: what you need

One proxy line, four parts

203.0.113.10Host:8080Port:hp_ir4k2Username:9fa2c1Password
  • 203.0.113.10:8080:hp_ir4k2:9fa2c1host:port:user:passMost proxy tools and checkers
  • hp_ir4k2:9fa2c1@203.0.113.10:8080user:pass@host:portcurl, requests, most HTTP clients
  • http://hp_ir4k2:9fa2c1@203.0.113.10:8080http://user:pass@host:portAnything taking a full proxy URL

Android takes the host and the port. The user name and password go into Chrome's login window, not into Settings. Values shown are examples.

  • A proxy address as host:port, plus a user name and password if the proxy needs a login. If your provider sent one long line, the proxy format guide splits it up.
  • A connection to the Wi-Fi network you want to proxy; the setting belongs to that network.
  • For a first test, any HTTP entry from our free proxy list will do. Free entries come and go, so test one first; the check further down shows how.
  • Our free proxy setup generator writes the values below for your own proxy, the hostname and port for Settings and the adb line, and says so when a line will not fit Android at all.
Captured on 2 October 2026 at hproxy.com/free-proxy-list/http. The address and port of a row are the host and port the steps below ask for.

Step 1: open your Wi-Fi network's settings

On current stock Android:

  1. Open Settings, then Network & internet, then Internet.
  2. Tap the network you are connected to, or the gear next to it. Its details open.
  3. Tap the pencil at the top to modify the network.
  4. Open Advanced options.

On older versions, long-press the network in the Wi-Fi list, choose Modify network, then open Advanced options. For a network you have not joined yet, Add network has the same Advanced options, proxy included. If your phone's menus are named differently, its maker has changed them; look for the network's own settings and their advanced part.

Step 2: set the proxy

Change Proxy from None to Manual (1), fill in Proxy hostname (2) and Proxy port (3), and, if some sites should skip the proxy, list them in Bypass proxy for (4), separated by commas. Tap Save.

Android's proxy fields for one Wi-Fi network
SettingsAndroid

Network & internetInternetYour networkAdvanced options

Proxy

  • ProxyManualA drop-down: None, Manual or Proxy Auto-Config.
  • Proxy hostname203.0.113.10
  • Proxy port8080
  • Bypass proxy forexample.com,mail.example.com
  • The HTTP proxy is used by the browser but may not be used by the other apps.
SaveCancel
Source: Drawn from the Settings app's strings in Android's source (AOSP main), not a screenshot. Phone makers may rename or move these menus. · hproxy.comProxy.

The address goes in on its own, with no http:// in front, and the port in its own box. The third choice, Proxy Auto-Config, takes the address of a PAC script in PAC URL instead.

Android checks what you type, and its messages are exact:

  • The hostname you typed isn't valid.
  • You need to complete the port field.
  • The port field must be empty if the host field is empty.
  • The port you typed isn't valid.
  • The exclusion list you typed isn't properly formatted. Type a comma-separated list of excluded domains.

Step 3: the user name and password

The proxy screen has no fields for a login; Android's source defines a hostname, a port and a bypass list, nothing more. So the login is up to each app:

  • Chrome asks when it first uses the proxy. Its window reads "The proxy … requires a username and password.", with the proxy's address where the dots are.
  • An app that cannot ask fails instead. The clean answer is an address allowlist at the provider, so the proxy accepts your connection without a login. When your proxy needs a password and your software cannot send one covers the options.

Which apps actually follow it

Android's own warning is the honest summary, and its code says where the line runs. The ProxyInfo class states that proxy settings "are already integrated within the java.net and Apache HTTP stack. So URLConnection and Apache's HttpClient will use them automatically." Other HTTP stacks, it goes on, "will need to obtain the proxy info" themselves, by watching for Android's proxy-change notice and asking for the default proxy. Chrome does: Chromium's Android code reads the proxy properties Android sets for apps. An app with network code of its own follows the proxy only if its makers built it to.

We read the relevant lines straight from Android's source:

(1) The warning on the proxy screen. (2) The APN's Username and Password come with an Authentication type: the carrier's login, not a proxy's. (3) Android hands apps an HTTP proxy, for http and https addresses alike. (4) Android's proxy code never mentions SOCKS.

A SOCKS5 proxy

Android cannot carry a SOCKS5 proxy through this screen. As the picture shows, it turns the Wi-Fi proxy into http.proxyHost and https.proxyHost settings for apps, both pointing at an HTTP proxy, and the file that does it never mentions SOCKS. A SOCKS5 server typed in there receives HTTP proxy requests and fails. For SOCKS5, use an app that speaks it: one with its own SOCKS setting, or one that routes the phone's traffic through it.

On mobile data

The Wi-Fi proxy ends where the Wi-Fi does: on mobile data, traffic goes out without it. Mobile data has its own Proxy and Port fields inside the APN, the carrier's connection profile, under Access Point Names in your mobile network's settings. Android lets a carrier block adding APNs and lock any of an APN's fields, so on some phones that screen will not let you change it.

The same APN screen also has Username and Password. They are not a place for a proxy login: they go with the screen's Authentication type, whose choices are None, PAP, CHAP and PAP or CHAP, the methods a carrier uses to log the phone onto its network. A proxy that needs a login still needs Chrome's prompt or an allowlist on mobile data.

A proxy for the whole device, with adb

With USB debugging switched on in the developer options and a computer with adb, one command sets a global proxy that applies on every network:

adb shell settings put global http_proxy 203.0.113.10:8080

Android splits the value at the colon and uses port 8080 when you give none. It reaches the same apps as the Wi-Fi proxy, the ones that follow Android's proxy. To remove it:

adb shell settings put global http_proxy :0

That :0 comes straight from Android's code: it reads the value as an empty host, and an empty host clears the global proxy. The command that looks right, adb shell settings delete global http_proxy, does not clear it. The code returns without touching the proxy that was applied, so it stays.

Check that it worked

Open this address in Chrome, which follows the proxy:

https://www.cloudflare.com/cdn-cgi/trace

The line starting with ip= is the address sites see; if it is the proxy's address, Chrome goes through the proxy. Then open https://hproxy.com/api/ip/ followed by that address: it names the country, city and network behind it. Before you put a proxy into the phone at all, paste it into our free proxy checker, which reports whether it answers, its protocols, anonymity, country and latency. That separates "this proxy is dead" from "I typed it wrong", which look the same on a phone that loads nothing.

When it does not work: the messages

Android proxy messages, what they mean, and the fix

What you seeWhat it meansFix
There is something wrong with the proxy server, or the address is incorrect. with ERR_PROXY_CONNECTION_FAILED (Chrome)Nothing answers at the proxy's address and port.Set Proxy to None, test the proxy, then set it again.
The proxy ... requires a username and password.The proxy wants a login.Type it in; for apps that cannot, use an address allowlist.
The hostname you typed isn't valid.The hostname box holds something that is not a host name or address.Remove http:// and any port from it.
The port field must be empty if the host field is empty.A port without a host.Fill in the hostname, or clear the port.
The exclusion list you typed isn't properly formatted.The bypass list is not comma-separated domains.Write example.com,mail.example.com.
An app fails with connect failed: ECONNREFUSED (Connection refused) for the proxy's address and portA proxy, often a global one set with adb, does not answer.adb shell settings put global http_proxy :0, or fix the proxy.
Wi-Fi connected, nothing loadsThe proxy on that network is dead or wrong.Set that network's Proxy to None.

AOSP Settings app strings; Chromium's error and login texts; Android Stack Exchange question 98287

  • "Android's Wi-Fi proxy supports SOCKS5." It hands apps an HTTP proxy only, and its proxy code never mentions SOCKS.
  • The APN's Username and Password for a proxy login. They go with PAP or CHAP, the carrier's login.
  • "All traffic over that Wi-Fi network will use the proxy." Android's own screen says other apps may not.

Turning it off again

Open the same network's settings, set Proxy to None and Save. If you set a global proxy with adb, run adb shell settings put global http_proxy :0 too. If one Wi-Fi network suddenly loads nothing while others work, a forgotten proxy on that network is the first place to look.

About free proxies on a phone

Free entries come and go, so test one before you rely on it, and set Proxy back to None when you are done: a dead proxy left on a network makes Chrome load nothing there. For daily use, a paid proxy can keep one address for a sticky session.

How we wrote this

We read Android's source, the Android Open Source Project's main branch, on 3 October 2026: the Settings app's strings and arrays (every label, warning and error on the proxy screen and the APN screen) and its Wi-Fi screens' code (NetworkProviderSettings.java, ConnectedWifiEntryPreference.java, WifiNetworkDetailsFragment.java, WifiConfigController2.java), then ProxyInfo.java, Proxy.java, Settings.java, ProxyTracker.java and CarrierConfigManager.java, which decide who gets the proxy, what adb's global proxy does and what a carrier may lock. For Chrome we read Chromium's Android proxy code and its error and login texts. The terminal picture is our own read of two of those files.

Limits: we did not use a phone, so the proxy screen is drawn from Android's strings, and phone makers' versions of the menus were not checked. Which apps ignore the proxy is stated by Android's own rule, not tested app by app. AOSP's main branch can be ahead of what phones run.

Sources

All read on 3 October 2026.

  • Android Open Source Project, main branch: the Settings app's strings.xml, arrays.xml, NetworkProviderSettings.java, ConnectedWifiEntryPreference.java, WifiNetworkDetailsFragment.java and WifiConfigController2.java; ProxyInfo.java and ProxyTracker.java (Connectivity module); Proxy.java, Settings.java and CarrierConfigManager.java (frameworks/base) (android.googlesource.com).
  • Chromium: proxy_config_service_android.cc, the error page strings and the login dialog strings (chromium.googlesource.com).
  • Android Stack Exchange questions 4952, 98287 and 32366.
  • Our read of Android's source with curl, 3 October 2026.

Frequently asked questions

Where is the proxy setting on Android?

Inside each Wi-Fi network, not in the main menu. On current stock Android: Settings, Network & internet, Internet, tap the network you are connected to or the gear next to it, tap the pencil to modify it, open Advanced options, then Proxy. Phone makers can rename and move these menus, but the proxy stays a property of the Wi-Fi network.

Does the Android proxy setting apply to every app?

No, and Android says so on the screen itself: The HTTP proxy is used by the browser but may not be used by the other apps. Chrome and apps built on Java's standard networking follow it automatically; apps with their own network code only follow it if their makers wrote them to.

Where do I enter the proxy username and password on Android?

Nowhere on the proxy screen: it has fields for the hostname, the port and the bypass list only. Chrome asks for the login itself, in a window that reads The proxy, followed by its address, requires a username and password. Apps that cannot ask need an address allowlist at the provider instead.

Can I use a proxy on mobile data?

Not with the Wi-Fi setting. Mobile data has its own Proxy and Port fields in the APN, the carrier's connection profile, and Android lets a carrier lock that screen. The APN's Username and Password go with its Authentication type, PAP or CHAP, which is the carrier's own login and not a proxy's.

Can I use a SOCKS5 proxy in Android's Wi-Fi settings?

No. Android turns the Wi-Fi proxy into HTTP proxy settings for apps, http.proxyHost and https.proxyHost, and its proxy code never mentions SOCKS. A SOCKS5 server typed in there receives HTTP proxy requests and fails. SOCKS5 needs an app that speaks it.

How do I set a proxy for the whole device with adb?

With USB debugging on, run adb shell settings put global http_proxy 203.0.113.10:8080. Android reads the part after the colon as the port, and uses 8080 when there is none. It covers every network, for the apps that follow Android's proxy.

How do I remove a proxy set with adb?

Run adb shell settings put global http_proxy :0. Android's code reads that as an empty host and clears the proxy. Deleting the setting with settings delete global http_proxy does not: the code then changes nothing, and the proxy stays.

What does Bypass proxy for want?

A comma-separated list of domains that should skip the proxy. Anything else gets Android's message The exclusion list you typed isn't properly formatted. Type a comma-separated list of excluded domains.

Do I have to set the proxy again for every Wi-Fi network?

Yes. The setting is stored per network, so your home Wi-Fi and a café's Wi-Fi each keep their own. It is also why people forget one is still switched on.

My Wi-Fi says connected but nothing loads. What do I do?

The proxy is not answering. The Wi-Fi itself is fine, so Android still shows it as connected, while Chrome shows There is something wrong with the proxy server, or the address is incorrect. Set Proxy back to None in that network's settings and everything works again.

What is the Proxy hostname box asking for?

The address of the proxy, without http:// in front. If you have 203.0.113.10:8080, then 203.0.113.10 is the hostname and 8080 goes in the Proxy port box under it.

How do I turn the proxy off again?

Open the same Wi-Fi network's settings and set Proxy to None, then Save. If you set a global proxy with adb, run adb shell settings put global http_proxy :0 as well.

Get proxies that are alive right now

Our free proxy list re-checks every exit every few minutes across 100+ countries, with a live last-checked time, so you copy IPs that worked moments ago, not a stale text dump. When the location has to survive a real check, the paid network holds up.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed