Как изменить MAC-адрес в Linux
MAC-адрес (Media Access Control Address) — это один из физических идентификаторов, назначенных вашему контроллеру сетевого интерфейса. Каждое устройство имеет свой уникальный MAC-адрес, который задается при производстве, но его можно изменить с помощью нескольких инструментов.
Иногда вы хотите изменить этот mac (также известный как физический адрес) по разным причинам. Например, если вы подключены к Wi-Fi в аэропорту или на железной дороге, у них есть лимит на использование передачи данных. Когда ваше использование данных достигнет этого предела, вы можете столкнуться с низкой скоростью интернета. Чтобы избежать этого, вы можете подделать MAC-адрес вашей системы и заставить их поверить, что это другое устройство.
Еще один пример: вы используете чей-то Wi-Fi, а потом вдруг не можете подключиться к нему. Есть вероятность, что администратор заблокировал вас в своей сети по MAC-адресу.
Во всех этих случаях изменение вашего Mac-адреса может помочь вам избежать блокирование вашего устройства брандмауэром маршрутизатора и получить доступ к Интернету.
Давайте посмотрим, как мы можем изменить или подделать наш MAC-адрес, используя одни из самых простых и лучших бесплатных утилит наряду с iproute в операционной системе Linux.
Определим свой физический MAC-адрес.
Одним из предварительных шагов перед изменением mac-адреса является поиск имени сетевой карты (NIC) сетевого адаптера, для которого вы хотите изменить mac-адрес.
В выводе вышеприведенной команды перечислены все сетевые интерфейсы, подключенные к вашему ноутбуку или настольному компьютеру.
Изменение MAC-адреса в Linux
Прежде чем изменить существующий МАК, следует узнать его текущее значение. Как и большинство других системных операций, рассматриваемая выполняется посредством терминала.
- Запустить требуемое приложение можно несколькими способами. Первый – откройте перечень установленного софта нажатием на соответствующую кнопку в левом нижнем углу, затем выберите пункт «Утилиты» – «Терминал». Второй и более предпочтительный – воспользоваться сочетанием клавиш, по умолчанию это Alt+Ctrl+T.
- После вызова терминала введите в нём следующую команду: ip link show Это отобразит адреса всех сетевых адаптеров, распознанных операционной системой. Нужные значения представляют собой последовательность после строки link/show, а в начале находится конкретный идентификатор того или иного адаптера.
Альтернативный метод просмотра MAC-адреса – использование пакета сетевых инструментов. Последние сперва потребуется установить путем ввода в терминале следующей команды: sudo apt install net-tools
При первом применении с аргументом sudo нужно ввести пароль от учётной записи. Далее, когда нужные пакеты будут загружены и установлены, введите следующее: ifconfig | grep ether
Здесь обратите внимание на значения после последовательности ether – это и есть искомое.
Этап 2: Изменение MAC-адреса
Дальше у нас есть несколько вариантов решения рассматриваемой задачи: использовать ip link, уже инсталлированные на предыдущем этапе net-tools или воспользоваться загружаемой утилитой macchanger.
Вариант 1: ip link
Для смены MAC с помощью этих средств потребуется выполнить следующие действия:
- Для начала понадобится отмонтировать рассматриваемое устройство следующей командой (вместо *интерфейс* впишите название нужного сетевого адаптера, полученного на предыдущем этапе): sudo ip link set dev *интерфейс* down
Вариант 2: ifconfig
Данное средство является частью пакета net-tools и уже достаточно давно не используется в дистрибутивах Linux как инструмент управления сетями, однако с его помощью также можно решить рассматриваемую задачу.
- По умолчанию ifconfig отсутствует в стандартном пакете программ, поэтому его потребуется доустановить, если этого не было сделано на шаге 4 предыдущего этапа.
- Как и в случае с утилитой ip link, сперва потребуется отключить используемое устройство командой: sudo ifconfig *интерфейс* down Замените *интерфейс* именем требуемого сетевого устройства.
- Теперь предстоит ввод операторов замены адреса – сама последовательность выглядит так: sudo ifconfig *интерфейс* hw ether *XX:XX:XX:XX:XX:XX* Не забудьте заменить вставки на идентификатор адаптера и новый MAC соответственно.
- После применения команды заново активируем отсоединённый сетевой интерфейс, прописав в консоли следующее: sudo ifconfig *интерфейс* up
Вариант 3: macchanger
Последним способом решения рассматриваемой задачи будет очередная консольная программа, именуемая macchanger.
- Приложение не является частью ядра или оболочки, поэтому его нужно устанавливать отдельно. Вызовите терминал и введите в нём следующую команду: sudo apt-get install macchanger Префикс sudo потребует ввода пароля учётной записи.
- В процессе инсталляции появится информационное сообщение с запросом на автоматическую смену MAC при каждом подключении сетевого кабеля или активации Wi-Fi. Выберите желаемый вариант с помощью стрелок и нажмите Enter.
- Теперь нужно получить имя устройства, аппаратный идентификатор которого мы будем изменять, воспользовавшись для этого следующей командой: ip addr Ознакомьтесь с перечнем – как правило, обычно имеются два устройства, одно из которых отвечает за соединение по кабелю, второе – за коннектор Wi-Fi. Ориентируйтесь на вид названия – имена беспроводных адаптеров начинаются с букв wl, кабельных – с e либо enp.
- Для присвоения случайного MAC в терминале следует ввести следующее: macchanger -r *интерфейс* Вместо *интерфейс* напечатайте значение, полученное на шаге 2. Если вы получили ошибку, это значит, что команду нужно вводить с префиксом sudo .
- Установка определённой последовательности выглядит похожим образом: macchanger —mac=*XX:XX:XX:XX:XX:XX* *интерфейс* Как и в предыдущем случае, вместо вставок со звёздочками впишите идентификатор сетевого адаптера и желаемое значение МАК. Замечание о необходимости sudo для этой команды также справедливо.
- С помощью macchanger можно восстановить и заводской идентификатор – просто напишите такую команду: macchanger -p enp0s8
How do I change / spoof my MAC address and easily switch between multiple ones?
My router can do port-forwarding based on MAC addresses. That is, a specific MAC will get a specific IP, for which I can configure a set of ports to be forwarded. In order to easily change that set of ports, I’d like to have different connections in the Network manager. How do I change the MAC address for a network connection?
6 Answers 6
First, go to the networking indicator and select «Edit connection» to configure a new connection:
Click ‘add’ and choose a name for the spoofed MAC network connection.
After selecting your interface «eth0» in the top dropdown, you can simply choose any MAC address you like:
And after connecting to it, you’ll be using your new MAC address.
Running ip link ls will show you the new interface, including it’s spoofed MAC:
2: eth0: mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
And now you can easily switch MAC-addresses by connecting to one of the new connections.
Is it possible to automate and randomize the Mac address for every new connection or login? I would post this as a new question, but I assume it would get marked as a duplicate of your question.
In gnome shell, I don’t get the option to set up another interface on eth0. Could you describe what’s going on behind the scenes, and how to achieve it via a terminal? thx
in Ubuntu 14.04, with a wifi network, this doesn’t seem to work, NetworkManager simply refuses to connect to the wifi network that I choose to modify the MAC on (via Cloned MAC address textbox) 🙁
You can also change mac address on ubuntu or linux mint via the terminal
Go to your ubuntu or linux mint terminal, edit /etc/network/interfaces file
$ sudo nano /etc/network/interfaces
You should see something like this with dhcp enabled for your network interface. Usually its eth0 for ubuntu or linux mint wired network and wlan0 for ubuntu or linux mint wireless network.
auto eth0 iface eth0 inet dhcp
At the end of /etc/network/interfaces file, add this line to give your system’s network interface new MAC address.
hwaddress ether A4-19-E2-94-DD-BB
Save /etc/network/interfaces file with the new config, then restart your system network.
$ sudo /etc/init.d/networking restart
$ sudo service networking restart
this doesn’t work in Ubuntu 14.04, sudo /etc/init.d/networking restart gives stop: Job failed while stopping , and even if you restart the network with NetworkManager, ip link ls doesn’t reveal the new MAC being in use (testing with wifi wlan0 instead of eth0 though)
You could try macchanger available in the repositories. Install with sudo apt-get install macchanger or through Ubuntu Software center.
$ macchanger GNU MAC Changer Usage: macchanger [options] device Try `macchanger --help' for more options. tvbox@tvbox-G31M-ES2L:~$ macchanger --help GNU MAC Changer Usage: macchanger [options] device -h, --help Print this help -V, --version Print version and exit -s, --show Print the MAC address and exit -e, --ending Don't change the vendor bytes -a, --another Set random vendor MAC of the same kind -A Set random vendor MAC of any kind -p, --permanent Reset to original, permanent hardware MAC -r, --random Set fully random MAC -l, --list[=keyword] Print known vendors -b, --bia Pretend to be a burned-in-address -m, --mac=XX:XX:XX:XX:XX:XX --mac XX:XX:XX:XX:XX:XX Set the MAC XX:XX:XX:XX:XX:XX
Granted this a CLI utility.