Howto change MAC adress in Ubuntu
Why would you want to change your MAC ?
Several reasons:
Some ISP’s lock their cable/ADSL modems to single MAC address ( usually your router), if for some reason you need to connect some other machine to that modem you need to change MAC address on that machine.
Security and privacy. Each ethernet and WiFi card has its own MAC, that can sometimes be traced back to you. By changing your MAC you can prevent that.
NOTE: While most ethernet ( all ?) support changing MAC, there are some WiFi cards that do not.
NOTE: In the following text I have used eth0 as an example of network interface.
Replace it with the interface of the card whose MAC you want to change.
To list all interfaces: sudo ifconfig -a
There are several ways to change your MAC.
General Linux
Works on most Linux boxes.
First we bring down the interface:
ifconfig eth0 down
then we change the MAC:
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
and we bring back the interface (static):
ifconfig eth0 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
ifconfig eth0 up
route add default gw 192.168.0.1 eth0
or with dhcp:
/sbin/dhcpdc eth0
Ubuntu
On Ubuntu the procedure is dependant on weather you use NetworkManger or not.
Without NetworkManeger
First edit /etc/network/interfaces and change:
auto eth0
iface eth0 inet dhcp
into:
auto eth0
iface eth0 inet dhcp
hwaddress ether xx:xx:xx:xx:xx:xx
After making above changes you need to restart networking with:
sudo /etc/init.d/networking restart
With NetworkManeger
Create new file /etc/network/if-pre-up.d/macchange
#! /bin/sh
# $IFACE - provided by NetworkManeger
/sbin/ifconfig $IFACE hw ether xx:xx:xx:xx:xx:xx
# If we use macchanger from http://www.alobbs.com/macchanger/
/usr/bin/macchanger -e $IFACE
After saving the above file we make it executable:
sudo chmod +x /etc/network/if-pre-up.d/macchange
And thats it. NetworkManeger will call our script each time before it brings up the interface.
Random MAC’s
Macchanger can be used to generate random MAC’s.
Insted of using ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx you can use macchanger
Example:
macchanger -m xx:xx:xx:xx:xx:xx eth0
Random MAC example:
#Random MAC of the same kind (wifi, ethernet)
macchanger -a eth0
#Random MAC from same manufacturer
macchanger -e eth0
#Fully random MAC
macchanger -r eth0
