Each network interface on your computer or any other networked device has a unique MAC address. These MAC addresses are assigned in the factory, but you can change, or “spoof,” MAC addresses in software.
MAC stands for “media access control.” MAC addresses are also commonly referred to as physical addresses or hardware addresses, because they correspond to a hardware adapter.
What MAC Addresses Are Used For
In addition to their core networking use, MAC addresses are often used for other purposes:
- Static IP Assignment: Routers allow you to assign static IP addresses to your computers. When a device connects, it always receives a specific IP address if it has a matching MAC address
- MAC Address Filtering: Networks can use MAC address filtering, only allowing devices with specific MAC addresses to connect to a network. This isn’t a great security tool because people can spoof their MAC addresses.
- MAC Authentication: Some Internet service providers may require authentication with a MAC address and only allow a device with that MAC address to connect to the Internet. You may need to change your router or computer’s MAC address to connect.
- Device Identification: Many airport Wi-Fi networks and other public Wi-Fi networks use a device’s MAC address to identify it. For example, an airport Wi-Fi network might offer a free 30 minutes and then ban your MAC address from receiving more Wi-Fi. Change your MAC address and you could get more Wi-Fi. (Free, limited Wi-Fi may also be tracked using browser cookies or an account system.)
- Device Tracking: Because they’re unique, MAC addresses can be used to track you. When you walk around, your smartphone scans for nearby Wi-Fi networks and broadcasts its MAC address. A company named Renew London used trash bins in the city of London to track people’s movements around the city based on their MAC addresses. Apple’s iOS 8 will use a random MAC address each time it scans for nearby Wi-Fi networks to prevent this sort of tracking.
Bear in mind that each network interface has its own MAC address. So, on a typical laptop with both a Wi-Fi radio and a wired Ethernet port, the wireless and wired network interface each have unique, separate MAC addresses.
Most network cards will allow you to set a custom MAC address from their configuration panes in the Device Manager, although some network drivers may not support this feature.
First, open the Device Manager. On Windows 8.1, press Windows Key + X and click Device Manager. On Windows 7, press the Windows key, type “Device Manager” to search for it, and click Device Manager.
Locate the network interface you want to modify under Network Adapters, right-click it, and select Properties.
Click the Advanced tab and select Network Address in the list. Your network driver doesn’t support this feature if the option isn’t here.
Enable the Value option and enter your desired MAC address without any separating characters — don’t use dashes or colons. Click OK afterward.
Modern Linux distributions like Ubuntu typically use Network Manager, which provides a graphical way to spoof a MAC address.
For example, on Ubuntu you’d click the network icon on the top panel, click Edit Connections, select the network connection you want to modify, and click Edit. On the Ethernet tab, you’d enter a new MAC address under “Cloned MAC address” and save your changes.
You can also do this the old-fashioned way. This involves taking the network interface down, running a command to change its MAC address, and then bringing it back up. Be sure to replace “eth0” with the name of the network interface you want to modify and enter the MAC address of your choice:
sudo ifconfig eth0 down
sudo ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
sudo ifconfig eth0 up
You’ll have to modify the appropriate configuration file under /etc/network/interfaces.d/ or the /etc/network/interfaces file itself if you want this change to always take effect at boot time. If you don’t, your MAC address will be reset when you restart.
Mac OS X
Mac OS X’s System Preferences pane displays each network interface’s MAC address, but doesn’t allow you to change it. You can do so with a single command.
Open a Terminal window (press Command + Space, type Terminal, and press Enter.) Run the following command, replacing en0 with the network interface’s name and filling in your own MAC address:
sudo ifconfig en0 xx:xx:xx:xx:xx:xx
The network interface will generally be either en0 or en1, depending on whether you want to configure a Mac’s Wi-Fi or Ethernet interface. Run the ifconfig command to see a list of interfaces if you’re not sure of the appropriate network interface’s name.
As on Linux, this change is temporary and will be reset when you next reboot. You’ll need to use a script that automatically runs this command on boot if you’d like to permanently change your Mac address.
You can verify your change took effect by running a command that shows your network connection details and checking what MAC address your network interface reports afterwards. On Windows, run the ipconfig /all command in a Command Prompt window. On Linux or Mac OS X, run the ifconfig command.
If you need to change the MAC address on your router, you’ll find this option in your router’s web interface.