| 缩写 |
address、addr、a |
| 对象 |
这里的地址是绑定到网络设备上的协议(IP或者IPv6)地址。每个网络设备至少应该有一个协议地址。而且,一个网络设备可以绑定多个协议地址。 ip addr命令能够显示网络设备的协议地址及其性质,添加新的地址,删除旧的地址。 |
| 命令 |
add、delete、flush和show(或者list) |
5.1.ip address add--添加一个新的协议地址
缩写:add、a
参数
| dev NAME |
被操作的设备名 |
| local ADDRESS(default) |
接口的地址,地址格式和协议有关。IPv4地址使用.进行分隔,而IPv6地址使用冒号分隔。ADDRESS可以跟着一个斜杠和表示掩码位数的十进制数字。 |
| peer ADDRESS |
点对点接口对端的地址。ADDRESS也可以跟着一个斜杠和表示掩码位数的十进制数字。 |
| broadcast ADDRESS |
接口的广播地址。为了方便,可以使用+和-(注1)代替广播地址。例如: ip addr add local 192.168.1.1/24 brd + dev eth0 ip addr add local 192.168.1.1/28 brd - dev eth0 |
| label NAME |
为每个地址设置一个字符串作为标签。为了和Linux-2.0的网络别名兼容,这个字符串必须以设备名开头,接着一个冒号,例如: #ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 |
| scope SCOPE_VALUE(注2) |
设置地址的有效范围,它用于内核为数据包设置源地址。有效的范围在/etc/iproute2/tr_scopes文件列出,系统预先设定了一些范围值:
- global 这个地址全局有效。
- site 这个地址是局部连接,也就是只有目标地址是这个设备地址时,才有效。
- site (只适用于IPv6)地址在站点内部有效。
- host 地址在主机内部有效。
|
*注1:使用-,ip addr ls显示的是网络地址;使用+,ip addr ls显示的是广播地址。
*注2:有关scope,在附录A中有更为详细的解释。
示例
在回环设备上添加一个回环地址:
#ip addr add 127.0.0.1/8 dev lo brd + scope host
在以太网接口eth0上增加一个地址10.0.0.1,掩码长度为24位(155.155.155.0),标准广播地址,标签为eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias
|
5.2.ip address delete--删除一个协议地址
缩写:delete、del、d
参数
这个命令的参数和ip addr add命令的参数一致。其中,只有设备名是必需的参数,其它都是可选的。如果没有给定除设备名之外的其它参数,ip就会删除这个设备的第一个地址。
示例
删除回环设备的一个回环地址。不过,最好不要作这种尝试。
#ip addr del 127.0.0.1/8 dev lo
以下shell代码可以取消设备上的所有IP地址。
while ip -f inet add del dev eth0;do
:nothing
done
另外,可以使用ip addr flush命令取消IP地址
|
5.3.ip address show--显示协议地址
缩写:show、list、lst、sh、ls、l
参数
| dev NAME(default) |
设备的名字 |
| scope SCOPE_VAL |
只列出这个范围的地址 |
| to PREFIX |
只列出和PREFIX匹配的地址,例如: ip addr ls to 192.168.1.1 |
| label PATTERN |
只列出标签匹配PATTERN的地址,PATTERN是一个shell风格的正则表达式。 |
| dynamic和permanent |
这两个参数只适用于IPv6。使用dynamic,ip就只列出动态地址;使用permanent,ip就只列出固定地址。 |
| tentative |
这个参数只适用于IPv6,只列出没有通过重复地址检测[参考2]的地址。 |
| deprecated |
这个参数只适用于IPv6,只列出deprecated[参考2]地址。 |
| primary和secondary |
只列出主(primary)或从(secondary)地址。 |
输出格式
duznet@alisa:~ $ ip addr ls eth0
3: eth0: mtu 1500 qdisc cbq qlen 100
link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
inet 193.233.7.90/24 brd 193.233.7.255 scope global eth0
inet6 3ffe:2400:0:1:2a0:ccff:fe66:1878/64 scope global dynamic
valid_lft forever preferred_lft 604746sec
inet6 fe80::2a0:ccff:fe66:1878/10 scope link
duznet@alisa:~ $
|
输出的头两行和ip link ls的输出是相同的。
接着是IP和IPv6地址、广播地址以及其它的地址属性:范围(scope)、标志(flag)和标签(label)。地址标志由内核设置,系统管理员不能修改。目前,内核定义了以下标志: