当我需要在Linux上创建一个带有接口的临时桥时,我将使用以下方法:
brctl addbr br0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig br0 192.168.10.100 netmask 255.255.255.0
ifconfig br0 up我一直在更新我的进程以使用ip地址命令,但是,我没有找到通过ip命令删除IP堆栈(ifconfig eth0 0.0.0.0)的等效方法。
我尝试了以下几点:
ip addr add 0.0.0.0 dev eth0
ip addr add 0.0.0.0/24 dev eth0但它无法删除该设备上现有的ip。
如果使用ip命令,是否有人知道这是可能的?
发布于 2020-12-04 00:08:49
在Linux上,旧的ifconfig命令及其旧的Linux仅限于每个接口一个IPv4地址(因此接口别名实际上是额外的地址,而不是接口,用于解决这个限制)。这解释了为什么要删除IPv4地址,方法是将其设置为(不是真正添加) 0.0.0.0。
使用iproute2工具,如果您想从接口中删除任何地址(对于桥接端口来说总是一个好主意),而不关心存在什么地址(Es),则可以使用ip address flush,这是一个大容量删除命令:
ip address flush-刷新协议地址此命令刷新由某些条件选择的协议地址。...警告:此命令和其他刷新命令是不可原谅的。他们将残酷地清除所有的地址。...
因此,最终你可以使用:
ip address flush dev eth0(您可以添加-4来限制对IPv4的影响)。
还有其他用途。例如,这个命令:
ip address flush to 10.1.0.0/16将从任何接口中删除与块10.1.0.0/16匹配的任何地址,不管它的网络掩码是什么。
# ip -s -s address flush to 10.1.0.0/16
2: lxcbr0 inet 10.1.3.1/24 brd 10.1.3.255 scope global lxcbr0
valid_lft forever preferred_lft forever
158: eth0 inet 10.1.1.1/8 scope global eth0
valid_lft forever preferred_lft forever
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***发布于 2020-12-03 14:45:31
不能用add命令删除IP地址!
如果要从接口中删除IP地址,则需要对其进行del。
ip addr del 203.0.113.187 dev eth0https://serverfault.com/questions/1044799
复制相似问题