Free test available for France , UK or SG on Telegram Join Telegram
macOS Configuration

Mobile Proxy Configuration on macOS

macOS keeps proxy settings per network service, and the Terminal does not read them at all. This guide covers the Proxies pane, which browsers follow it, how to script it with networksetup, and what to do about everything that ignores it.

PXM2 Proxies August 24, 2026 8 min read
Per service Wi-Fi and Ethernet separately
3 Proxy types in the pane
HTTP · SOCKS5 Protocol support
5+ Countries available
  • Proxies belong to a network service — the settings attach to Wi-Fi or Ethernet individually, not to the Mac.
  • Safari has no proxy settings of its own — it follows the system pane completely, which makes it the ideal thing to test with.
  • The Terminal ignores that pane — curl, git, npm and wget read environment variables instead.
  • networksetup scripts the whole thing — useful when you switch between proxied and direct connections regularly.
4G / 5G Mobile Proxies Standard Protocols
Protocol supportHTTP(S), SOCKS5
Session typeSticky or rotating
BandwidthUnlimited
HardwareDedicated 4G/5G modem
Native Support

macOS speaks HTTP(S) and SOCKS5 without any extra software.

Scriptable

networksetup turns the whole configuration into two lines.

The Proxies Pane, and Which Interface It Belongs To

macOS keeps proxy settings in one obvious place, which makes it feel simpler than Windows. It mostly is — with one structural catch that trips people up long after the initial setup works: the settings belong to a network service, not to the Mac.

Open System Settings, go to Network, and select the connection you are currently using. Click Details, then Proxies. You will see a list of proxy types with checkboxes. Turn on the one you need, fill in the server and port, tick the authentication box if your proxy needs credentials, and click OK followed by Apply.

Entry in the pane What it actually configures Use it when
Web Proxy (HTTP) Plain HTTP requests Always, alongside the secure entry — most traffic is HTTPS but some is not
Secure Web Proxy (HTTPS) The tunnel used for HTTPS requests Always. Leaving this off is why some sites load and others do not
SOCKS Proxy Raw TCP, not just web traffic For non-web protocols, or when your provider gives a SOCKS5 port
Bypass list Hosts that should go direct Local addresses and internal hostnames that a proxy cannot reach

These settings attach to the network service you had selected — Wi-Fi, say. Plug in Ethernet, tether to a phone, or connect a USB adapter, and macOS uses that service’s own proxy settings, which are empty. The proxy has not stopped working; you are simply on a different interface that was never configured. Configure each service you actually use.

The same structure makes macOS pleasant to script. Because each service is addressed by name, two commands turn a proxy on and two turn it off, which beats clicking through the pane every time you switch.

networksetup, using the service name from Network settings
networksetup -listallnetworkservices

networksetup -setwebproxy "Wi-Fi" proxy.example.net 8000 on user123 s3cret
networksetup -setsecurewebproxy "Wi-Fi" proxy.example.net 8000 on user123 s3cret
networksetup -setsocksfirewallproxy "Wi-Fi" proxy.example.net 1080 on user123 s3cret

networksetup -getwebproxy "Wi-Fi"
networksetup -setwebproxystate "Wi-Fi" off
Illustrative endpoint and credentials

The state commands turn a proxy off without clearing what you typed, so switching between proxied and direct is one command rather than a re-entry of four values.

Safari, Chrome and the Browsers That Follow the System

Safari has no proxy configuration of its own. None — there is no dialog to find and nothing to get wrong. Every request Safari makes follows the Proxies pane. That is unusual enough to be worth exploiting: Safari is the cleanest possible test of whether your system-level configuration is correct, because it cannot be overridden by an application setting you forgot about.

Chrome follows the system pane by default too, and its proxy settings button simply opens macOS Network settings rather than offering its own. It can be overridden at launch with a command-line flag, which is occasionally useful for running one browser through a proxy while the rest of the system goes direct.

Launching Chrome with its own proxy, independent of the system
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --proxy-server="http://proxy.example.net:8000" \
  --user-data-dir="/tmp/chrome-proxied"
The separate profile directory keeps this window isolated from your normal one

Firefox is the outlier, as it is everywhere: it keeps its own connection settings and will use them in preference to the system. If Safari exits through the proxy and Firefox does not, that dialog is where to look.

For running several profiles through different proxies at once, browser flags stop being enough — that is what antidetect browsers exist for.

The Terminal Does Not Read the Proxies Pane

This is the one that catches everyone. curl, wget, git, npm, pip and essentially every command-line tool on macOS ignore the Proxies pane completely. They read environment variables, exactly as they do on Linux, and macOS provides no bridge between the two.

It is not a bug and there is no setting to make it behave otherwise. The pane configures the system networking layer that Cocoa applications use; command-line tools inherited a Unix convention that predates it.

Add to ~/.zshrc so it survives a new shell
export http_proxy="http://user123:[email protected]:8000"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,::1"

# Verify without touching the shell environment
curl -x "$http_proxy" https://api.ipify.org ; echo
curl https://api.ipify.org ; echo
Illustrative endpoint and credentials

Lower case is the safer choice on macOS. Some tools read only the lower-case names, a few read only the upper-case ones, and setting both is common practice — though be aware that HTTPS_PROXY in upper case is ignored by curl by design, to avoid a header-injection issue. Exporting the lower-case pair covers the widest range of software.

As on any system, putting a password in a shell profile means every process you run can read it. If the Mac has a stable address, ask your provider to whitelist it instead and drop the credentials entirely.

Diagnosing a Proxy That macOS Says Is Configured

The Proxies pane showing a ticked box is not evidence that the application you care about is using it. Work outwards from the layer, not from the credentials.

Symptom Most likely cause
Worked yesterday, not today You are on a different network service. Check which interface is active.
Safari proxied, Terminal is not Working as designed. Export the environment variables.
Some sites load, others hang Web Proxy is on but Secure Web Proxy is off, so HTTPS has no route.
Firefox alone bypasses the proxy Its own connection settings override the system.
Credentials rejected repeatedly SOCKS credentials in the web proxy fields. The two ports have separate logins.

The quickest single test is to open Safari and load a page that shows your public address. Because Safari cannot be independently configured, whatever it reports is the truth about your system-level proxy — and if it is proxied while something else is not, the system is fine and the other application is reading a different layer.

You can also confirm the endpoint itself with the free PXM2 proxy checker, which reports the detected proxy type and exit country.

Get a Mobile Proxy for macOS

Live PXM2 locations — pick the country you need an exit IP in, and configure it with the steps on this page:

🇫🇷

France

3 Operators 20-150 Mbps
Starting from
$4.34 for 1 hour
4G 5G
Available Operators:
Bouygues Orange SFR
🇮🇳

India

3 Operators 20-30 Mbps
Starting from
$2.74 for 1 hour
4G
Available Operators:
Airtel Jio Vodafone Idea (Vi)
🇸🇬

Singapore

2 Operators 30-70 Mbps
Starting from
$2.99 for 1 hour
4G
Available Operators:
Singtel Vivifi
View all locations →

Frequently Asked Questions

How do I set up a proxy on macOS?

Open System Settings, go to Network, select the connection you are using, click Details and then Proxies. Turn on Web Proxy for HTTP, Secure Web Proxy for HTTPS, or SOCKS Proxy, enter the host and port, add your credentials if the proxy uses them, and click OK. Safari and Chrome pick this up immediately.

Why does my proxy stop working when I switch from Wi-Fi to Ethernet?

Because macOS stores proxy settings per network service rather than globally. Configuring the Proxies pane while on Wi-Fi configures Wi-Fi only, and connecting over Ethernet or a different adapter uses that adapter’s own settings, which are empty. Configure each service you actually use, or script it with networksetup.

Does Safari have its own proxy settings?

No. Safari has no independent proxy configuration at all — every request it makes follows the Proxies pane in Network settings. That makes it genuinely useful as a diagnostic: if Safari exits through the proxy and another application does not, the system configuration is fine and the other application is reading something else.

Why does curl ignore my macOS proxy settings?

Because curl never reads the Proxies pane. It reads the http_proxy and https_proxy environment variables, as do wget, git and npm. Export them in your shell profile, or pass the proxy to curl explicitly. This is a design difference rather than a fault, and it catches almost everyone once.

How do I set a proxy on macOS from the command line?

Use networksetup, naming the network service exactly as it appears in Network settings — for example networksetup -setwebproxy "Wi-Fi" host port. There are matching commands for the secure web proxy and the SOCKS proxy, plus state commands to turn each one off again without clearing what you typed.

Windows and Linux split the same problem differently — both are worth a look if you work across machines.

Setup guides

Core mobile proxy guides

Run Your Mac Behind a Real Carrier IP

Dedicated 4G/5G modems with unlimited bandwidth and unlimited rotations — HTTP(S) and SOCKS5 endpoints that macOS speaks natively, with no client to install.

Get a Mobile Proxy