使用ip命令在Linux中删除IP

如果我添加两个这样的IP:

ip addr add 1.1.1.1/24 dev eth2 ip addr add 1.1.1.2/24 dev eth2 

然后我尝试删除这样的一个:

 ip addr del 1.1.1.2/24 dev eth2 

这两个IP将被删除,我不知道如何处理它。

任何人都知道如何解决它?

从接口删除主IP地址将默认删除同一子网上的所有其他地址。

这是一个REHL错误1136733的回复,用户lain在12月13日提供了一个答案…

您在同一个子网中添加多个地址,因此第二个和后续的子网成为次级。 这可以在“ip addr show”输出中看到,请注意这些地址旁边的关键字“secondary”。

默认情况下,当删除主地址时,内核也会删除所有的副文件。

如果您希望将其中一个副本升级为主要删除的新主节点,请设置net.ipv4.conf.eth9.promote_secondaries sysctl。

发生这种情况是因为在删除时使用/ 24networking掩码。 它适用于解决您的input。 尝试以下操作:

ip addr del 1.1.1.2/32 dev eth2

/ 32掩码恰好定义了一个主机。

我没有eth2来检查这个,但它在eth0上正常工作,我没有理由为什么eth2应该是神奇的。 我认为你使用ip addr show dev eth2因为ifconfig eth2不会显示ip添加的附加地址。

我注意到的一件事是你创build/删除地址的顺序是重要的。 如果主地址被删除,则同一networking中添加的第二个和后续地址将被删除。 考虑…

  inet 1.1.1.1/24 scope global eth0 inet 1.1.2.3/24 scope global eth0 inet 1.1.1.2/24 scope global secondary eth0 inet 1.1.1.3/24 scope global secondary eth0 

如果您删除1.1.1.1,那么1.2和1.3地址也会被删除。 如果您删除任何其他地址,则只有该地址将被删除。

我会尝试以下内容:

ip addr del 1.1.1.2 dev eth2