Linux命令ip addr详解

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: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

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: mtu 1500 qdisc fq_codel state UP group default qlen 1000

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: mtu 1500 qdisc noqueue state DOWN group default

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: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

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: mtu 1500 qdisc fq_codel state UP group default qlen 1000

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: mtu 1500 qdisc noqueue state DOWN group default

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: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000

inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3

valid_lft 85901sec preferred_lft 85901sec

3: docker0: mtu 1500 qdisc noqueue state DOWN group default

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: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

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: mtu 1500 qdisc fq_codel state UP group default qlen 1000

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: mtu 1500 qdisc noqueue state DOWN group default

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: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

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: mtu 1500 qdisc fq_codel state UP group default qlen 1000

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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(119) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部