Hap*_*per 13 linux virtualbox virtualization mac-address ubuntu
我试图更改 ubuntu VM(虚拟机)中的 MAC 地址,但在那之后它在启动过程中抛出了很多错误,然后我没有互联网连接。
然后我看到接口被重命名为 eth1,所以我编辑 /etc/network/interfaces 将 eth0 更改为 eth1,重新启动(不知道如何重新启动网络),现在启动速度更快,互联网工作正常。
但是现在每次登录后,我都会收到 1 或 2 条什么也没说的错误消息,他们只问我是否要报告它们。
所以我想知道,是否有适当的方法来更改 MAC 地址,以避免这些问题?
Pau*_*aul 15
如果您在 VirtualBox 的高级网络设置中执行此操作,您很可能会使用“正确”的方法来更改 MAC 地址。但是,Zuul 的另一个答案中的临时更改可能最适合您的目的,因为它会更改 MAC 而不会引起太多其他问题 - 但是它不会在重新启动后幸免于难。
在 VirtualBox 中更改它当然可以在重启后幸免于难,但您面临的问题是udev. 这是查看硬件并设置硬件/dev(或其他任何可能需要完成的工作)的过程。默认情况下,它所做的一件事是尝试维护网络接口卡 [nics] 的持久名称。这是因为当您有多个网卡时,您希望它们始终具有相同的 ethX 名称,以便您的/etc/network/interfaces配置每次启动都针对正确的网卡。操作系统不能仅仅依赖它们每次物理上都在同一位置——例如,您可以移动它们,或者某些系统在每次启动时不会以相同的顺序报告它们的物理连接。
所以udev使用基于网卡MAC地址的持久化规则。如果它有一个具有已知 MAC 地址的 eth1 条目并且出现一个具有不同 MAC 地址的卡,它将为接口分配一个不同的 ethX 设备名称。
为了解决这个问题,您只需要更新udev规则。编辑:
vi /etc/udev/rules.d/70-persistent-net.rules
Run Code Online (Sandbox Code Playgroud)
并查找与您当前的 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"
Run Code Online (Sandbox Code Playgroud)
如果您将此处的 MAC 地址更改为您在 VirtualBox 设置中选择的新地址,那么下次启动时它将保留相同的 ethX 开发编号。
最好的顺序可能是先在这里编辑它,然后关闭 VM,然后编辑 VB MAC 设置,然后启动。
您可以使用ifconfig通过 4 个简单步骤更改 MAC 地址:
打开终端(键盘快捷:ctrl+ alt+ t)
找到当前的mac地址:
ifconfig | grep HWaddr
Run Code Online (Sandbox Code Playgroud)关闭接口(假设它eth0用于下一步):
ifconfig eth0 down
Run Code Online (Sandbox Code Playgroud)设置新的mac地址:
ifconfig eth0 hw ether 00:1E:68:35:FF:91
Run Code Online (Sandbox Code Playgroud)Flag 导致接口被激活:
ifconfig eth0 up
Run Code Online (Sandbox Code Playgroud)现在您可以重新检查您的接口 mac 地址:
ifconfig eth0 |grep HWaddr
Run Code Online (Sandbox Code Playgroud)
注意:您可以选择任何 48 位十六进制地址作为您的 MAC 地址。
为完整起见,您可以将步骤 2 和 3 合并为一行:
ifconfig eth0 down hw ether 00:00:00:00:00:01
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39419 次 |
| 最近记录: |