ip link
输出中的“状态未知”是什么意思?例如
10: enp56s0f3u4u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether X:X:X:X:X:X brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)
据我所知,网络接口可以是 UP 或 DOWN。
每个接口至少有两种不同的状态:
管理状态(接口是否启用)。这只是上/下,由您或网络软件控制;使用ip link set eth0 up
或启用接口后ifconfig eth0 up
,您可以看到它表示为<UP>
示例开头附近的标志。
操作状态(接口是否工作)。仅仅因为它被启用,并不意味着它已经可以传输数据——以太网需要一根电缆来连接;Wi-Fi需要关联一个AP;基本上它需要一个载体。对于物理接口,这显然是一个外部因素,无法通过命令进行控制;它只显示在输出中,就<LOWER_UP>
好像载波存在一样。
这些实际上比 up/down 更复杂,例如,当 Wi-Fi 网络与 WPA-Enterprise关联后确实有一个运营商,但在执行 WPA 握手之前还不能发送数据,因此存在第三级“操作”状态: '休眠'。
(对于 VLAN 等虚拟接口,还有另一个“lowerlayerdown”。)
所以“状态未知”不是管理“向上/向下”开关,它是来自系统本身的操作状态显示了一系列值。此状态需要由驱动程序提供——并且(至少根据 Linux 文档)并非所有驱动程序都具有设置实际操作状态所需的位。因此,如果您的以太网驱动程序没有这样做,您将看到默认值 IF_OPER_UNKNOWN (0)。