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 认为的相匹配,它们就会开始表现得更好。