商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何检查 Linux 中网络 QoS 策略是否激活

如何检查 Linux 中网络 QoS 策略是否激活

  发布于2026-08-18 阅读(0)

扫一扫,手机访问

介绍

在这个实验中,你将学习如何检查 Linux 中网络服务质量(Quality of Service,QoS)策略是否处于激活状态。你将使用强大的 CODE_0 命令来列出并检查网络接口上配置的 QoS 规则和类别。

具体而言,首先你要利用CODE0来列出活动的排队规则,搞清楚它们在管理网络流量方面的作用。接着,你将探究如何运用CODE1检查QoS类别,这些类别是用来对不同类型的流量进行分类和优先级排序的。最后,你要学习如何检查CODE_2中的网络配置文件,以此了解QoS策略是怎样进行持久化配置的。

使用 tc qdisc 列出 QoS 规则

在这一步中,你将学习如何使用 CODE0 命令列出服务质量(Quality of Service,QoS)规则。QoS 是一组用于管理网络流量的技术,旨在减少数据包丢失、延迟和抖动。CODE1 命令是 Linux 中用于配置流量控制的强大工具。

CODE_0 命令用于管理排队规则。排队规则(queueing discipline,qdisc)是 Linux 内核中决定数据包调度的部分。

要列出网络接口上当前配置的 QoS 规则,请打开终端并输入以下命令:

tc qdisc show

按下回车键。

你应该会看到类似以下的输出:

qdisc noqueue 0: dev lo root refcnt 2
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn

让我们来分析一下这个输出:

  • CODE_0:表示这一行描述的是一个排队规则。
  • CODE0:显示的是回环接口(CODE1)的 qdisc。CODE_2 表示没有进行排队,因为回环接口上的流量通常不需要进行整形。
  • CODE0:显示的是 CODE1 网络接口的 qdisc。CODE_2 是一种特定类型的 qdisc,它将公平排队(Fair Queueing,FQ)与受控延迟(Controlled Delay,CoDel)相结合。
  • CODE_0:表示这是该设备的根 qdisc。
  • 其余参数(CODE0CODE1CODE2 等)是 CODE3 qdisc 特有的,用于控制其行为。

你看到的输出可能会因 LabEx 环境中网络接口的默认配置而有所不同。重要的是要理解 CODE_0 会列出活动的排队规则。

现在,尝试列出特定接口(如 CODE_0)的 qdisc:

tc qdisc show dev eth0

按下回车键。

此命令将仅显示 CODE_0 接口上配置的 qdisc。

理解 CODE0 的输出是使用 CODE1 管理网络流量的第一步。

点击 继续 进入下一步。

使用 tc class 检查 QoS 类别

在上一步中,你了解了排队规则(CODE0)。现在,让我们使用 CODE1 命令来探索 QoS 类别。

虽然排队规则(qdisc)定义了接口上的整体调度行为,但类别用于某些排队规则(如 CODE0CODE1)中,以创建分层结构并对不同类型的流量应用不同的规则。可以将类别视为排队规则中的分类或细分。

要列出当前配置的 QoS 类别,你需要指定网络接口以及父排队规则或类别。由于 CODE0 上默认的 CODE1 排队规则不像其他一些排队规则那样使用类别层次结构,因此直接运行 CODE_2 最初可能不会显示任何类别。

无论如何,让我们尝试运行该命令以查看输出:

tc class show dev eth0

按下回车键。

你可能看不到任何输出,或者看到表明未定义类别的输出,类似于以下内容:

```plaintext

```

这是预期的结果,因为 CODE_0 是无类别排队规则。无类别排队规则在不需要将流量分类到不同组的情况下执行其工作。

但是,如果配置了像 CODE0(分层令牌桶,Hierarchical Token Bucket)或 CODE1(基于类别的排队,Class Based Queueing)这样的排队规则,你将看到该排队规则下定义的类别列表,显示它们的参数,如带宽限制、优先级等。

例如,如果在 CODE0 上配置了 CODE1,输出可能如下所示(这只是一个示例,在当前环境中你不会看到此输出):

class htb 1:1 root prio 0 rate 100Mbit ceil 100Mbit burst 1600b cburst 1600b
class htb 1:10 parent 1:1 prio 1 rate 50Mbit ceil 80Mbit burst 1600b cburst 1600b
class htb 1:20 parent 1:1 prio 2 rate 20Mbit ceil 30Mbit burst 1600b cburst 1600b

在这个假设的示例中:

  • CODE_0:表示一个 HTB 类别。
  • CODE_0:根类别的句柄。
  • CODE0CODE1:根类别 CODE_2 下子类别句柄。
  • CODE0CODE1:定义该类别的保证带宽和最大带宽。
  • CODE_0:定义该类别的优先级。

虽然在默认配置下你看不到类别,但理解 CODE_0 命令对于在配置了有类别排队规则时进行操作至关重要。

点击 继续 进入下一步。

检查 /etc/network 中的 QoS 配置

在前面的步骤中,你使用 CODE0 命令查看了当前活动的 QoS 配置。虽然 CODE1 显示的是运行时状态,但配置文件通常决定了系统启动或网络接口启用时这些设置的应用方式。

在像 Ubuntu 这样基于 Debian 的系统上,网络接口配置通常在 CODE0 文件以及 CODE1 目录下的文件中进行管理。这些文件可以包含在配置接口时要执行的命令,包括用于设置 QoS 的 CODE_2 命令。

让我们检查一下主要的网络配置文件。打开终端并使用 CODE0 命令查看 CODE1 的内容:

cat /etc/network/interfaces

按下回车键。

你将看到基本的网络接口配置。在这个 LabEx 环境中,输出可能如下所示:

```plaintext
## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
```

此文件定义了回环接口(CODE0)和主网络接口(CODE1),后者配置为使用 DHCP 来获取 IP 地址。

对于复杂的设置,QoS 配置通常不会直接放在 CODE0 中。相反,它们通常包含在单独的脚本或配置片段中,这些脚本或片段在接口启用时执行。这些片段可能位于 CODE1 目录中。该目录中的脚本会在网络接口启用后执行。

让我们列出 CODE_0 目录中的文件,看看是否有与 QoS 或流量控制相关的脚本:

ls /etc/network/if-up.d/

按下回车键。

输出将显示该目录中存在的文件。你可能会看到各种与网络配置相关的脚本,但在这个基本环境中,可能没有专门用于复杂 QoS 设置的脚本。

## Example output (may vary)
avahi-autoipd  ethtool  mountnfs  ntp  openssh-server  resolvconf  upstart

如果有设计用于在启动时应用 CODE0 规则的脚本,它们通常会放在这里。例如,该目录中名为 CODE1 的脚本可能包含用于配置排队规则(qdisc)和类别的 CODE_2 命令。

虽然在这个基本环境的这些标准位置中你没有找到明确的 QoS 配置,但了解在哪里查找(CODE0CODE1CODE_2)对于理解如何在 Linux 系统上持久地配置 QoS 至关重要。

点击 继续 完成此实验。

总结

本次实验,你将学习如何检查Linux中网络QoS策略是否处于激活状态。首先,你需要使用CODE0命令列出网络接口上的活动排队规则(qdisc)。要知道,排队规则可是决定数据包调度的关键部分,在QoS配置中起着重要作用。通过检查输出,你能识别排队规则的类型以及关联的网络接口。此外,你还将学习如何使用CODE1列出特定接口的排队规则。

本文转载于:https://labex.io/zh/tutorials/linux-how-to-check-if-a-network-qos-policy-is-active-in-linux-558741 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注