How to Configure a Proxy in Chrome, Firefox and macOS

Where the proxy setting lives on Windows, macOS, Linux and Firefox, how to scope it to one browser profile, and the checks that confirm it is working.

You need a host, a port and your credential, all shown on the Proxies page of your dashboard (the credential is also under Account Settings → Auth & IP Access). Then pick your platform below. Chrome, Edge and Safari read the operating system's proxy setting, so for them you configure the OS; Firefox has its own setting and can be configured on its own.

Windows (Chrome, Edge, and every app that uses the system proxy)

  1. Open Settings → Network & Internet → Proxy → Manual proxy setup.
  2. Turn Use a proxy server on, enter the host and port, and save. Put local addresses and your intranet in the bypass box.
  3. Open a page. The first proxied request triggers a login popup; enter your username and password, which the browser caches for the session.

Windows has no field for the credential, so the popup is the only way to supply it. If it reappears in a loop, the credential was rejected; fixing a 407 lists the causes. To avoid the popup altogether, whitelist your public address and connect with no credential. Whitelisting works on every product, with one limit on residential: a whitelisted residential connection sends no username, and the username is where country, city and session targeting live, so the exit is untargeted. If you need targeting there, use the popup or an extension that fills it.

macOS (Chrome, Safari, and the system proxy)

  1. Open System Settings → Network, select the active interface, then Details → Proxies.
  2. Enable Web proxy (HTTP) and Secure web proxy (HTTPS) and enter the same host and port in both. Filling only the first proxies unencrypted sites only.
  3. Enter the username and password in the fields provided; macOS stores them, so there is no popup.

The setting is per network service: a proxy configured on Wi-Fi does not follow you to Ethernet. The same panel offers a SOCKS proxy entry, which is a different protocol with different DNS behavior; read SOCKS5 setup before using it.

Linux

On GNOME, Settings → Network → Network Proxy → Manual; KDE has the equivalent under Connections. Browsers launched from the applications menu read this.

The http_proxy, https_proxy and no_proxy environment variables are a separate mechanism for terminal programs (curl, wget, package managers) and accept credentials inline as http://user:pass@host:port. Exporting them in a shell does not affect a browser that is already running or one launched from the desktop. Configure whichever layer your tools read.

Firefox: a proxy for one browser only

  1. Open Settings, search "proxy", and open Network Settings.
  2. Choose Manual proxy configuration, fill the HTTP Proxy field, and tick Also use this proxy for HTTPS. Leave the SOCKS Host field empty unless you mean it.
  3. Load a page and enter the credential in the popup.

Because Firefox keeps its own setting, it applies to Firefox alone and leaves the rest of the machine untouched. Firefox profiles (about:profiles) each carry their own network settings, so two profiles can run two different proxies side by side. A common arrangement is personal browsing in Chrome direct and proxied work in Firefox, with nothing set at the system level.

Scoping a proxy to one Chrome profile

Chrome defers to the OS, so its settings page cannot give two profiles different proxies. Two ways around that:

A command-line flag, applied to that instance only, with a separate profile directory to keep its cookies and cache apart from your everyday profile:

chrome --proxy-server="http://HOST:PORT" --user-data-dir="C:/profiles/proxied"

Chromium ignores credentials inside the flag (user:pass@host is dropped), so you get the login popup once per session, or you whitelist your address and skip it.

An extension such as FoxyProxy uses the browser's proxy API to override the OS setting while the extension is active, and can route by pattern: one domain through the proxy, everything else direct. In Chrome the setting applies to the whole browser instance, not per tab. An extension with the proxy permission sits in the path of every request you make, so install one whose reputation you have checked.

PAC files: routing by rule

A proxy auto-configuration file is a JavaScript function the browser calls for every URL. Use it when "everything through the proxy" is too blunt:

function FindProxyForURL(url, host) {
  if (dnsDomainIs(host, ".target-site.com")) {
    return "PROXY HOST:PORT";
  }
  return "DIRECT";
}

Serve the file over HTTP where the browser can reach it and point the OS automatic proxy configuration (or Firefox's equivalent field) at its URL. A PAC file with a syntax error, or an unreachable URL, makes browsers fall back to DIRECT with no error shown, so verify after every PAC edit.

Anti-detect browsers

Anti-detect browsers such as AdsPower, BitBrowser and Hubstudio keep a proxy inside each browser profile, with its own type, host, port and login fields, and they ignore the operating-system setting described above. Configure the profile instead: AdsPower setup, BitBrowser setup and Hubstudio setup fill those fields with Node4 values and import many profiles at once.

Verify it

Open https://api.ipify.org in the browser you configured. It should print the proxy's address. Then open the same URL in a browser or profile you did not configure and confirm it still shows your own address; a system-level setting that was meant to be browser-level shows up here at once.

Do the check in the browser itself. A curl from a terminal uses a different configuration path and proves nothing about what Chrome is doing. If the browser cannot load pages at all after the change, work through connection issues.

Three ways a browser can reveal you after the IP check passes

A script sends the requests you wrote. A browser does more, and three of its behaviors can expose your real address or identity while the check above still passes.

WebRTC. Real-time media negotiation can send STUN packets outside the proxy path, and a page's JavaScript can read back the addresses it discovers. In Firefox, set media.peerconnection.enabled to false in about:config. Chrome does not fully disable WebRTC from its settings; apply its IP-handling policy through an extension or enterprise policy. Then test on a WebRTC leak checker, because an ordinary IP echo does not show this.

DNS prefetching. With a manual HTTP proxy the hostname travels to the proxy inside the request, so the proxy does the lookup. Browsers may also prefetch DNS for links on the page you are reading, and those lookups can go through your system resolver. Firefox exposes network.dns.disablePrefetch; Chrome keeps prefetching under its preload settings. SOCKS configurations depend on the "Proxy DNS when using SOCKS v5" checkbox in Firefox; the SOCKS5 guide explains what it decides.

The session itself. If you sign in, the site knows who you are regardless of the address. Cookies, localStorage and cached tokens carry identity across IP changes. If separation is the point, use a fresh browser profile per identity.

Which product fits browser work

Browsing is low-volume compared with automation, so most plans go a long way. Shared proxies suit ordinary sites; residential suits targets that treat datacenter ranges with suspicion. To walk through every step of this guide against a real endpoint before paying, the free tier on the pricing page provisions 3 free shared proxies with 1 GB/month bandwidth and 10 concurrent threads.