Setting up a proxy means telling an application — or the whole operating system — to send its traffic to a specific host and port, and supplying credentials if the proxy requires them. The information you need from your provider is always the same four items: host (a domain or IP), port, username, password — or, instead of a login, your own IP added to the provider's whitelist. Below are the exact steps for the four places people configure proxies most, plus how to check that it worked.

Before you start: system proxy vs application proxy

There are two levels at which a proxy can be set, and knowing which one you are touching avoids most confusion.

  • System proxy (Windows Settings, macOS Network preferences): the OS advertises a proxy, and applications that respect system settings use it. Chrome, Edge, Safari and most desktop apps do. Some tools ignore it entirely.
  • Application proxy: the app has its own setting and uses only that. Firefox is the notable browser here; command-line tools use environment variables or flags; antidetect browsers set a proxy per profile.

If you want everything proxied, set the system proxy. If you want one browser or tool proxied while the rest of the machine stays direct — the usual case for multi-account or testing work — set it in the application. Mixing the two is where “I set a proxy but my IP did not change” comes from.

Firefox (own settings, all platforms)

Firefox is the easiest browser to proxy independently of the OS.

  1. Open Settings → scroll to Network Settings at the bottom of General → click Settings….
  2. Choose Manual proxy configuration.
  3. For an HTTP/HTTPS proxy: enter the host and port in HTTP Proxy and tick Also use this proxy for HTTPS.
    For a SOCKS proxy: enter host and port in SOCKS Host and select SOCKS v5.
  4. Tick Proxy DNS when using SOCKS v5. This routes name resolution through the proxy and prevents DNS leaks — leave it unticked and your ISP still sees every domain you visit.
  5. Click OK. On the first request Firefox will prompt for the proxy username and password and offer to save them.

Firefox also lets you set a proxy per container or per profile, which is how people run several proxied identities from one installation without extensions.

Chrome and Edge

Chrome has no proxy settings of its own on Windows and macOS: SettingsSystemOpen your computer's proxy settings simply opens the OS dialog described below. Three ways to proxy Chrome specifically:

  1. Use the system proxy (below). Simplest; affects other apps too.
  2. Launch with a flag. Start Chrome from a shortcut or terminal with:
    chrome --proxy-server="http://proxy.example.com:8080"
    chrome --proxy-server="socks5://proxy.example.com:1080"
    Only that Chrome instance is proxied. Combine with --user-data-dir= to give it a separate profile. Chrome will prompt for credentials on first use; it does not accept them in the flag.
  3. Use an extension. Proxy-switcher extensions can hold several profiles and switch per tab or per site, and can store credentials. Convenient, but the extension sees your traffic configuration — install only ones you trust.

On Linux, Chrome reads the http_proxy / https_proxy environment variables in addition to system settings.

Windows 11 (system-wide)

  1. SettingsNetwork & internetProxy.
  2. Under Manual proxy setup, click Set up next to Use a proxy server.
  3. Turn it on, enter the address (host) and port, and optionally list addresses to bypass (e.g. localhost;127.*;*.local). Save.
  4. Windows will prompt for credentials the first time a proxied app connects.

Two things to know. First, this dialog configures an HTTP proxy only; Windows' built-in system proxy does not speak SOCKS5. If your provider gave you SOCKS5, use it inside Firefox, in a Chrome flag, or in the application itself. Second, the setting applies to apps that use WinHTTP/WinINet — browsers, Office, Store apps — but not to everything; many developer tools and games route around it. Our Windows-specific guide covers what leaks around the system proxy.

The Automatic proxy setup section accepts a PAC file URL — a small JavaScript file that decides per URL which proxy to use. Handy for “these domains through the proxy, everything else direct.”

macOS (system-wide)

  1. System SettingsNetwork → select the active connection (Wi-Fi or Ethernet) → Details…Proxies.
  2. Tick the protocol(s) you need: Web Proxy (HTTP), Secure Web Proxy (HTTPS), and/or SOCKS Proxy. macOS, unlike Windows, does support SOCKS at the system level.
  3. Enter host and port for each ticked protocol. If the proxy requires a login, tick Proxy server requires password and enter it here — macOS will not prompt later the way Windows does.
  4. Add hosts to bypass in the field at the bottom, then OK and Apply.

The setting is per network location: switch from Wi-Fi to Ethernet and you must set it again there. Safari and Chrome follow it; Firefox does not unless you choose Use system proxy settings in its own dialog. See also our note on what macOS leaks around a system proxy.

Authentication: login vs IP whitelist

Providers offer one or both:

  • Username and password. Works from anywhere; credentials are prompted by the OS/browser or embedded in the URL for tools (http://user:pass@host:port). If you use rotating proxies, the username often is the configuration — session IDs and country codes go into it (see how rotation gateways read the login).
  • IP whitelist. You register your own public IP in the provider's dashboard; connections from it need no password. Convenient for servers with static IPs; useless from a home connection whose IP changes, and a nuisance on laptops that move between networks.

If authentication fails you will see a 407 Proxy Authentication Required. Check the username for typos — rotation parameters make them long — and confirm your current IP is the one whitelisted.

Command line and scripts

Most Unix tools honour environment variables:

export http_proxy="http://user:pass@proxy.example.com:8080"
export https_proxy="http://user:pass@proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1"

curl additionally accepts -x; git, pip, npm and apt each have their own proxy config keys but also read the variables above. For proxying Python, Node or browser-automation frameworks specifically, we cover code examples in separate guides.

Verify it worked

Do not assume. After configuring:

  1. Load an IP-check page in the proxied browser (fresh private window) and confirm the IP and country changed.
  2. Run a DNS-leak test; with SOCKS5 make sure remote DNS is on.
  3. In browsers, run a WebRTC test.

The full procedure, including how to read the results, is in How to test a proxy.

Common problems

SymptomLikely causeFix
IP did not changeApp ignores system proxy; wrong protocol (SOCKS entered as HTTP)Set the proxy in the app; match the protocol to what you bought
407 errorBad credentials or IP not whitelistedRe-check username (long rotation strings!) and current public IP
Some sites load, others time outHTTPS not proxied (Firefox: “also use for HTTPS” unticked)Enable the HTTPS/secure proxy field too
Everything is slowOverloaded proxy, or residential/mobile latencyMeasure; compare providers; use datacenter where the target permits
Real IP shows in WebRTC testWebRTC leakDisable WebRTC or use an antidetect browser
Proxy works, then stops after a few minutesSticky session expired, or IP whitelist and your IP changedExtend session time in the login string; re-whitelist

Frequently asked questions

Does Chrome have its own proxy settings?

Not on Windows or macOS — it uses the system proxy. To proxy Chrome alone, launch it with --proxy-server= or use an extension.

Can Windows use a SOCKS5 proxy system-wide?

No; the Windows proxy dialog is HTTP-only. Use SOCKS5 inside applications that support it (Firefox, most developer tools, antidetect browsers), or run a small local HTTP-to-SOCKS bridge.

Where do I enter the proxy password?

Windows and Firefox prompt for it on first connection; macOS has a field in the proxy settings; command-line tools take it in the URL as user:pass@host:port.

What is a PAC file?

A Proxy Auto-Config file: a short JavaScript function that returns, for each URL, which proxy (or none) to use. It lets you route only certain sites through a proxy. Both Windows and macOS accept a PAC URL in their automatic proxy settings.

How do I use different proxies in different browser tabs?

Standard browsers proxy per profile, not per tab. Use separate profiles (Chrome --user-data-dir, Firefox profiles or containers), a proxy-switcher extension, or an antidetect browser, which is built for exactly this.

Do I need to restart after changing the proxy?

Firefox and the OS dialogs apply immediately. Chrome picks up system changes on the next request. Command-line environment variables apply to processes started after they are set.