本文内容来自智谱清言
ip addr show
是 Linux 系统中用于显示网络接口配置的命令。这个命令属于 iproute2
软件包,该软件包在大多数 Linux 发行版中都是预安装的。ip addr show
命令可以用来查看所有网络接口的当前配置,或者指定某个特定接口的配置。
以下是一些关于 ip addr show
命令的使用示例:
-
显示所有网络接口的配置:
ip addr show
这个命令将列出系统上所有网络接口的配置信息,包括接口的 IP 地址、子网掩码、广播地址等。
-
显示特定网络接口的配置:
ip addr show [interface]
在
[interface]
处替换为你要查询的接口名称。例如,要查看名为ens160
的接口的配置,可以使用以下命令:ip addr show ens160
这将显示
ens160
接口的详细信息,如 IP 地址、子网掩码、MAC 地址等。
ip
命令是一个多功能的工具,不仅可以显示和监控接口、连接、路由和流量,还可以用于管理和监控网络的多方面。它取代了传统的 ifconfig
命令,成为现代 Linux 发行版中的标准网络配置工具。
------
lo: <LOOPBACK,UP,LOWER_UP> 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
它描述了 loopback(环回)接口的配置信息。以下是该输出的详细解释:
-
lo:
:这是 loopback 接口的名称,通常简称为 “lo”。 -
<LOOPBACK,UP,LOWER_UP>
:这些是接口的状态标志。LOOPBACK
表示这是一个环回接口,通常用于本机上的进程间通信。UP
表示接口已经启动。LOWER_UP
表示链路层设备是启动的,尽管对于环回接口来说这通常没有实际意义。
-
mtu 65536
:MTU(Maximum Transmission Unit)(最大传输单元)设置为 65536 字节,这是环回接口的默认值,实际上它可以处理任意大小的数据包。 -
qdisc noqueue
:qdisc(queueing discipline)(队列规则)设置为 noqueue,表示不使用任何队列规则,数据包直接发送。 -
state UNKNOWN
:环回接口的状态通常是 “UNKNOWN”,因为环回接口不与物理硬件相关联。 -
group default
:接口所属的组别。 -
qlen 1000
:队列长度设置为 1000,但这对于环回接口来说并不重要。 -
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
:link/loopback
表示接口的类型是环回。00:00:00:00:00:00
是环回接口的 MAC 地址,通常都是全零。brd
(广播地址)也是全零,因为环回接口不进行实际的广播。
-
inet 127.0.0.1/8 scope host lo
:inet
表示 IPv4 地址。127.0.0.1/8
是环回接口的 IP 地址和子网掩码,127.0.0.1 是标准的环回地址,/8 表示子网掩码是 255.0.0.0。scope host
表示这个地址只在本地主机有效。(scope:
范围)lo
表示这个地址属于 loopback 接口。
-
valid_lft forever preferred_lft forever
:这两个参数表示地址的有效期和首选期是永久的。(lft:lifetime) -
inet6 ::1/128 scope host
:inet6
表示 IPv6 地址。::1/128
是环回接口的 IPv6 地址,::1 是标准的 IPv6 环回地址,/128 表示子网掩码是完整的,即 128 位都是 1。scope host
同样表示这个地址只在本地主机有效。
环回接口是一个虚拟的网络接口,它允许计算机上的软件通过 TCP/IP 协议与自己通信,而不需要任何物理网络硬件。这在开发和测试网络应用程序时非常有用。
------
“ens” 在 Linux 系统中通常不是作为一个缩写词,而是作为网络接口的名称的一部分。这个名称遵循了一个命名约定,它代表的是网络接口的名称。在较新的 Linux 系统中,网络接口名称通常遵循以下格式:
- en:表示以太网(Ethernet)
- s:代表 "s"ystem 或 "s"tandard,表明这是一个标准的系统以太网接口
- <编号>:表示接口的编号。
因此,当你看到像 “ens” 这样的名称时,它通常指的是一个以太网接口,而 “ens” 后面的数字(例如 “ens3”)则指定了具体的接口编号。这样的命名约定是由 udev 规则集在系统启动时自动分配的,旨在提供一致且可预测的网络接口命名。
例如,一个名为 “ens3” 的接口表示它是系统上的第三个标准以太网接口。这样的命名方式有助于系统管理员和用户更容易地识别和配置网络接口。
------
ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:0b:cd:43 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.106.130/24 brd 192.168.106.255 scope global dynamic noprefixroute ens33
valid_lft 1208sec preferred_lft 1208sec
inet6 fe80::7272:9d32:a1f3:72de/64 scope link noprefixroute
valid_lft forever preferred_lft forever
它描述了名为 ens33
的网络接口的配置信息。以下是该输出的详细解释:
-
ens33
: 这是网络接口的名称。在某些系统中,网络接口名称可能会根据系统启动时的硬件检测顺序而有所不同。 -
<BROADCAST,MULTICAST,UP,LOWER_UP>
: 这些是网络接口的状态标志。BROADCAST
: 表示该接口支持广播。MULTICAST
: 表示该接口支持多播。UP
: 表示该接口已启动。LOWER_UP
: 表示链路层设备已启动,即物理或虚拟链路是激活的。
-
mtu 1500
: MTU(最大传输单元)设置为 1500 字节,这是以太网的标准MTU大小。 -
qdisc fq_codel
: 指定排队规则为 fq_codel,这是一种用于网络流量管理的算法。 -
state UP
: 表示网络接口的状态是激活的。 -
group default
: 表示该接口属于默认组。 -
qlen 1000
: 队列长度设置为 1000,这是等待发送的数据包的最大数量。 -
link/ether 00:0c:29:0b:cd:43 brd ff:ff:ff:ff:ff:ff
:link/ether
: 表示链路类型是以太网。00:0c:29:0b:cd:43
: 这是网络接口的 MAC(媒体访问控制)地址。brd ff:ff:ff:ff:ff:ff
: 广播地址,用于广播数据包。
-
altname enp2s1
: 这是该接口的备用名称。 -
inet 192.168.106.130/24 brd 192.168.106.255 scope global dynamic noprefixroute ens33
:inet
: 表示 IPv4 地址。192.168.106.130/24
: 这是分配给该接口的 IPv4 地址和子网掩码(24位表示子网掩码是 255.255.255.0)。brd 192.168.106.255
: 子网广播地址。scope global
: 表示这个地址是全球范围内的。dynamic
: 表示这个地址是通过动态主机配置协议(DHCP)分配的。noprefixroute
: 表示不使用路由前缀。
-
valid_lft 1208sec preferred_lft 1208sec
:valid_lft
: 地址的有效生存期为 1208 秒。preferred_lft
: 地址的首选生存期也为 1208 秒。
-
inet6 fe80::7272:9d32:a1f3:72de/64 scope link noprefixroute
:inet6
: 表示 IPv6 地址。fe80::7272:9d32:a1f3:72de/64
: 这是分配给该接口的链路本地 IPv6 地址和前缀长度。scope link
: 表示这个地址仅在本地链路范围内有效。
-
valid_lft forever preferred_lft forever
: 对于链路本地地址,通常设置无限的有效生存期和首选生存期。
这段输出提供了网络接口 ens33
的详细信息,包括其物理地址、IP地址、状态和地址生存期等。
------
scope global
: 表示这个地址是全球范围内的。
在 Linux 系统的网络配置中,“scope global” 这个术语用来指明一个 IP 地址是全局可路由的,也就是说,这个地址可以被网络中的任何其他设备访问,不仅仅限于本地网络。
全局地址通常是指公网 IP 地址,它可以在互联网上路由。相对地,还有其他类型的地址范围,比如:
scope link
:链路本地地址,只能在同一网络段(通常是同一物理或虚拟局域网)内的设备之间通信。scope host
:主机本地地址,通常用于环回接口(lo),仅能由主机本身访问。
在您提供的输出中,“scope global” 表示该 IPv4 地址 192.168.106.130
是全局可路由的,尽管它是一个私有地址(通常用于本地网络内部),但如果配置了适当的网络设备和路由策略,它理论上可以被路由到更广泛的网络中。然而,通常情况下,私有地址空间(如 192.168.x.x)不会在互联网上公开路由。