在众多用于网络配置的工具中,`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-