全国最初级的
Linux
社区—— bbs.LinuxEye.cn—— 帮你快速步入
Linux
世界
ip 命令手册
摘要
ip 是 iproute2 软件包里面的一个强大的网络配置工具,它能够替代
一些传统的网络管理工具。例如:ifconfig、route 等。这个手册将分章节
介绍 ip 命令及其选项。
目录
1.关于这篇文档
2.ip 命令的语法
3.ip 的错误信息
4.ip link--配置网络设备
4.1.ip link set--改变设备的属性
4.2.ip link show--显示设备属性
5.ip address--协议地址管理
5.1.ip address add--添加一个新的协议地址
5.2.ip address delete--删除一个协议地址
5.3.ip address show--显示协议地址
1
全国最初级的
Linux
社区—— bbs.LinuxEye.cn—— 帮你快速步入
Linux
世界
5.4.ip address flush--清除协议地址
6.ip neighbour--neighbour/arp 表管理命令
6.1.ip neighbour add -- 添加一个新的邻接条目
ip neighbour change--修改一个现有的条目
ip neighbour replace--替换一个已有的条目
6.2.ip neighbour delete--删除一个邻接条目
6.3.ip neighbour show--显示网络邻居的信息
6.4.ip neighbour flush--清除邻接条目
1.关于这篇文档
ip 是 iproute2 软件包里面的一个强大的网络配置工具,本文将分章节介绍
ip 命令及其选项。为了便于理解,作者在本文中列举了很多示例。但是,正如
作者所说,这不是一个教程,而是一个使用手册。
2.ip 命令的语法
ip 命令的用法如下:
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
2
全国最初级的
Linux
社区—— bbs.LinuxEye.cn—— 帮你快速步入
Linux
世界
其中,OPTIONS 是一些修改 ip 行为或者改变其输出的选项。所有的选项都
是以-字符开头,分为长、短两种形式。目前,ip 支持如下选项:
-V,-Version 打印 ip 的版本并退出。
-s,-stats,-
statistics
输出更为详尽的信息。如果这个选项出现两次或者多次,
输出的信息将更为详尽。
-f,-family 这个选项后面接协议种类,包括:inet、inet6 或者 link,
强调使用的协议种类。如果没有足够的信息告诉 ip 使用的
协议种类,ip 就会使用默认值 inet 或者 any。link 比较特
殊,它表示不涉及任何网络协议。
-4 是-family inet 的简写。
-6 是-family inet6 的简写。
-0 是-family link 的简写。
-o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果你需
要使用 wc、grep 等工具处理 ip 的输出,会用到这个选项。
-r,-resolve 查询域名解析系统,用获得的主机名代替主机 IP 地址。
OBJECT 是你要管理或者获取信息的对象。目前 ip 认识的对象包括:
link 网络设备
address 一个设备的协议(IP 或者 IPV6)地址
neighbour ARP 或者 NDISC 缓冲区条目
route 路由表条目
rule 路由策略数据库中的规则
maddress 多播地址
mroute 多播路由缓冲区条目
tunnel IP 上的通道
另外,所有的对象名都可以简写,例如:address 可以简写为 addr,甚
至是 a。
3
全国最初级的
Linux
社区—— bbs.LinuxEye.cn—— 帮你快速步入
Linux
世界
COMMAND 设置针对指定对象执行的操作,它和对象的类型有关。一般情
况下,ip 支持对象的增加(add)、删除(delete)和展示(show 或者 list)。有些对
象不支持所有这些操作,或者有其它的一些命令。对于所有的对象,用户可以
使用 help 命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。
如果没有指定对象的操作命令,ip 会使用默认的命令。一般情况下,默认命令
是 list,如果对象不能列出,就会执行 help 命令。
ARGUMENTS 是命令的一些参数,它们倚赖于对象和命令。ip 支持两种类
型的参数:flag 和 parameter。flag 由一个关键词组成;parameter 由一个关
键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例
如,参数 dev 是 ip link 命令的默认参数,因此 ip link ls eth0 等于 ip link
ls dev eth0。我们将在后面的章节详细介绍每个命令的使用,命令的默认参
数将使用 default 标出。
几乎所有的关键词都可以简写为前几个字母。在交互工作时,简写的方式
非常方便,但是我们不建议在脚本中使用简写形式。另外,在讲述过程中,所
有的“官方”简写方式都会在文章中列出。
3.ip 的错误信息
由于以下原因,ip 可能会操作失败:
命令行语法错误:一个未知的关键词(an unknown keyword);错误的
IP 地址格式(incorrectly formated IP address)。在这种情况下,ip 会打印
出错误信息然后退出,在错误信息中会包含失败的原因。有时 ip 也会打
印帮助信息。
4
全国最初级的
Linux
社区—— bbs.LinuxEye.cn—— 帮你快速步入
Linux
世界
参数不能通过一致性校验。
由于用户没有提供足够的信息,造成 ip 无法从参数中编译出内核请
求。
内核返回某些系统调用的错误。ip 使用 perror(3)输出错误信息,因
此输出的错误信息包含一段注释以及系统调用号。
内 核 返 回 RTNETLINK 请 求 错 误 。 这 类 错 误 信 息 以 "RTNETLIK
answers"开头。
ip 的所有操作都是原子操作。例如,如果 ip 执行失败,它不会系统的任何
东西,ip link command 例外,它会修改某些设备参数。
我们无法列出所有的错误信息,尤其是语法错误。不过,错误信息的意思
都非常明确。下面,我们列举一些经常出现的错误信息:
内核不支持 netlink(netlink 用于在内核模块和用户之间传递信息),会
出现以下错误信息:
Cannot open netlink socket: Invalid value
内核不支持 RTNETLINK,会出现以下错误信息:
Cannot talk to rtnetlink: Connect refused
Cannot send dump request: Connect refused
如果在编译内核时没有配置 CONFIG_IP_MULTIPLE_TABLES 选项。在
使用 ip 规则时会出现和下面的信息类似的错误信息:
kuznet@kaise $ ip rule list
RTNETLINK error: Invalid argument
5