Правильный способ изменения MAC-адреса в виртуальной машине Linux?


13

Я пытался изменить MAC-адрес в виртуальной машине с Ubuntu (virtualbox), но после этого он выдавал много ошибок во время загрузки, а затем у меня не было подключения к Интернету.

Затем я увидел, что интерфейс был переименован в eth1, поэтому я отредактировал / etc / network / interfaces, чтобы изменить eth0 на eth1, перезагрузил компьютер (не знал, как перезапустить сеть), и загрузка теперь была быстрее, а интернет работал нормально.

Но теперь, после каждого входа в систему, я получаю 1 или 2 сообщения об ошибках, которые ничего не говорят, они только спрашивают меня, хочу ли я сообщить о них.

Поэтому мне было интересно, есть ли правильный способ изменить MAC-адрес, чтобы избежать этих проблем?


1
Существует ряд факторов, влияющих на изменение mac-адреса, на виртуальной машине или иным образом. Можете ли вы объяснить, почему вы хотите изменить Mac, это может помочь найти лучшее решение ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Пол

@Paul Я пытаюсь узнать, как разные программы отслеживают вашу активность, как это сделать и как ее избежать. Например: IP, куки, дактилоскопия в браузере и т. Д. Теперь я хочу посмотреть, как некоторые программы реагируют на изменение MAC-адреса.
HappyDeveloper

Ответы:


15

Скорее всего, вы используете «правильный» метод для изменения MAC-адреса, если вы делаете это в расширенных сетевых настройках VirtualBox. Тем не менее, временное изменение, как в другом ответе Zuul, может быть наилучшим для ваших целей, так как оно изменит MAC, не вызывая слишком много дополнительных проблем - однако это не переживет перезагрузку.

Изменение его в VirtualBox, конечно, переживет перезагрузку, но проблема, с которой вы столкнулись, заключается в следующем udev. Это процесс, который рассматривает аппаратное обеспечение и устанавливает его /dev(или все, что может потребоваться сделать). По умолчанию он пытается сохранить постоянные имена для сетевых карт [nics]. Это связано с тем, что когда у вас есть несколько сетевых адаптеров, вы хотите, чтобы у них всегда было одинаковое имя ethX, чтобы ваша /etc/network/interfacesконфигурация предназначалась для правильных сетевых имен при каждой загрузке. ОС не может полагаться на то, что они физически находятся в одном и том же месте каждый раз - вы можете перемещать их, например, или некоторые системы не сообщают о своих физических соединениях в одной и той же последовательности при каждой загрузке.

Поэтому udevиспользуются постоянные правила, основанные на MAC-адресе сетевой карты. Если у него есть запись для eth1 с известным MAC-адресом, и появляется карта с другим MAC-адресом, он назначит интерфейсу другое имя устройства ethX.

Чтобы противостоять этому, вам просто нужно обновить udevправила. Редактировать:

vi /etc/udev/rules.d/70-persistent-net.rules

и найдите строку с вашим текущим MAC:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Если вы измените здесь MAC-адрес на новый, который вы выбрали в настройках VirtualBox, то при следующей загрузке он сохранит тот же номер устройства ethX.

Лучше всего сначала отредактировать ее здесь, затем выключить виртуальную машину, затем отредактировать настройку VB MAC, а затем загрузить.


Редактирование файла вручную у меня не сработало, но я вспомнил, что читал, что вы можете полностью удалить этот файл, и после перезагрузки он генерируется автоматически. И это действительно сработало :) +1 для отображения местоположения файла.
Эдуард Лука

@Paul Почему же тогда я могу клонировать систему Linux с одной физической машины на другую того же типа (но с разными MAC-адресами) и не сталкиваться с такими проблемами?
Арни

1
@arney Я думаю, это потому, что это совсем другой NIC, а не только MAC-адрес. В файле , который упомянут Павлом, вы можете увидеть: ATTR{dev_id}=="0x0". Это должно быть по-другому.
MarioDS

@arney Я думаю, ты прав, Арни, если ника не существует, тогда правило udev не будет применено. Это так же, как если бы это была новая машина. Без ошибок сложно сказать. Но удаление правил постоянства поможет, если это udev.
Пол

8

Вы можете изменить MAC-адрес с помощью 4 простых шагов, используя ifconfig :

Откройте терминал (сочетание клавиш: ctrl+ alt+ t)

  1. Найти текущий MAC-адрес:

    ifconfig | grep HWaddr
    
  2. Завершите работу интерфейса (предполагая, что это будет сделано eth0для следующих шагов) :

    ifconfig eth0 down
    
  3. Установите новый MAC-адрес:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. Флаг вызывает активацию интерфейса:

    ifconfig eth0 up
    

Теперь вы можете перепроверить ваш MAC-адрес интерфейса:

ifconfig eth0 |grep HWaddr

Примечание. Вы можете выбрать любой 48-битный шестнадцатеричный адрес в качестве своего MAC-адреса.


В целях полноты вы можете объединить шаги 2 и 3 в одну строку:

ifconfig eth0 down hw ether 00:00:00:00:00:01

@DownVoter: Если с моим ответом возникнет проблема, комментарий будет иметь большое значение, чтобы я мог его улучшить! Tks.
Зуул
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.