老版本的 Linux 中都是使用 ifconfig 命令检查和配置网络接口,但是该命令目前已经没有维护了,取而代之的是 ip 命令
ip 命令和 ifconfig 命令很相似,但是 相比起来,ip命令的功能更强大,它能执行多种 ifconfig命令无法执行的任务
本文将介绍 ip 命令常用的一些操作
输入 ip addr 或者 ip a 命令可以显示所有的网络接口信息
上面的输出中,可以看出系统目前的网络接口分别是 lo 和 eth0, 前者是网络环回接口,后者是常规的网络接口
输出接口信息的 字段详解
除了输出所有的网络接口信息外,还可以按照以下方式个性化输出网络接口信息
按照是否支持 IPV4 或 IPV6输出
命令 ip -4 a 会输出只支持IPV4的接口信息
同样,命令 ip -6 a 会输出只支持IPV6的接口信息
按照接口名字输出
命令 ip a show eth0会输出 eth0接口的信息
按照网络接口开启和关闭状态输出
命令 ip link ls up 会输出所有处于开启状态的网络接口信息
那么,ip link ls down就会输出所有处于关闭状态的网络接口信息
添加IP
为指定网络接口分配IP地址的命令格式: ip a add ip地址 dev 接口名字
比如:现在要为eth0 网络接口分配一个网络掩码为 20 的IP 192.168.1.10, 具体的输入请看下面的实例
从上面例子的输出结果可以看出,网络接口eth0上多了一个192.168.1.10的 IP
命令 ip a add 192.168.1.10/20 dev eth0 执行成功的话,是没有任何输出,如果网络接口 eth0 不存在的话,会输出 Cannot find device “eth0” 的错误信息
其实,还可以通过执行 ping 192.168.1.10 命令来测试网络接口上IP是否分配成功,如果能 ping 通IP的话,表示分配成功,否则表示失败
说明:192.168.1.10/20 中 20 是 CIDR 表示法的网络掩码,想详细了解的可以自行查阅网络掩码的资料
移除IP
网络接口上添加了IP之后,可使用 ip a del ip地址 dev 接口名字 命令从指定的接口移除指定的IP,移除的时候IP后面需要携带网络掩码
要关闭或者开启网络接口,可以使用 ip link set dev 接口名字 up/down 命令
例如:有 lo 和 eth0 两个网络接口, 具体接口信息如下
通过 ping -w 3 127.0.0.1 命令测试,结果表明 lo 接口目前是开启状态,具体的测试输出如下所示
现在关闭 lo 网络接口,并再次测试该接口的状态,具体命令如下:
执行 ip link set dev lo down 命令之后,关闭了网络接口lo,通过 ip link show lo 命令查看该接口的信息,结果表明接口是关闭状态,再次通过 ping -w 3 127.0.0.1测试接口的状态,再一次确认了接口是关闭状态
通过 p l set txqueuelen 长度 dev 接口名字 命令可以设置网络接口的传输队列长度
上面的例子中,字符串 qlen 1200 表示传输队列长度是 1200
从例子中可以看出,修改传输队列长度之前,传输队列长度是 1200
执行 ip l set txqueuelen 1000 dev eth0 命令把传输队列长队修改为 1000, 然后再执行 ip l show eth0 命令查询 eth0网络接口的信息,查询结果中 default qlen 1000 说明修改成功
通过 p l set mtu 长度 dev 接口名字 命令可以设置网络接口的最大传输单元
上面的例子中,字符串 mtu 1600 表示最大传输单元是 1600
从例子中可以看出,修改传输队列长度之前,最大传输单元是 1600
执行 ip l set set mtu 1500 dev eth0 命令把最大传输单元修改为 1500, 然后再执行 ip l show eth0命令查询 eth0网络接口的信息,查询结果中 mtu 1500 说明修改成功
下面几条命令都可以查看 IP 路由表
查看路由表查看指定IP以及网络掩码的路由表
ARP是 Address Resolution Protocol 的缩写, 全称是地址解析协议,它是用于实现从IP地址到Mac地址的映射,也就是询问目标IP的Mac地址
在本地存储了一份IP对应Mac地址的映射表,这张表叫做 ARP缓存表,可以使用 ip n 命令查看缓存表
大部分场景中是不需要修改Mac地址的,但有时你可能想隐藏真实的Mac地址(物理地址),这时可以修改Mac地址,修改Mac地址的命令如下
下面以修改 lo 网络接口的Mac地址为例来说明
从上面的例子中可以看出,lo接口初始的Mac地址是 00:00:00:00:00:00
执行 ip l set lo address fa:16:3e:e0:4f:b4 命令修改Mac地址,然后再执行 ip l list lo 查看 lo接口的信息,输出的结果信息表明Mac地址修改成功
注意:如果当前网络接口上执行上面的命令,当前会话会中断,需要重启机器才能恢复,所以最好是在其他的网络接口上测试
通过 ip -s link 命令可以查看网络接口上的一些统计数据,比如接口上传输的字节数、报文数,错误或者丢弃的报文数等等
想查看更详细的信息可以使用 ip -s -s link 命令, 这个在排除网络故障时经常用到
本文介绍了ip命令的常见用法,更多的用法请使用 man ip命令查看