How to Change Your MAC Address on Windows, Mac, and Linux

A MAC address (Media Access Control address) is a unique identifier assigned to your network interface card (NIC) — whether that's your Wi-Fi adapter, Ethernet card, or any other network hardware. It's a 12-character hexadecimal string that looks something like 00:1A:2B:3C:4D:5E, and it operates at the data link layer of your network.

Unlike an IP address, which can change dynamically, a MAC address is burned into the hardware by the manufacturer. However, most modern operating systems let you override it in software — a process commonly called MAC spoofing.

Why Would You Change Your MAC Address?

There are several legitimate reasons someone might want to do this:

  • Privacy on public networks — Some Wi-Fi hotspots track devices by MAC address across sessions. Changing it limits that tracking.
  • Bypassing network filters — Some routers restrict access by MAC address. A changed address can help if you're locked out of your own network.
  • Network testing and development — Developers and IT administrators spoof MACs to simulate different devices on a network.
  • ISP authentication issues — Some ISPs tie your account to a specific MAC address. Cloning your router's MAC can resolve connectivity problems during hardware changes.
  • Avoiding device fingerprinting — Consistent MAC addresses make it easier to profile a device across networks.

It's worth noting that changing a MAC address only affects how your device appears on a local network. It doesn't hide your identity online or replace a VPN.

How to Change a MAC Address on Windows

Windows allows MAC address changes through Device Manager or the registry. The Device Manager method is easier for most users.

Using Device Manager

  1. Press Windows + X and select Device Manager
  2. Expand Network Adapters and right-click your adapter
  3. Select Properties, then go to the Advanced tab
  4. Look for a property called Network Address, Locally Administered Address, or similar
  5. Select Value, enter your new MAC address (12 hex characters, no colons or dashes)
  6. Click OK and restart the adapter or your machine

⚠️ Not all Windows network drivers expose this option. If you don't see it in the Advanced tab, a third-party tool like Technitium MAC Address Changer can handle it at the driver level.

Important format note

Windows typically expects the MAC entered without separators — for example, 001A2B3C4D5E. Other systems use colons or dashes. Always check what format your tool or OS expects.

How to Change a MAC Address on macOS

macOS doesn't provide a GUI option for this, so it's done through the Terminal. The change is temporary by default — it resets after a reboot.

sudo ifconfig en0 ether XX:XX:XX:XX:XX:XX 

Replace en0 with your actual interface name (use ifconfig to list them — Wi-Fi is often en0, Ethernet may be en1 or similar), and replace the X values with your desired MAC address.

To make the change persistent across reboots, you'd need to create a LaunchDaemon script that runs the command at startup — a more advanced step that requires some familiarity with macOS system configuration.

🔒 macOS also introduced Private Wi-Fi Address features in newer versions (macOS Ventura and later), which automatically randomize MAC addresses per network at the OS level without any Terminal work.

How to Change a MAC Address on Linux

Linux gives you the most control, and there are multiple methods depending on your distribution and network manager.

Using ip command (temporary)

sudo ip link set dev eth0 down sudo ip link set dev eth0 address XX:XX:XX:XX:XX:XX sudo ip link set dev eth0 up 

Replace eth0 with your interface name (find it with ip link show).

Using macchanger (persistent-friendly)

macchanger is a dedicated tool available in most package managers:

sudo apt install macchanger # Debian/Ubuntu sudo macchanger -r eth0 # Assign a random MAC sudo macchanger -m XX:XX:XX:XX:XX:XX eth0 # Assign a specific MAC 

For permanent changes across reboots on systems using NetworkManager or systemd-networkd, you'll configure MAC randomization directly in those services' config files.

Key Variables That Affect How This Works

VariableWhy It Matters
Operating system versionNewer OS versions may restrict or automate MAC changes
Network adapter driverSome drivers block or ignore software MAC overrides
Network manager in useNetworkManager, systemd-networkd, and Wicd handle persistence differently
Wired vs. wirelessSome access points and switches behave differently toward spoofed MACs
Virtual vs. physical adapterVMs often have easier MAC control through hypervisor settings
Router/switch firmwareManaged switches may log or flag MAC changes

Temporary vs. Persistent Changes

This distinction matters a lot in practice. Temporary changes reset on reboot — useful for one-time privacy on a public network. Persistent changes survive restarts and require deeper configuration, either through startup scripts, network manager config files, or driver-level settings.

Most GUI tools on Windows handle persistence automatically. On macOS and Linux, persistence requires additional steps beyond the basic command.

What Changes — and What Doesn't

Changing your MAC address affects how your device is identified on the local network segment only. Routers, switches, and nearby devices see the new address. However:

  • Your IP address is assigned separately and isn't directly changed
  • Online services see your IP, not your MAC
  • Your ISP typically sees your router's MAC, not your individual device's MAC
  • Some enterprise networks use MAC filtering alongside certificates and 802.1X authentication, where a MAC change alone won't grant access

The right approach — temporary vs. persistent, which tool to use, and whether OS-level randomization is sufficient — depends heavily on why you're making the change and what kind of network environment you're operating in.