在 Linux 中使用 ip 命令删除 IP

在 Linux 中使用 ip 命令删除 IP

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

  1. ip addr 添加 1.1.1.1/24 dev eth2
  2. ip addr 添加 1.1.1.2/24 dev eth2

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

  1. ip 地址 del 1.1.1.2/24 dev eth2

两个 IP 都将被删除,我不知道该怎么办。

有人知道如何解决吗?

答案1

如果您在执行ip addr list dev eth2这两个add命令后执行此操作,您将看到类似这样的内容(重点是我的):

2:eth2:mtu 1500 qdisc pfifo_fast 状态 UP qlen 1000
     链接/以太 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
     inet 192.168.1.1/24 brd 192.168.1.255 范围全局 eth2
     inet 1.1.1.1/24 范围全局 eth2
     inet 1.1.1.2/24 范围全局次要的eth2

需要注意的重要一点是,Linux 将第二个地址视为第一个地址的次要地址,因为它们位于同一逻辑子网 (/24)。删除次要地址不会对主要地址产生影响,反之亦然。

如果您需要在 1.1.1.0/24 中添加/删除地址,您可能应该首先添加一个始终有效的地址(例如 1.1.1.99/24),然后添加 1.1.1.1 和 1.1.1.2 作为辅助地址。然后您可以随意添加/删除 .1 和 .2 地址。

如果这不可能,那么您也可以暂时添加 1.1.1.2/32删除 1.1.1.1 之前。这将保持来自网络外部的所有连接的连接性。根据您的网络设置(即您的路由器是否支持代理 ARP),您可能还可以使用 1.1.1.2/0暂时地。

答案2

可能有其他东西在背着你做着什么。NetworkManager 就是一个已知的罪犯。

在执行命令时运行ip monitor,看看是否有其他人正在修改配置。

相关内容