我在以 Windows 为主机的 VirtualBox 中运行 Ubuntu Server 10.10。意外地,我选择在 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
我该如何解决这个问题?
由于您的 mac 地址已更改,您不再有一个名为 eth0 的接口,此名称保留用于具有“旧”mac 地址的接口。“新”接口应该有下一个自由名称(例如 ethN)。
要查看机器上的所有接口,您可以使用以下命令:
ifconfig -a
如果您想重置网络接口的名称保留,您可以删除文件
/etc/udev/rules.d/70-persistent-net.rules
并重新启动机器(或删除/插入设备,尽管在这种情况下这是不可能的)。或者,您可以通过将所有出现的旧名称更改为文件中的新名称,将已配置的接口名称更改为新名称。
/etc/network/interfaces
我猜你在你的 ubuntu 主机上使用静态 IP。
由于您更改了 MAC 地址,ubuntu 将为您创建一个新的“eth”,而不是使用旧的。
将文件 /etc/sysconfig/networks/ifcfg-eth0 修改为 ifcfg-eth1 或使用网络管理器设置静态配置。
首先在 VM Guest 创建一个名为newfile的文件: sudo nano /etc/init.d/newfile有两行:
接下来,从控制台:
我使用此解决方案是因为 eth0 在使用静态 IP 重新启动后关闭(使用 DHCP 工作正常)。
我的 /etc/network/interfaces:
(对不起我的英语不好)