无法运行 ifdown eth0 && ifup eth0

无法运行 ifdown eth0 && ifup eth0

将我们的 Ubuntu 农场加入到 Windows 域中,并将 DC 的 IP 添加到 /etc/network/interfaces 后,我尝试像在其他 Ubuntu 服务器上一样反弹接口,但出现错误。

ifdown: interface eth0 not configured
RTNETLINK answers: File exists
Failed to bring up eth0

/etc/network# cat run/ifstate 显示:

lo=lo
eth2=eth2
eth1=eth1

我查看了 /run/network/ifstate,并在文件末尾添加了 eth0=eth0。仍然无法运行该命令ifdown eth0 && ifup eth0

由于这台服务器的特性,我需要将重启次数降至最低。有人知道是什么原因导致了这个问题以及我该如何解决它吗?我们还有另一台服务器也存在同样的问题。

更新:这是我的 /etc/network/interfaces 的 eth0 部分

auto lo
iface lo inet loopback

# Label public
auto eth0
iface eth0 inet static
    address XXX.XXX.X95.56
    netmask 255.255.255.0
    gateway XXX.XXX.X95.1
iface eth0 inet6 static
    address 2001:XXXX:XXXX:XXX:XXXX:XXXX:XXXX:XXXX
    netmask 64
    gateway fe80::def
    dns-nameservers 192.168.XXX.XXX 173.203.4.9 173.203.4.8

如果我运行,ifconfig eth0 down接口会关闭但ifconfig eth0 up不会恢复。具有讽刺意味的是,此时我的 AD 域的 nslookup 可以工作。我假设它现在使用我添加到 LAN 端口的 DNS 条目来执行此操作。重新启动服务器可恢复 eth0。

更新 2:正在运行sudo ifup -v eth0

Configuring interface eth0=eth0 (inet)
run-parts --verbose /etc/network/if-pre-up.d
ip addr add XXX.XXX.XX5.56/255.255.255.0 broadcast XXX.XXX.X95.255    dev eth0 label eth0
RTNETLINK answers: File exists
Failed to bring up eth0.

答案1

在我的例子中,我创建了一台 Ubuntu 机器的镜像,并将该镜像放在其他几台机器上。我开始让它们想出不名为 eth0 和 wlan0 而是名为 eth1 和 wlan1 的接口。

事情是这样的:有一个文件将每个适配器的 MAC 地址与每个适配器的名称绑定在一起(eth{n} wlan{​​n} 等)。如果您启动时操作系统发现 eth0 与其他 MAC 地址绑定在一起(在我的情况下,来自主机),它将创建一个名为 eth1 的新接口,并且 /etc/network/interfaces 内部开始出现问题。

解决方案:删除该文件/etc/udev/rules.d/70-persistent-net.rules 并重新启动(抱歉,楼主)。该文件将在启动时使用适合此机器的正确设置重新创建。

对于像我一样在成像环境中遇到这种情况的人,请考虑将此文件作为 sysprep 删除。您需要删除该文件,然后在下次启动操作系统之前捕获您的映像。

我不确定我的情况是否和你一样,但如果这听起来有道理,那就试试吧。祝你好运

相关内容