简介
在本次实验中,你将学习如何检查 Linux 中是否设置了网络队列规则(queue discipline)。你将使用 tc qdisc show
命令列出网络接口上已配置的队列规则,并理解其输出结果。
你还将使用 ip link
命令验证网络接口,并检查 /etc/network
中的网络配置文件,以全面了解你的网络设置以及队列规则的应用方式。
在本次实验中,你将学习如何检查 Linux 中是否设置了网络队列规则(queue discipline)。你将使用 tc qdisc show
命令列出网络接口上已配置的队列规则,并理解其输出结果。
你还将使用 ip link
命令验证网络接口,并检查 /etc/network
中的网络配置文件,以全面了解你的网络设置以及队列规则的应用方式。
在这一步中,你将学习如何使用 tc
命令列出网络接口上已配置的队列规则。
tc
命令是 Linux 中用于流量控制的强大工具。它允许你管理网络流量,包括流量整形、调度和监管。队列规则(queue disciplines,简称 qdiscs)是流量控制的核心。它们决定了数据包在网络接口上的排队和传输方式。
要列出当前配置的队列规则,你将使用 tc qdisc show
命令。
如果终端尚未打开,请打开它。你可以通过点击桌面左侧的 Xfce Terminal 图标来完成此操作。
现在,输入以下命令并按回车键:
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
让我们来分析一下输出内容:
qdisc
:表示这一行描述的是一个队列规则。noqueue
:这是队列规则的名称。noqueue
是一种简单的队列规则,不执行任何排队操作;如果接口繁忙,数据包将被丢弃。它通常用于回环接口(lo
)。0:
:这是队列规则的句柄。dev lo
:指定队列规则所关联的网络接口。lo
是回环接口。root
:表示这是该接口的根队列规则。refcnt 2
:队列规则的引用计数。第二行显示了 eth0
接口上的 fq_codel
队列规则。fq_codel
是一种更高级的队列规则,它将公平排队(Fair Queuing,FQ)与 CoDel(Controlled Delay)相结合,以提供公平的带宽分配并最大程度减少缓冲区膨胀。
理解队列规则对于优化网络性能和解决网络拥塞问题至关重要。
点击 Continue 进入下一步。
在这一步中,你将使用 ip link
命令来检查系统上的网络接口。ip
命令是 Linux 中用于网络配置的现代且通用的工具,它取代了像 ifconfig
这样的旧工具。
ip link
命令专门用于处理网络接口本身,显示它们的状态、MAC 地址和其他详细信息。
如果终端尚未打开,请打开它。
输入以下命令并按回车键:
ip link show
你应该会看到类似以下的输出,列出了你的网络接口:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
让我们来看看每个接口提供的关键信息:
1: lo:
和 2: eth0:
:接口索引和名称。lo
是回环接口,eth0
通常是你的主要网络接口。<LOOPBACK,UP,LOWER_UP>
和 <BROADCAST,MULTICAST,UP,LOWER_UP>
:表示接口功能和当前状态的标志。UP
表示接口处于活动状态,LOWER_UP
表示物理链路已连接。mtu 65536
和 mtu 1500
:最大传输单元(Maximum Transmission Unit),即无需分段即可传输的最大数据包大小。qdisc noqueue
和 qdisc fq_codel
:附加到接口的队列规则,如你在上一步中所见。state UNKNOWN
和 state UP
:接口的操作状态。mode DEFAULT
:接口的模式。group default
:接口所属的组。qlen 1000
:传输队列长度。link/loopback
和 link/ether
:链路层类型。00:00:00:00:00:00
和 aa:bb:cc:dd:ee:ff
:接口的 MAC 地址。brd 00:00:00:00:00:00
和 brd ff:ff:ff:ff:ff:ff
:广播 MAC 地址。ip link show
命令对于快速检查网络接口的状态和配置至关重要。
点击 Continue 继续。
在这一步中,你将探索位于 /etc/network
目录下的传统网络配置文件。虽然现代 Linux 发行版通常使用 Netplan 或 NetworkManager 等工具,但了解这些较旧的配置文件仍然很有价值,特别是在使用它们的系统上或进行故障排除时。
这种风格的网络接口主要配置文件是 /etc/network/interfaces
。
如果终端尚未打开,请打开它。
你将使用 cat
命令来显示 /etc/network/interfaces
文件的内容。cat
是一个用于连接和显示文件内容的简单命令。
输入以下命令并按回车键:
cat /etc/network/interfaces
你应该会看到类似以下的输出:
## interfaces(5) file used by ifup(8) and ifdown(8)
## Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
让我们来分析一下内容:
#
:以 #
开头的行是注释,会被忽略。source-directory /etc/network/interfaces.d
:这一行告诉系统包含 /etc/network/interfaces.d
目录下的配置文件。这允许进行模块化的网络配置。auto lo
:这一行表示 lo
(回环)接口应在系统启动时自动启用。iface lo inet loopback
:这一行配置 lo
接口。inet
指定地址族(IPv4),loopback
表示它是一个回环接口。auto eth0
:这一行表示 eth0
接口应在系统启动时自动启用。iface eth0 inet dhcp
:这一行将 eth0
接口配置为使用 DHCP(动态主机配置协议)自动获取其 IP 地址和其他网络设置。这个文件提供了一种静态配置网络接口的方法。你可以在这里手动定义 IP 地址、子网掩码、网关和其他设置,而不是使用 DHCP。
虽然在这个实验中你不会修改这个文件,但了解它的位置和基本结构对于理解如何在 Linux 系统上配置网络接口很重要。
点击 Continue 完成这个实验。
在这个实验中,你学习了如何检查 Linux 中是否设置了网络队列规则。你首先使用 tc qdisc show
命令列出网络接口上配置的队列规则,理解包括队列规则名称、接口和类型在内的输出信息。这个命令是检查流量控制设置的基本工具。
你还了解了理解不同队列规则(如 noqueue
和 fq_codel
)的重要性,以及它们在管理网络流量和性能方面的作用。这第一步为你提供了一种切实可行的方法,让你了解系统上哪些队列规则处于活动状态。