在眾多用于網絡配置的工具中,`ip` 命令套件以其強大的功能和靈活的用法,逐漸取代了傳統的 `ifconfig` 命令,成為現代Linux系統中的網絡配置首選
特別是 `ip addr` 命令,它不僅能夠展示當前網絡接口的配置狀態,還能動態地修改這些配置,是理解和操作Linux網絡環境的得力助手
本文將深入剖析 `ip addr` 命令的使用方法和應用場景,揭示其作為網絡配置利器的獨特魅力
一、`ip` 命令套件簡介 `ip` 命令是Linux內核網絡子系統的一部分,自2.2版本起引入,用于替代舊的`ifconfig`、`route` 和`netstat` 等命令
`ip` 命令提供了更為豐富和細化的網絡配置選項,支持IPv4和IPv6協議,且設計更加模塊化,易于擴展
`ip` 命令套件包括多個子命令,如 `ip addr`、`iplink`、`ip route`、`iptunnel` 等,每個子命令都專注于網絡配置的不同方面
二、`ip addr` 命令基礎 `ipaddr` 命令用于顯示或操作網絡接口的地址信息,包括MAC地址、IP地址、廣播地址、子網掩碼等
它不僅可以列出當前所有網絡接口的狀態,還能添加、刪除或修改網絡接口的IP地址配置
2.1 顯示網絡接口信息 運行 `ip addr` 或`ipa`(短格式)命令,系統會顯示所有激活的網絡接口及其詳細的地址配置信息
輸出通常包括接口名稱(如eth0、wlan0)、狀態(UP/DOWN)、MAC地址、IP地址及其類型(inet表示IPv4,inet6表示IPv6)、廣播地址、子網掩碼等信息
$ ip addr show
或簡寫:
$ ip a
輸出結果示例:
2: eth0: 例如,為 `eth0` 接口添加一個IPv4地址`10.0.0.100/24`:
$ sudo ip addr add 10.0.0.100/24 dev eth0
添加IPv6地址則使用`inet6` 關鍵字:
$ sudo ip addr add 2001:db8::1/64 dev eth0
2.3 刪除IP地址
類似地,使用`ip addr del` 命令可以刪除網絡接口上的IP地址 例如,刪除 `eth0` 接口上的 `10.0.0.100/24` 地址:
$ sudo ip addr del 10.0.0.100/24 dev eth0
刪除IPv6地址也遵循相同的語法:
$ sudo ip addr del 2001:db8::1/64 dev eth0
2.4 修改MAC地址
雖然 `ip addr` 命令主要用于IP地址管理,但結合 `ip link` 命令,也可以間接修改網絡接口的MAC地址 首先,使用 `ip linkset` 命令修改MAC地址,然后可能需要重新啟動網絡接口(如通過`ip link set dev eth0 up`)來使更改生效
$ sudo ip link set dev eth0 address 00:22:33:44:55:66
$ sudo ip link set dev eth0 up
三、`ip addr` 命令的高級應用
除了基本的地址管理功能,`ipaddr` 命令還支持一系列高級特性,使得網絡配置更加靈活和強大
3.1 臨時配置與持久化
`ipaddr` 命令所做的更改是臨時的,即在系統重啟或網絡接口重新激活后會丟失 要實現持久化配置,需要將相應的命令添加到系統的網絡配置文件(如`/etc/network/interfaces` 在Debian系系統中,或 `/etc/sysconfig/network-scripts/ifcfg-