How to Change a MAC Address on Any Device
Every device that connects to a network has a MAC address — a unique identifier burned into its network hardware. But "burned in" doesn't mean permanent. You can change what your device broadcasts as its MAC address, and there are legitimate reasons to do so. Here's how it works, what varies by platform, and what you need to think through before making changes.
What Is a MAC Address (and Why Change It)?
A MAC address (Media Access Control address) is a 12-character hexadecimal identifier assigned to a network interface — your Wi-Fi card, Ethernet adapter, or Bluetooth chip. It looks something like A4:C3:F0:85:7D:22.
Unlike an IP address, which is assigned dynamically by a router, a MAC address is embedded by the manufacturer at the hardware level. However, operating systems can spoof a different MAC address in software, overriding what the hardware actually broadcasts.
Common reasons people change or spoof a MAC address:
- Privacy: Preventing tracking across public Wi-Fi networks
- Network troubleshooting: Resolving conflicts or testing network behavior
- Bypassing MAC filtering: Accessing a network that restricts by hardware address
- Re-registering on ISP networks: Some ISPs bind service to a specific MAC address
How MAC Address Changing Works 🔧
When you "change" a MAC address, you're not rewriting the chip — you're telling the OS to broadcast a different value. This is called MAC spoofing. The original hardware address (sometimes called the burned-in address or BIA) stays intact. When you revert the change, it comes right back.
The spoofed address persists only until:
- You revert it manually
- The OS resets the adapter
- You restart the device (depending on how the change was applied)
Some modern operating systems now randomize MAC addresses automatically for each Wi-Fi network — iOS 14+, Android 10+, and Windows 10/11 all support this by default or as an opt-in feature.
Changing a MAC Address by Operating System
Windows
- Open Device Manager → find your network adapter under Network Adapters
- Right-click → Properties → Advanced tab
- Look for Network Address or Locally Administered Address in the property list
- Select Value, enter your new 12-character hex address (no colons or dashes), click OK
Alternatively, tools like Technitium MAC Address Changer handle this through a GUI. Some adapters don't expose the property in Device Manager — this is a hardware/driver limitation, not a Windows bug.
macOS
macOS requires a Terminal command. The adapter must be disconnected from the network first:
sudo ifconfig en0 ether AA:BB:CC:DD:EE:FF Replace en0 with your actual interface name (use ifconfig to list them) and the address with your target MAC. This change does not survive a reboot — macOS resets to the hardware address on restart unless you script it into a startup process.
Linux
sudo ip link set dev eth0 down sudo ip link set dev eth0 address AA:BB:CC:DD:EE:FF sudo ip link set dev eth0 up Or use macchanger, a dedicated tool:
sudo macchanger -r eth0 # assigns a random address sudo macchanger -m AA:BB:CC:DD:EE:FF eth0 # assigns a specific address Linux changes are also non-persistent by default unless configured through NetworkManager or a systemd service.
Android
On Android 10 and later, MAC randomization is built in. Go to Settings → Wi-Fi → [Network name] → Advanced and toggle between Randomized MAC and Device MAC. Manual arbitrary addresses typically require root access or third-party apps.
iOS / iPadOS
iOS 14+ randomizes MAC addresses per network automatically. To toggle: Settings → Wi-Fi → [Network name] → Private Wi-Fi Address. You cannot set a fully custom arbitrary address without jailbreaking.
Key Variables That Affect Your Approach 📋
| Factor | Why It Matters |
|---|---|
| Operating system | Each OS handles spoofing differently, with different persistence behavior |
| Network adapter / driver | Not all adapters expose the MAC address setting; driver support varies |
| Root / admin access | Most methods require elevated privileges |
| Persistence requirement | Temporary vs. permanent changes need different approaches |
| Built-in randomization | May already be doing what you need on modern devices |
What Makes a Valid Spoofed MAC Address
Not any random string will work. A valid MAC address must:
- Be 12 hexadecimal characters (0–9, A–F)
- Have the second character be 2, 6, A, or E to be marked as a locally administered address (this signals it's not a manufacturer-assigned address)
- Avoid using broadcast addresses like
FF:FF:FF:FF:FF:FF
Using a properly formatted locally administered address avoids conflicts with real hardware identifiers on your network.
The Part That Depends on Your Setup 🖥️
The method that works cleanly for one person may hit a wall for another. A Windows machine with a cooperative Intel adapter takes minutes. A macOS user who needs the change to survive reboots has a scripting task on their hands. Someone on Android without root may find the built-in randomization is actually sufficient — or completely insufficient, depending on what they're trying to accomplish.
Whether the built-in randomization on your device already solves the problem, or whether you need a persistent custom address, or whether your adapter even supports spoofing — those answers live in your specific hardware, OS version, and what you're actually trying to do on the network.