未配置 ifdown 接口 (Debian 6)

Mar*_*lka 6 networking debian static-ip debian-squeeze ipconfig

我的服务器是专用的(非虚拟的)。我想要 3+1 个静态 IP。我以前使用过别名 (eth0:0, eth0:1),但读到此方法已被弃用。因此,我添加了另一个 IP,并在 i 时使用 ifup/ifdown 重新配置了我的接口;但是 ifdown 告诉我该接口未配置。

/etc/network/interfaces 看起来像这样:

auto lo eth0
iface lo inet loopback

# Main IPs (IPv4 + IPv6)
allow-hotplug eth0
iface eth0 inet static
        address 81.x.x.x
        netmask 255.255.255.0
        broadcast 81.x.x.255
        gateway 81.x.x.1

iface eth0 inet6 static
        address 2a02:x:x:x::x:x
        netmask 64
        gateway 2a02:x:x:x::1

# 2nd IP
up ip addr add 81.x.x.x/32 dev eth0

# 3rd IP
up ip addr add 81.x.x.x/32 dev eth0
Run Code Online (Sandbox Code Playgroud)

请注意,第二个和第三个 IP 地址来自不同的网络范围(不知道是否重要)

我重新加载网络配置

nohup sh -c "ifdown eth0 && ifup eth0"
Run Code Online (Sandbox Code Playgroud)


确切的输出(nohup)是

ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:这个问题以前被问过。但是旧问题使用了不推荐使用的方法。此外,该解决方案对我不起作用。由于 serverfault 的人似乎无法帮助我,而只是将其关闭为重复项(我怀疑您是否真的阅读了我写的内容......)我在官方论坛上问过人们。他们被这个问题困住了,根本找不到解决方案——但至少尝试一下。
我的问题越来越多,所以我将重新安装服务器。你可以关闭这个问题,不回答。

小智 8

ifdown 认为接口已经关闭。如果这不是真的,因为它是使用 ifup 以外的其他命令(例如 ifconfig)启动的,那么您需要以相同的方式将其关闭 ( ifconfig eth0 down)。

如果这些ip addr add命令也是手动完成的,您可能必须使用ip addr del.

ifup 和 ifdown 是脆弱的。如果它们不是唯一使用的配置工具,它们就不会顺利运行。他们可以从内核获取当前的接口状态,而不是记住他们上次将它更改为什么,但他们没有。

一旦您使界面的当前状态与 ifupdown 认为的相匹配,它们就会开始表现得更好。