What is a MAC Address?

A MAC (Media Access Control) address is a unique 12-digit hexadecimal identifier hardcoded into the network interface controller (NIC) of every device that connects to a network. It looks something like a4:83:e7:29:f1:c0.

Every device with WiFi, Ethernet, or Bluetooth capability has at least one MAC address. If your MacBook has both WiFi and Ethernet, each interface has its own unique address. Your router uses these addresses to identify and route traffic to individual devices on the local network.

The first three bytes of a MAC address identify the manufacturer (called the OUI — Organizationally Unique Identifier). The remaining three bytes are unique to the specific device. This means anyone on the same network can determine what brand of device you're using just by reading your MAC address. Spoofing it is one privacy layer; you should also remove your personal info from people-search sites.

Why Should You Spoof Your MAC Address?

There are several legitimate reasons to change your MAC address on macOS:

⚠️ Legal note: Spoofing your MAC address is legal in most jurisdictions when done on your own devices. However, using it to gain unauthorized access to networks, bypass paid services, or impersonate other users' devices may violate the Computer Fraud and Abuse Act (CFAA) or equivalent laws.

Who Can See Your MAC Address?

Your MAC address is only visible on the local network — it does not travel across the internet like your IP address does. Specifically, it can be seen by:

ℹ️ Key point: A MAC address cannot be used to trace your physical location or identify you personally. The most someone can determine from a MAC address is the manufacturer of your network adapter. However, if the same MAC appears on the same network repeatedly, it can be used to track your patterns — when you arrive, how long you stay, and how often you visit.

macOS Private Wi-Fi Address (Built-In, No Terminal Required)

Starting with macOS Sonoma (14) and expanded in macOS Sequoia (15), Apple built MAC address randomization directly into the operating system. This is the easiest way to protect your privacy — no Terminal commands needed.

macOS Sequoia offers three modes for Private Wi-Fi Address, configurable per network:

ModeBehaviorBest For
OffUses your real hardware MAC addressHome networks with MAC filtering
FixedUses a consistent private MAC per network (different for each SSID)Work/school networks that need a stable MAC
RotatingPeriodically changes the private MAC, even on the same networkMaximum privacy on public WiFi

How to configure it:

  1. Open System Settings (Apple menu → System Settings)
  2. Click Wi-Fi in the sidebar
  3. Click the Details button (or "i" icon) next to your connected network
  4. Find Private Wi-Fi Address
  5. Choose Off, Fixed, or Rotating
💡 Tip: For maximum privacy on public networks, set this to Rotating. For your home network (especially if you use MAC filtering on your router), set it to Off or Fixed. This is a per-network setting, so you can use different modes for different WiFi networks.
ℹ️ Note: If you're running macOS Ventura (13) or earlier, this feature appears as a simple on/off toggle labeled "Private Wi-Fi Address" — there's no Rotating option. The behavior is equivalent to "Fixed" mode.

How To Find Your Current MAC Address

There are two ways to find your MAC address on macOS:

Method 1: Terminal

Terminal
# WiFi interface (usually en0 on MacBooks) $ networksetup -getmacaddress en0 Ethernet Address: a4:83:e7:29:f1:c0 (Device: en0) # Alternative using ifconfig $ ifconfig en0 | grep ether ether a4:83:e7:29:f1:c0
Finding MAC address on macOS using Terminal

Using ifconfig to display your current MAC address

Method 2: System Settings

Go to System Settings → Wi-Fi → Details (next to your connected network). Your MAC address is displayed at the bottom of the details panel. On older macOS versions: System Preferences → Network → Advanced → Hardware.

Finding MAC address in macOS System Preferences

Viewing the MAC address in System Preferences (older macOS)

ℹ️ Interface names: On most MacBooks, en0 is WiFi. On Mac desktops or when using USB Ethernet, the Ethernet interface may be en0 and WiFi may be en1. Use networksetup -listallhardwareports to see which is which on your system.

How To Spoof Your MAC Address via Terminal

If the built-in Private Wi-Fi Address feature doesn't suit your needs — for example, you want to set a specific MAC address — you can use Terminal.

⚠️ macOS Sequoia note: On Sequoia 15.x, you may get the error ifconfig: ioctl (SIOCAIFADDR): Can't assign requested address if WiFi is off. The workaround is to turn WiFi off and back on, then run the command immediately before it connects to an access point. See the command sequence below.

For macOS Sequoia (15.x)

Terminal — macOS Sequoia
# Turn WiFi off and on, then immediately set the new MAC $ networksetup -setairportpower en0 off $ networksetup -setairportpower en0 on $ sudo ifconfig en0 ether 00:03:93:12:34:56 # Verify the change $ ifconfig en0 | grep ether ether 00:03:93:12:34:56

For macOS Sonoma (14.x) and earlier

Terminal — macOS Sonoma and earlier
# Disconnect from WiFi first $ sudo ifconfig en0 ether 00:03:93:12:34:56 # Restart the interface to apply $ sudo ifconfig en0 down && sudo ifconfig en0 up # Verify $ ifconfig en0 | grep ether ether 00:03:93:12:34:56
Changing MAC address on macOS via Terminal

Spoofing a MAC address on macOS using ifconfig

💡 Tip: Use a MAC address from a known vendor for best compatibility. Not all random addresses will work — macOS validates the format. Here are some working vendor prefixes you can use (just change the last 3 bytes):

00:03:93:xx:xx:xx — Apple
08:00:46:xx:xx:xx — Sony
FC:F8:AE:xx:xx:xx — Intel
FC:C7:34:xx:xx:xx — Samsung

Using SpoofMAC (Homebrew)

For a more convenient approach, SpoofMAC is an open-source tool you can install via Homebrew that simplifies the process:

Terminal — SpoofMAC
# Install via Homebrew $ brew install spoof-mac # List all interfaces $ spoof-mac list - "Wi-Fi" on device "en0" with MAC address a4:83:e7:29:f1:c0 # Randomize MAC address $ sudo spoof-mac randomize en0 # Set a specific MAC $ sudo spoof-mac set 00:03:93:12:34:56 en0 # Reset to original hardware MAC $ sudo spoof-mac reset en0

SpoofMAC can also be configured to run at startup using a launchd plist, so your MAC is randomized every time you boot. See the SpoofMAC documentation for setup instructions.

Bash Script to Automate MAC Spoofing

If you prefer not to install additional tools, here's an updated bash script that works on macOS Sequoia and earlier versions:

spoofmac.sh
#!/bin/bash # MAC Address Spoofer for macOS (Sequoia compatible) # Usage: sudo ./spoofmac.sh [optional: specific MAC] INT="en0" # Generate a random MAC or use the one provided if [ -z "$1" ]; then NEW=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//') # Set locally administered bit (second hex char = 2,6,A,E) NEW="02${NEW:2}" else NEW="$1" fi echo "Interface: $INT" echo "Current MAC: $(ifconfig $INT | grep ether | awk '{print $2}')" echo "New MAC: $NEW" # Sequoia workaround: cycle WiFi power first networksetup -setairportpower $INT off 2>/dev/null networksetup -setairportpower $INT on 2>/dev/null sleep 0.5 sudo ifconfig $INT ether $NEW echo "Verified: $(ifconfig $INT | grep ether | awk '{print $2}')" echo "Done. Restart your Mac to revert to the original MAC."
Terminal
# Make executable and run $ chmod +x spoofmac.sh $ sudo ./spoofmac.sh # Or with a specific MAC: $ sudo ./spoofmac.sh 00:03:93:12:34:56

Troubleshooting Connection Issues

If your WiFi doesn't reconnect after changing the MAC address, try these steps:

  1. Toggle WiFi off and on from the menu bar
  2. If that doesn't work, restart the interface via Terminal:
Terminal
$ sudo ifconfig en0 down && sudo ifconfig en0 up
Restarting network interface on macOS

Restarting the network interface to fix connection issues

To revert to your original MAC address, restart your Mac. macOS does not persist spoofed MAC addresses between reboots.

Frequently Asked Questions

Does macOS already randomize my MAC address automatically?

Starting with macOS Sequoia, yes. The Private Wi-Fi Address feature uses a unique address per network by default. On Sequoia you can choose between Off, Fixed (same private MAC per SSID), and Rotating (periodically changes even on the same network). On Sonoma and earlier, it's a simple on/off toggle.

Why do I get "Can't assign requested address" on Sequoia?

macOS Sequoia requires the WiFi interface to be on but not connected when you change the MAC. The solution is to power-cycle WiFi with networksetup -setairportpower en0 off then on, and immediately run the ifconfig command before it auto-connects to a known network.

Can I spoof my Ethernet MAC address on macOS?

Ethernet MAC spoofing is more restricted on recent macOS versions. The ifconfig method may not work for Ethernet adapters on Sequoia. WiFi spoofing is more reliably supported. For Ethernet, consider the built-in Private Wi-Fi Address if available for your adapter, or use a Linux VM.

Will the spoofed MAC persist after a reboot?

No. macOS resets to the original hardware MAC address on every restart. If you need it to persist, set up SpoofMAC with a launchd plist to run at boot, or use the built-in Private Wi-Fi Address feature which persists automatically.

Can I change the MAC address on macOS without Terminal?

Yes — macOS Sequoia's Private Wi-Fi Address feature lets you use a different MAC for each network entirely through System Settings, no Terminal needed. For older macOS versions, third-party GUI tools like Mac MACSpoof or WiFi Spoof are available, though most are paid.

What's the difference between this and changing a MAC address on Kali Linux?

On Kali Linux with macchanger, you have more control — including random vendor selection and vendor database lookup. macOS is more restrictive and validates MAC formats more strictly. The underlying concept is the same, but the tools and commands differ.