相當於 ifconfig dev 0.0.0.0

相當於 ifconfig dev 0.0.0.0

當我需要在 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 堆疊 (ifconfig eth0 0.0.0.0) 的等效ip命令

我已經嘗試過以下方法:

ip addr add 0.0.0.0 dev eth0
ip addr add 0.0.0.0/24 dev eth0

但它無法刪除ip該裝置上的現有內容。

有人知道這個ip指令是否可行嗎

答案1

在 Linux 上,舊ifconfig命令及其舊 Linux 核心 API 僅限於每個接口的 IPv4 位址(因此接口別名實際上是附加位址而不是接口,用於解決此限制)。這解釋了為什麼要刪除IPv4位址,方法是它到(不是真正添加)0.0.0.0。

ip路由2工具,如果你想刪除任何來自介面的位址(對於橋接連接埠來說總是一個好主意),而不關心那裡有什麼位址,您可以使用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 ***

答案2

你不能刪除使用命令取得 IP 位址add

如果您想從介面中刪除 IP 位址,您del可以這樣做。

ip addr del 203.0.113.187 dev eth0

相關內容