![相當於 ifconfig dev 0.0.0.0](https://rvso.com/image/760646/%E7%9B%B8%E7%95%B6%E6%96%BC%20ifconfig%20dev%200.0.0.0.png)
當我需要在 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