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

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

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

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

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

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

решение1

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

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

Так 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, а затем выполнить загрузку.

решение2

Вы можете изменить 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

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


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

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

Связанный контент