Skip to content

How to set up a proxy in Chrome

Set a proxy for Chrome in Windows, macOS, an extension or with --proxy-server, then check it, turn it off and fix its errors. Tested on Chrome 153.

HProxy TeamJuly 2, 2026Updated September 15, 202611 min read

How to Set Up a Proxy in Chrome (Every Method That Actually Works)

Chrome has no proxy settings of its own. It uses the proxy set in Windows or macOS, so the quickest way is to set the proxy there. To send only Chrome through a proxy, use a proxy extension or start Chrome with a proxy flag.

We tested every method on this page with Chrome 153 on Windows 11, using test proxies on our own machine, on 15 September 2026.

Chrome 153 Settings page, System section: three switches and the row Open your computer's proxy settings with an external-link icon.
Our own Chrome 153 at chrome://settings/system on 15 September 2026. The proxy row only opens the Windows or macOS settings. The page looked the same while Chrome ran with a proxy flag.

Which way to set it

What you wantHowIf the proxy needs a username and password
Chrome and your other apps use the proxySet it in Windows or macOS (step 1)Chrome gets the login through its own login flow
Only Chrome uses the proxyInstall a proxy extension (step 2)The extension can fill it in
One Chrome only, for example to testStart Chrome with a flag (step 3)Not in the flag; Chrome gets it itself

Two limits apply to every method. A SOCKS5 proxy that needs a password does not work in Chrome, because Chrome has no way to log in to SOCKS5 proxies. And if your company manages Chrome, a proxy set by policy beats a flag; chrome://policy shows what is set.

Before you start

  • Your proxy's details: its address, port and type (HTTP or SOCKS5), plus a username and password if it needs them.
  • For a test: addresses on our free proxy list need no login, so every method works with them. There is also a SOCKS5 list and a free proxy API.

Step 1: set the proxy in Windows or macOS

This changes the proxy for the whole computer, not only for Chrome.

Windows 11 and Windows 10, as Microsoft's help page describes it:

  1. In Chrome, open Settings, then System, then Open your computer's proxy settings. Or open Settings > Network & internet > Proxy in Windows.
  2. Under Manual proxy setup, next to Use a proxy server, select Set up.
  3. Turn on Use a proxy server, then enter the Proxy IP address and the Port.
  4. To skip the proxy for some sites, list them with semicolons between them, such as *.contoso.com; *.adatum.com.
  5. Microsoft recommends leaving the check box for local (intranet) addresses selected. Then select Save.
Windows 11: the Edit proxy server dialog, with the steps above
SettingsWindows 11

Network & internetProxy

Edit proxy server

  • Use a proxy serverOn
  • Proxy IP address198.51.100.7Port8080
  • Use the proxy server except for addresses that start with the following entries. Use semicolons (;) to separate entries.
  • Don't use the proxy server for local (intranet) addresses
SaveCancel
Source: Windows 11, Settings, Network & internet, Proxy. The address and port are examples from the documentation range · hproxy.comProxy.

If your company gave you a setup script address instead, select Set up next to Use setup script, turn it on, enter the address and select Save.

macOS, as Apple's help page describes it:

  1. Choose Apple menu > System Settings, click Network, click your network service, then Details, then Proxies.
  2. Turn on the proxy type you have, such as Web proxy (HTTP), Secure web proxy (HTTPS) or SOCKS proxy, and enter the server and port.
  3. Add hosts to skip in Bypass proxy settings for these hosts & domains, with commas between them.

For a company proxy script on a Mac, turn on Automatic proxy configuration and enter the address of the script.

About the password. Chrome ignores a password saved in these settings. When an HTTP proxy asks for a login, Chrome gets it through its own login flow instead. In our test, Chrome then sent the login to the proxy, and the page loaded.

Our guides for Windows and the Mac walk through those screens in more detail.

Step 2: use a proxy extension

An extension changes the proxy for Chrome only, in the profile where you install it. It can fill in the username and password for an HTTP proxy. It cannot give Chrome a SOCKS5 password, because Chrome's proxy interface for extensions has no field for one.

Each extension has its own setup screens. Our guides cover FoxyProxy and SwitchyOmega.

Install only extensions you have checked, because an extension with the webRequest permission can observe your traffic. A Chrome Web Store listing named Proxy SwitchyOmega (V3), version 3.0.2 with 10,000 users, was compromised on 30 December 2024. Security reports by Sekoia.io and RH-ISAC place it in the same campaign as the Cyberhaven extension.

Step 3: start Chrome with a proxy flag

This changes the proxy for one Chrome only, and nothing else on the computer. The Chromium project says to quit every running Chrome first, for example by opening chrome://quit.

On Windows, in Command Prompt:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --proxy-server="http://203.0.113.7:8080" --user-data-dir="C:\chrome-proxy"

On macOS, in Terminal:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server="http://203.0.113.7:8080"

On Linux:

google-chrome --proxy-server="http://203.0.113.7:8080"

--user-data-dir is optional: it gives that Chrome its own folder for history, bookmarks and cookies, apart from your normal profile. On Windows, you can also add the flag at the end of a Chrome shortcut's Target line, as the Chromium project describes. It then applies whenever Chrome starts from that shortcut.

Do not put a username and password in the flag. In our test, a login written into the flag made Chrome refuse the proxy with ERR_NO_SUPPORTED_PROXIES, and the proxy received nothing at all. For an HTTP proxy, Chrome gets the login itself.

Step 4: check that Chrome uses the proxy

  1. Open https://hproxy.com/api/free-proxy/echo in Chrome. It shows the address a website sees, in the ip field.
  2. Compare it with the proxy's address: if it is still your own address, the proxy is not in use.
  3. If you used a flag, open chrome://version, which shows the full command line of the running Chrome. The flag should be in it.

The settings page cannot tell you this, because it looked the same with and without a flag in our test. Our proxy checker tests the proxy itself, before Chrome is involved. For each proxy, it lists the status, protocol, anonymity, location, network and latency.

How to turn the proxy off

  • Windows or macOS: switch the proxy off in the same system settings.
  • An extension: switch the proxy off in the extension.
  • A flag: close that Chrome and start it again without the flag. On Windows, also take the flag out of the shortcut's Target line if you added it there.

Our guide to turning off a proxy has more detail.

What each Chrome proxy error means

Chrome error page: No internet. There is something wrong with the proxy server, or the address is incorrect. Try: contacting the system admin, checking the proxy address, running Windows Network Diagnostics. ERR_PROXY_CONNECTION_FAILED.
Our own Chrome 153 on 15 September 2026, started with a proxy address where nothing was listening.

We caused each of these errors on purpose against a test proxy:

ErrorWhat caused it in our testWhat to check
ERR_PROXY_CONNECTION_FAILEDNothing listened on the proxy portThe proxy address and port, and that the proxy is running
ERR_TUNNEL_CONNECTION_FAILEDThe proxy refused the tunnel for an https:// pageThe proxy's rules for that site or port
ERR_INVALID_AUTH_CREDENTIALSThe proxy asked for a login and got none (headless Chrome shows no prompt)The username and password
ERR_NO_SUPPORTED_PROXIESA login was written into --proxy-serverRemove the login from the flag
ERR_SOCKS_CONNECTION_FAILEDThe SOCKS5 proxy refused the connectionThe SOCKS5 address, and whether it wants a login
ERR_CONNECTION_CLOSEDThe proxy opened the tunnel, then closed itThe proxy
ERR_NAME_NOT_RESOLVEDThe page skipped the proxy, and the name did not resolveThe bypass list, or a direct:// fallback

ERR_PROXY_CONNECTION_FAILED is about the proxy itself. Chrome's error list defines it as a failure to look up the proxy's name or connect to it, not a failed tunnel. Our guide to ERR_PROXY_CONNECTION_FAILED goes through the fixes.

When a proxy in a list fails and a later option works, Chrome marks that proxy as bad for 5 minutes. To reset it, open chrome://net-internals/#proxy and select Clear bad proxies.

For developers: the flag, scripts and logins in detail

More forms of the flag

The Chromium documentation describes these forms, and our test ran each one against a test proxy:

You wantFlag
One HTTP proxy for every page--proxy-server="http://203.0.113.7:8080"
A SOCKS5 proxy--proxy-server="socks5://198.51.100.42:1080"
One proxy for http://, another for https://--proxy-server="http=203.0.113.7:8080;https=198.51.100.14:3128"
A direct connection when the proxy is down--proxy-server="http://203.0.113.7:8080,direct://"
No proxy for some hosts--proxy-bypass-list="*.example.com;intranet"
localhost through the proxy too--proxy-bypass-list="<-loopback>"

Since Chrome 72, Chrome sends localhost, 127.0.0.1/8, [::1] and link-local addresses directly, even with a proxy set. Only <-loopback> in the bypass list changes that, and in our test it did. Chrome keeps localhost direct for security, so use <-loopback> only with a proxy you run yourself, such as a debugging proxy, and never with a public free proxy.

Logins in automated Chrome

Headless Chrome shows no login prompt, so in our test a proxy's 407 ended in ERR_INVALID_AUTH_CREDENTIALS. Puppeteer's page.authenticate() supplies the login. With it, Chrome sent the proxy a Basic Proxy-Authorization header, and the page loaded:

const browser = await puppeteer.launch({ args: ["--proxy-server=http://203.0.113.7:8080"] });
const page = await browser.newPage();
await page.authenticate({ username: "myuser", password: "mypassword" });
await page.goto("https://example.com");

Proxy scripts (PAC files)

Chrome downloads a proxy script directly, never through a proxy. The file must arrive within 30 seconds, with status 200, and be smaller than 1 MB. Chrome then keeps it until the network changes or the copy is 12 hours old. To make Chrome read a changed script sooner, open chrome://net-internals/#proxy and select Re-apply settings.

What the proxy can see

A proxy sees more of some pages than others. In our test, the HTTP proxy received the full address of an http:// page, with its path and query. For an https:// page, it received only a CONNECT request with the host name and port. The page itself travels encrypted through that tunnel.

With SOCKS5, Chrome leaves the name lookup to the proxy: our test proxy received the host name, not an address. A SOCKSv4 proxy looks names up on your machine, reaches IPv4 addresses only and takes no login, so choose SOCKS5 where you can. HTTP/1.1 proxies in Chrome are limited to 32 connections at once across all sites.

When a proxy needs a login Chrome cannot send

Free proxies need no login, so they work with every method on this page. For when they are good enough, see when free proxies are fine and our free proxy study.

A paid SOCKS5 proxy with a password is the case Chrome cannot handle. On Premium plans, our residential proxies can skip the login: you allow up to 150 of your own IP addresses, and they connect without a password. Premium lines speak HTTP, HTTPS and SOCKS5. A connection from an allowed address carries no username, so it cannot pick a country. Questions about our plans are answered in our FAQ.

Where to go from here

The cURL guide covers proxy settings on the command line. What is a SOCKS5 proxy explains when to choose SOCKS over HTTP.

What this page could not check

We ran every test on Windows 11 with Chrome 153 in headless mode, against test proxies on our own machine. Headless Chrome shows no login prompt, so the login in our test came through Puppeteer's page.authenticate(). The Windows and macOS steps come from Microsoft's and Apple's help pages, and we did not capture those screens for this page. We do not run third-party browser extensions on our own machines, so the extension section rests on Chrome's extension documentation. We will check these results again by 15 March 2027.

Sources

  • Chromium, Proxy support in Chrome (net/docs/proxy.md), read 15 September 2026: chromium.googlesource.com.
  • Chromium, network error list (net_error_list.h), read 15 September 2026: chromium.googlesource.com.
  • Chromium, SOCKS5 client code (socks5_client_socket.cc), read 15 September 2026: chromium.googlesource.com.
  • Chromium, chrome_proxy.exe source (chrome_proxy_main_win.cc), read 15 September 2026: chromium.googlesource.com.
  • Chromium, User Data Directory, read 15 September 2026: chromium.googlesource.com.
  • The Chromium Projects, Network Settings, read 15 September 2026: chromium.org.
  • The Chromium Projects, Run Chromium with command-line switches, read 15 September 2026: chromium.org.
  • Google, Chrome Enterprise policy list, ProxySettings, read 15 September 2026: chromeenterprise.google.
  • Google, Chrome Extensions API reference, chrome.proxy, read 15 September 2026: developer.chrome.com.
  • Google, Chrome Extensions API reference, chrome.webRequest, read 15 September 2026: developer.chrome.com.
  • Puppeteer, Page.authenticate(), documentation for version 25.11.0, read 15 September 2026: pptr.dev.
  • Microsoft Support, Use a proxy server in Windows, Windows 10 and 11, read 15 September 2026: support.microsoft.com.
  • Apple Support, Change Proxies settings on Mac, read 15 September 2026: support.apple.com.
  • Sekoia.io, Targeted supply chain attack against Chrome browser extensions, 22 January 2025.
  • RH-ISAC, Cyberhaven extension compromise part of broader campaign affecting multiple Chrome extensions, 2 January 2025.
  • Our own tests and captures of Chrome 153.0.8010.36 against local test proxies, 15 September 2026, logged in the research folder for this page.

Frequently asked questions

Does Chrome have its own proxy settings?

No. The proxy row in Chrome 153's settings, Open your computer's proxy settings, opens the Windows or macOS proxy settings. Chrome follows those by design, and so do other apps that read them. To send only Chrome through a proxy, use a proxy extension or start Chrome with the --proxy-server flag.

How do I use a proxy only in Chrome?

Install a proxy extension, which changes the proxy for Chrome only, in the profile where you install it. Or start Chrome with the --proxy-server flag, which applies to the Chrome you start with it. Setting the proxy in Windows or macOS changes it for other apps as well.

Can Chrome use a SOCKS5 proxy with a username and password?

No. Chrome offers a SOCKS5 proxy only the no-authentication method, and its proxy documentation says it supports no SOCKS5 login. In our test with Chrome 153, a login written into a socks5:// address made Chrome refuse the proxy with ERR_NO_SUPPORTED_PROXIES. Use an HTTP proxy with a login, or a SOCKS5 proxy that allows your IP address.

Why does Chrome not use the password from my proxy settings?

Chrome does not read a username and password stored in manual proxy settings. For an HTTP proxy, it gets the login through its own login flow instead. A login written into the --proxy-server flag makes Chrome refuse the proxy: in our test the result was ERR_NO_SUPPORTED_PROXIES.

How do I turn off a proxy in Chrome?

Turn it off where you turned it on. For Windows or macOS, switch the proxy off in the system settings. For an extension, switch the proxy off in the extension. For a flag, start Chrome again without it, and on Windows remove it from the shortcut's Target line if you added it there.

Why does localhost not go through my proxy in Chrome?

Since Chrome 72, Chrome connects directly to localhost, 127.0.0.1/8, [::1] and link-local addresses, even with a manual proxy set. Add <-loopback> to --proxy-bypass-list to send them through the proxy. In our test, localhost used the proxy only with that rule. Chrome keeps localhost direct for security, so do this only with a proxy you run yourself, never a public free one.

Why does Chrome not pick up my new proxy script (PAC file)?

Chrome keeps a downloaded proxy script until the network changes, the copy is 12 hours old, or you reset it. To reset it, open chrome://net-internals/#proxy and select Re-apply settings.

What is chrome_proxy.exe?

It has nothing to do with proxy servers. Chromium's source describes chrome_proxy.exe as a workaround on Windows: web app shortcuts start it instead of chrome.exe, so a pinned shortcut keeps the site's icon.

What does ERR_PROXY_CONNECTION_FAILED mean?

Chrome could not reach the proxy itself: it failed to look up the proxy's name or to connect to it. A refused tunnel shows a different code, ERR_TUNNEL_CONNECTION_FAILED. In our test, a proxy port with nothing listening produced ERR_PROXY_CONNECTION_FAILED.

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