Linux
相當於 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
命令刪除 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
命令
在 Linux 上,舊
ifconfig
命令及其舊 Linux 核心 API 僅限於每個介面一個IPv4 地址(因此介面別名,實際上是附加地址而不是介面,用於解決此限制)。這解釋了為什麼要刪除IPv4 地址,方法是將其設置為(不是真正添加)0.0.0.0。使用iproute2工具,如果您想從介面中刪除任何地址(對於網橋埠總是一個好主意)而不關心那裡的地址,您可以使用
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 匹配的任何地址,無論其 netmask。
# 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 ***