Linux命令ip addr详解
IP命令是Linux中比较重要的工具之一,是管理网络接口和地址的首选命令,它可以用来配置和管理网络接口、IP地址、路由表等。在本文中,我们将详细介绍一个使用频率比较高的ip addr命令,包括它的使用方法、参数选项以及一些示例场景。
一、ip addr命令的基本用法
ip addr命令用来显示和修改网络接口的IP地址、MAC地址以及相关的路由信息,其基本语法如下:
```
ip addr [OPTIONS] OBJECT {COMMAND | help}
```
其中,OPTIONS表示ip addr命令的一些可选参数,OBJECT表示要显示或修改的网络接口,例如“eth0”或“lo”等,COMMAND表示要执行的具体操作,常用的有“show”、“add”、“del”等,help则用来查看ip addr命令的帮助文档。
二、ip addr命令的常用选项
下表列出了ip addr命令的一些常用选项:
| 选项 | 描述 |
|:----:|:-----|
|-s | 输出摘要信息 |
|-n | 不进行反向解析域名 |
|-f | 指定地址族,可选项为inet、inet6或link |
|-o | 只显示有用信息 |
|-r | 显示更多的路由信息 |
下面我们来逐个介绍这些选项。
1. -s
-s选项用来输出摘要信息,以更简洁的方式来呈现IP地址、MAC地址和路由信息,如下所示:
```
$ ip addr show -s
1: lo: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: link/ether 08:00:27:fa:df:a8 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86236sec preferred_lft 86236sec inet6 fe80::a00:27ff:fefa:dfa8/64 scope link valid_lft forever preferred_lft forever 3: docker0: link/ether 02:42:c4:0a:a9:21 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever ``` 2. -n -n选项用来关闭反向解析,这样在输出IP地址和MAC地址时,就不会进行域名解析,而是直接输出地址值。这在一些耗时比较长的网络环境中使用,可以提高命令响应速度,如下所示: ``` $ ip addr show -n 1: lo: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: link/ether 08:00:27:fa:df:a8 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86428sec preferred_lft 86428sec inet6 fe80::a00:27ff:fefa:dfa8/64 scope link valid_lft forever preferred_lft forever 3: docker0: link/ether 02:42:c4:0a:a9:21 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever ``` 3. -f -f选项用来指定地址族,可选项为inet、inet6或link。其中,inet表示IPv4地址,inet6表示IPv6地址,link表示MAC地址。在多个地址族共存的环境中,使用此选项可以过滤掉不需要的地址,如下所示: ``` $ ip addr show -f inet 1: lo: inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: enp0s3: inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 85901sec preferred_lft 85901sec 3: docker0: inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever ``` 4. -o -o选项用来只显示有用信息,主要用于在shell脚本中抓取数据时,去除不必要的输出信息。如下所示: ``` $ ip addr show -o 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 1: lo inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever 2: enp0s3 inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3\ valid_lft 86490sec preferred_lft 86490sec 2: enp0s3 inet6 fe80::a00:27ff:fefa:dfa8/64 scope link \ valid_lft forever preferred_lft forever 3: docker0 inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0\ valid_lft forever preferred_lft forever ``` 5. -r -r选项用来显示更多的路由信息,其中若指定了“ip route”命令,则会替换原有的路由信息,并打印新的路由表,如下所示: ``` $ ip addr show -r default via 10.0.2.2 dev enp0s3 proto dhcp metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown ``` 三、ip addr命令的常用操作 除了上述常用选项外,ip addr命令还支持多种操作,下面我们就来逐个介绍。 1. 显示网络接口信息 使用 “ip addr show”命令可以列出所有的网络接口信息,包括IP地址、MAC地址以及MTU等,例如: ``` $ ip addr show 1: lo: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: link/ether 08:00:27:fa:df:a8 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86313sec preferred_lft 86313sec inet6 fe80::a00:27ff:fefa:dfa8/64 scope link valid_lft forever preferred_lft forever 3: docker0: link/ether 02:42:c4:0a:a9:21 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever ``` 其中,第一列是网络设备的名称,后面的是设备的状态、MAC地址、MTU等信息,接下来是IPv4和IPv6地址以及相关的生存期信息。 2. 添加IP地址 使用 “ip addr add”命令可以给指定的网络接口添加一个新的IP地址,例如: ``` $ ip addr add 192.168.1.100/24 dev eth0 ``` 其中,“192.168.1.100/24”表示要添加的IP地址及掩码,dev eth0则表示在该网络接口上添加地址。 3. 删除IP地址 使用 “ip addr del”命令可以删除指定网络接口上的IP地址,例如: ``` $ ip addr del 192.168.1.100/24 dev eth0 ``` 其中,“192.168.1.100/24”表示要删除的IP地址及掩码,dev eth0则表示该地址所在的网络接口。 4. 禁用接口 使用 “ip link set”命令可以禁用指定的网络接口,例如: ``` $ ip link set eth0 down ``` 其中,down表示禁用,up表示启用。 5. 启用接口 使用 “ip link set”命令可以启用指定的网络接口,例如: ``` $ ip link set eth0 up ``` 其中,down表示禁用,up表示启用。 6. 显示路由信息 使用 “ip route show”命令可以列出当前的路由信息,例如: ``` $ ip route show default via 10.0.2.2 dev enp0s3 proto dhcp metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown ``` 其中,“default”表示默认路由,“via 10.0.2.2”表示通过10.0.2.2这个网关,dev表示路由经过的网络接口,“proto dhcp”表示DHCP协议设置的路由。 7. 添加路由规则 使用 “ip route add”命令可以添加一条新的路由规则,例如: ``` $ ip route add 192.168.0.0/24 via 10.0.2.2 dev eth0 ``` 其中,“192.168.0.0/24”表示要添加的目标网络,via 10.0.2.2表示通过这个网关,dev eth0则表示在该接口上添加路由规则。 8. 删除路由规则 使用 “ip route del”命令可以删除某个路由规则,例如: ``` $ ip route del 192.168.0.0/24 via 10.0.2.2 dev eth0 ``` 其中,“192.168.0.0/24”表示要删除的目标网络,via 10.0.2.2表示网关,dev eth0则表示在该接口上删除路由规则。 四、ip addr命令示例 下面我们来介绍一些示例场景,以帮助读者更好地理解ip addr命令的使用。 1. 查看网络配置信息 使用“ip addr show”命令可以查看机器上所有网卡的配置信息,例如: ``` $ ip addr show 1: lo: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: link/ether 08:00:27:fa:df:a8 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fefa:dfa8/64 scope link valid_lft forever preferred_lft forever ``` 可以看到,该机器上只有一个网卡(enp0s3),且已经配置了IP地址(10.0.2.15),如果需要添加或删除IP地址,可以通过“ip addr add”和“ip addr del”命令来实现。 2. 添加、删除IP地址 使用“ip addr add”命令可以添加一条新的IP地址,例如: ``` $ ip addr add 192.168.1.100/24 dev eth0 ``` 其中,“192.168.1.100/24”表示要添加的IP地址和子网掩码,dev eth0则表示该地址添加在eth0网卡上。 如果需要删除某个IP地址,则可以使用“ip addr del”命令,例如: ``` $ ip addr del 192.168.1.100/24 dev eth0 ``` 在正式的环境中,经常需要给机器设置多个IP地址,例如在机器上配置多个虚拟主机,这时就需要使用“ip addr add”命令来添加多个IP地址,例如: ``` $ ip addr add 192.168.1.100/24 dev eth0 $ ip addr add 192.168.1.101/24 dev eth0 $ ip addr add 192.168.1.102/24 dev eth0 ``` 3. 启用、禁用网卡 使用“ip link set”命令可以启动或禁用一个网络接口,例如: ``` $ ip link set eth0 up ``` 以上命令将会启用eth0网卡,在实验过程中,如果出现无法上网的情况,可以通过“ip link set”命令来检查网络接口是否启用。 如果需要禁用一个网络接口,可以使用“ip link set”命令,例如: ``` $ ip link set eth0 down ``` 在禁用一个网络接口之后,该网络接口就无法接收或发送数据,如果机器上有多个网卡并且需要禁用其中某一个网卡,就需要使用“ip link set”命令来指定对应的接口。 4. 配置路由表 使用“ip route add”命令可以给机器上添加一个新的路由规则,例如: ``` $ ip route add 192.168.0 壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。 我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复