linux下用ip命令删除IP

Ham*_*JML 19 networking bash ip ubuntu-12.04

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

ip addr add 1.1.1.1/24 dev eth2
ip addr add 1.1.1.2/24 dev eth2
Run Code Online (Sandbox Code Playgroud)

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

ip addr del 1.1.1.2/24 dev eth2
Run Code Online (Sandbox Code Playgroud)

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

有谁知道如何解决它?

Gev*_*ial 12

发生这种情况是因为您在删除时使用了 /24 网络掩码。它适用于您输入的地址。请尝试以下操作:

ip addr del 1.1.1.2/32 dev eth2

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


小智 12

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

这是对 lain 用户报告的 REHL 错误1136733的回复,他于 13 年 3 月 12 日提供了答案...

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

默认情况下,删除主地址时,内核也会删除所有相应的辅助地址。

如果您希望在删除主节点时将其中一个辅助节点提升为新的主节点,请设置 net.ipv4.conf.eth9.promote_secondaries sysctl。

  • @LaryxDecidua **systemctl** 与 **sysctl** 完全不同的命令 (2认同)