大家好,我正在尝试从一组可用 IP 中删除特定 IP,该怎么做?例如,假设我有以下 IP(序列相同): 1.2.3.4 1.2.3.5 1.2.3.6 我使用“ifconfig etho:x 1.2.3.x up”执行此操作,其中 x=4,5,6。现在我想单独关闭第一个IP,即1.2.3.4,我尝试将此作为“ifconfig eth0:4 down”。问题是,这不仅会导致所需的 IP 下降,还会导致其下方的所有 IP 下降。我正在 Linux RedHat 上工作。提前致谢...
答案1
ip addr del 1.2.3.4/24 dev eth0:4
它们eth0:n
并不是真正的接口,它们被称为标签(或别名)。由于您可以将多个地址分配给同一接口,因此标签可以帮助区分 IP 的用途。这也解释了为什么当你设置一个标签时,其他一切都会随之而来;因为你实际上只是在与 eth0 交谈。
答案2
大多数操作系统允许将多个 IP 地址分配给单个接口,这称为 IP 别名或逻辑网络接口。我们可以将多个 IP 地址与特定标签/别名相关联。别名是为了我们自己的方便。
在下面的例子中,标签与IP 地址eth0:1
相关联。192.168.1.1 to 192.168.1.3
并且eth0:2
标签与 相关联192.168.1.4 to 192.168.1.6
。
# ip addr add 192.168.1.1/24 dev eth0 label eth0:1
# ip addr add 192.168.1.2/24 dev eth0 label eth0:1
# ip addr add 192.168.1.3/24 dev eth0 label eth0:1
# ip addr add 192.168.1.4/24 dev eth0 label eth0:2
# ip addr add 192.168.1.5/24 dev eth0 label eth0:2
# ip addr add 192.168.1.6/24 dev eth0 label eth0:2
$ ip addr ls dev eth0
inet 192.168.1.1/24 scope global eth0:1
inet 192.168.1.2/24 scope global secondary eth0:1
inet 192.168.1.3/24 scope global secondary eth0:1
inet 192.168.1.4/24 scope global secondary eth0:2
inet 192.168.1.5/24 scope global secondary eth0:2
inet 192.168.1.6/24 scope global secondary eth0:2
我们可以将一个特定的 IP 地址与一个接口关联,或者将多个 IP 地址与一个别名关联。
以下命令列出了与标签关联的所有 IP 地址eth0:1
。
$ ip addr ls label eth0:1
inet 192.168.1.1/24 scope global eth0:1
inet 192.168.1.2/24 scope global secondary eth0:1
inet 192.168.1.3/24 scope global secondary eth0:1
我们可以删除特定的IP地址。
$ sudo ip addr del 192.168.1.3/24 dev eth0
$ sudo ip addr ls label eth0:1
inet 192.168.1.1/24 scope global eth0:1
inet 192.168.1.2/24 scope global secondary eth0:1