我试图在ubuntu VM(虚拟机)中更改MAC地址,但此后在启动过程中抛出了很多错误,然后我没有Internet连接。
然后我看到接口被重命名为eth1,所以我编辑了/ etc / network / interfaces将eth0更改为eth1,重新启动(不知道如何重新启动网络),现在启动速度更快,并且Internet可以正常工作。
但是现在,每次登录后,我都会收到1或2条错误消息,什么也没说,它们只是问我是否要报告。
所以我想知道,是否有一种正确的方法来更改MAC地址,以避免这些问题?
我试图在ubuntu VM(虚拟机)中更改MAC地址,但此后在启动过程中抛出了很多错误,然后我没有Internet连接。
然后我看到接口被重命名为eth1,所以我编辑了/ etc / network / interfaces将eth0更改为eth1,重新启动(不知道如何重新启动网络),现在启动速度更快,并且Internet可以正常工作。
但是现在,每次登录后,我都会收到1或2条错误消息,什么也没说,它们只是问我是否要报告。
所以我想知道,是否有一种正确的方法来更改MAC地址,以避免这些问题?
Answers:
如果在VirtualBox的高级网络设置中执行此操作,则很有可能使用“正确”方法来更改MAC地址。但是,临时更改(如Zuul的其他回答)可能是最适合您的目的,因为它可以更改MAC而不会引起太多其他问题-但是,重新启动后它将无法生存。
当然,在VirtualBox中对其进行更改将在重启后仍然存在,但是您面临的问题是udev。这是查看硬件并设置硬件的过程/dev(或可能需要执行的其他任何操作)。默认情况下,它要做的一件事是尝试维护网络接口卡[nics]的永久名称。这是因为当您有多个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开发号。
最好的顺序可能是先在此处进行编辑,然后关闭VM,然后编辑VB MAC设置,然后启动。
ATTR{dev_id}=="0x0"。这必然是不同的。
您可以使用ifconfig通过4个简单的步骤更改MAC地址:
打开一个终端(键盘快捷键:ctrl+ alt+ t)
查找当前的mac地址:
ifconfig | grep HWaddr
关闭界面(假设eth0用于后续步骤):
ifconfig eth0 down
设置新的mac地址:
ifconfig eth0 hw ether 00:1E:68:35:FF:91
标志导致接口被激活:
ifconfig eth0 up
现在,您可以重新检查界面的mac地址:
ifconfig eth0 |grep HWaddr
注意:您可以选择任何48位十六进制地址作为您的MAC地址。
为了完整起见,您可以将步骤2和3合并为一行:
ifconfig eth0 down hw ether 00:00:00:00:00:01