新的 MAC 地址,现在我无法访问网络

新的 MAC 地址,现在我无法访问网络

我在 VirtualBox 中运行 Ubuntu Server 10.10,以 Windows 作为主机。我意外地选择在 VirtualBox 中为我的 Ubuntu 机器生成一个新的随机 MAC 地址。现在,当我使用新的 MAC 地址启动我的 Ubuntu 时,我没有获得外部 IP 地址。我使用 DHCP 来获取 IP 地址。

我想我必须运行一个命令并通知我的 Ubuntu 系统 MAC 地址已更改为获取外部 IP 地址。

如果我执行sudo /etc/init.d/networking restart我会收到此消息:

SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
eth0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth0

我该如何解决这个问题?

答案1

由于您的 mac 地址已更改,您不再有名为 eth0 的接口,此名称为具有“旧”mac 地址的接口保留。“新”接口应具有下一个可用名称(例如 ethN)。

要查看机器上的所有接口,可以使用以下命令:ifconfig -a

如果您想重置网络接口的名称保留,您可以删除该文件/etc/udev/rules.d/70-persistent-net.rules并重新启动机器(或者移除/插入设备,但在这种情况下这是不可能的)。

或者,你可以将文件中所有出现的旧名称更改为新名称,从而将已配置的接口名称更改为新名称/etc/network/interfaces

答案2

我猜你在 ubuntu 主机上使用静态 IP。

由于您已经更改了 MAC 地址,ubuntu 将为您创建一个新的“eth”,而不是使用旧的。

将文件 /etc/sysconfig/networks/ifcfg-eth0 修改为 ifcfg-eth1 或使用网络管理器设置静态配置。

答案3

首先在 VM Guest 中创建一个名为新文件sudo nano /etc/init.d/newfile有两行:

#!/bin/bash
sudo ifup eth0

接下来,从控制台:

sudo chmod +x /etc/init.d/newfile
sudo chmod 755 /etc/init.d/newfile 
sudo update-rc.d newfile defaults

我使用此解决方案是因为 eth0 在使用静态 IP 重启后处于关闭状态(DHCP 工作正常)。

我的/etc/network/interfaces:

    # The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
nameservers 192.168.1.1

(对不起我的英语不好)

相关内容