# How to set a proxy on Windows 11 and macOS, step by step

URL: https://cloudj.net/blog/setup-proxy-windows-macos
Published: 2026-11-11 · Updated: 2026-11-11

> Set a proxy on Windows 11 and macOS through system settings or the command line, learn which apps follow it, and why SOCKS5 with a password needs another route.

To set a proxy on Windows 11 or macOS you only need a host and a port, and both systems put the setting a few clicks deep. The harder part is knowing what happens next: which apps follow the system proxy, which ignore it, and why an authenticated SOCKS5 proxy so often fails at this level. This guide gives the exact steps for both systems, the command-line equivalents, and the alternatives for when the system setting is the wrong tool.

## What a system proxy does and does not do

A system proxy is a suggestion the operating system offers to apps. Browsers like Edge, Chrome and Safari follow it, as do many desktop apps built on the same networking libraries. Others do not:

- Firefox uses its own settings unless you tell it to use the system proxy.
- Command-line tools such as `curl`, `git` and package managers usually read environment variables instead.
- Games, some chat apps and many background services ignore it entirely.

So a system proxy is a good fit for "my browser and everyday apps should leave from this IP". It is not a way to force all traffic through the proxy; that is what a VPN does, and the [proxy vs VPN](https://cloudj.net/blog/proxy-vs-vpn) article explains the difference.

## Authentication: the limit you will hit first

System proxy settings were designed around HTTP proxies:

- **Windows 11** has fields for an address and a port, and no fields for a username or password. Apps that follow the system proxy may show their own sign-in box for an HTTP proxy. The Settings page has no SOCKS5 option.
- **macOS** has a "Proxy server requires password" switch, including for the SOCKS proxy. In practice, many apps do not pass those credentials to a SOCKS5 proxy, and connections fail or fall back to your real IP.

The reliable fix is an IP whitelist: let the proxy accept your public IP without credentials, and enter only host and port. The second option is to configure the proxy inside the app itself, where the app supports credentials (Firefox for HTTP, antidetect browsers, scraping libraries). The trade-offs are covered in [IP whitelist vs username and password](https://cloudj.net/blog/proxy-authentication-whitelist-vs-password).

On Cloudj you can replace password access with an IP whitelist of up to 20 addresses, and switch an order between HTTP and SOCKS5 where the location supports it, both from the [console](https://app.cloudj.net). For system settings, HTTP plus a whitelist is the least troublesome combination.

## Set a proxy on Windows 11

1. Open **Settings** (Windows key + I).
2. Choose **Network & internet**, then **Proxy**.
3. Under **Automatic proxy setup**, turn off **Automatically detect settings** unless your company network requires it.
4. Under **Manual proxy setup**, find **Use a proxy server** and click **Set up**.
5. In the **Edit proxy server** window, switch **Use a proxy server** on.
6. Enter the proxy host in **Proxy IP address** and the number in **Port**.
7. In the exceptions box, list addresses that should bypass the proxy, separated by semicolons, for example `localhost;127.0.0.1;*.local`.
8. Tick **Don't use the proxy server for local (intranet) addresses** if you use printers or devices on your home network.
9. Click **Save**.

To turn it off, return to the same window and switch **Use a proxy server** off.

### Windows background services and WinHTTP

Some Windows services and older apps use a separate proxy setting called WinHTTP. If one of them should use the proxy, open Terminal as administrator and run:

```powershell
netsh winhttp set proxy proxy-server="HOST:PORT" bypass-list="<local>"
netsh winhttp show proxy
```

Undo it with:

```powershell
netsh winhttp reset proxy
```

### Command-line tools on Windows

Most command-line tools read the proxy from environment variables. In a PowerShell window:

```powershell
$env:HTTP_PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
$env:HTTPS_PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
curl.exe https://example.com
```

These variables last for that window only, and they can carry credentials, which the Settings page cannot.

## Set a proxy on macOS

The steps below match recent macOS versions with **System Settings**.

1. Open the Apple menu and choose **System Settings**.
2. Click **Network** in the sidebar.
3. Choose the service you use, **Wi-Fi** or **Ethernet**. For Wi-Fi, click **Details...** next to the network you are connected to; for Ethernet, click **Details...**.
4. Select **Proxies** in the left column of the window that opens.
5. Turn on the proxy type that matches your proxy. For an HTTP proxy, turn on both **Web proxy (HTTP)** and **Secure web proxy (HTTPS)** and use the same host and port in each; for a SOCKS5 proxy, turn on **SOCKS proxy**.
6. Enter **Server** and **Port** for each type you turned on.
7. Leave **Proxy server requires password** off if you use an IP whitelist. Turn it on and enter username and password only for an HTTP proxy, and test the apps you care about.
8. Under **Bypass proxy settings for these hosts & domains**, keep local entries such as `*.local` and `169.254/16`.
9. Click **OK**.

Proxy settings apply to that network. If you switch to another Wi-Fi network or plug in Ethernet, set the proxy there too.

### The same steps from Terminal

`networksetup` changes the same settings and is handy for scripts. First list your services:

```bash
networksetup -listallnetworkservices
```

Then set an HTTP proxy for both web and secure web traffic on Wi-Fi:

```bash
networksetup -setwebproxy "Wi-Fi" HOST PORT
networksetup -setsecurewebproxy "Wi-Fi" HOST PORT
```

Or a SOCKS proxy:

```bash
networksetup -setsocksfirewallproxy "Wi-Fi" HOST PORT
```

Turn them off with `networksetup -setwebproxystate "Wi-Fi" off`, `-setsecurewebproxystate` and `-setsocksfirewallproxystate` in the same way. `scutil --proxy` prints what the system is currently using.

### Command-line tools on macOS

As on Windows, Terminal tools read environment variables:

```bash
export HTTPS_PROXY="http://USERNAME:PASSWORD@HOST:PORT"
curl https://example.com
```

## Which route to choose

| Goal | Best route |
|---|---|
| Browser and everyday apps on one IP | System proxy with HTTP and an IP whitelist |
| One browser on a proxy, the rest direct | Firefox's own settings or a Chrome launch flag, see the [Chrome and Firefox guide](https://cloudj.net/blog/setup-proxy-chrome-firefox) |
| SOCKS5 with a username and password | Configure it in the app, or use an IP whitelist |
| Scripts and command-line tools | Environment variables or the tool's own proxy option |
| Several identities on one computer | Separate browser profiles, each with its own proxy |

## Check it works

Open a "what is my IP" page in a browser that follows the system proxy and confirm the IP and country. For a quick test without a browser, the [test a proxy with curl](https://cloudj.net/blog/test-proxy-curl) guide has ready-made commands.

If the IP does not change, check that you turned on both the HTTP and HTTPS entries on macOS, that the app actually follows the system proxy, and, if you use a whitelist, that your current public IP is on it.

## Cloudj proxies for desktop use

Cloudj sells dedicated proxies, each IP assigned to one customer. [Dedicated IPv4 proxies](https://cloudj.net/proxy-ipv4), static IPs registered to an ISP, are available in Vietnam, the United States, Japan, South Korea, Singapore, Hong Kong and the United Kingdom, and static residential proxies on home-broadband IPs are available in the [United States](https://cloudj.net/proxy-ipv4/united-states) and [Vietnam](https://cloudj.net/proxy-ipv4/vietnam). For background on choosing, read the [dedicated proxy guide](https://cloudj.net/blog/dedicated-proxy-guide), the [SOCKS5 vs HTTP proxy](https://cloudj.net/blog/socks5-vs-http-proxy) explainer and [datacenter vs static ISP proxy](https://cloudj.net/blog/datacenter-vs-static-isp-proxy).

## FAQ

### Why does Windows 11 not ask for my proxy password?

The Settings page has no credential fields. Apps that follow the system proxy may prompt on their own for an HTTP proxy; for anything else, use an IP whitelist.

### Can I set a SOCKS5 proxy in Windows 11 Settings?

Not in the Settings page. Use an app that supports SOCKS5 directly, such as Firefox, together with an IP whitelist.

### Does the system proxy cover all my traffic?

No. Only apps that choose to follow it. Use a VPN if you need every connection to go through another IP.

### My whitelisted proxy stopped working. Why?

Your public IP probably changed, which is common on home connections. Add the new IP to the whitelist.

## Next step

Choose HTTP with an IP whitelist for system-wide settings and keep authenticated SOCKS5 for apps that handle it themselves. You can manage the whitelist, protocol and credentials in the [Cloudj console](https://app.cloudj.net), and check live prices on the [pricing page](https://cloudj.net/pricing).
