如何检查 Linux 中网络接口速度是否已设置

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何在 Linux 系统中检查网络接口的速度。我们将探讨三种常用的方法来实现这一目标。

首先,你将使用 ethtool 命令,这是一个用于查询和控制网络设置的强大工具。接下来,你将学习如何使用 ip link show 命令来识别你的网络接口。最后,我们将演示如何通过检查 /sys/class/net 目录的内容来查看网络接口的速度。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/cat -.-> lab-558737{{"如何检查 Linux 中网络接口速度是否已设置"}} linux/ip -.-> lab-558737{{"如何检查 Linux 中网络接口速度是否已设置"}} linux/apt -.-> lab-558737{{"如何检查 Linux 中网络接口速度是否已设置"}} end

使用 ethtool 检查速度

在这一步中,你将学习如何使用 ethtool 命令来检查网络接口的速度。ethtool 是一个用于查询和控制网络驱动程序及硬件设置的命令行工具。

首先,让我们来确定你的网络接口。在大多数 Linux 环境中,主网络接口通常命名为 eth0,或者类似 enpXsY 这样的名称。你通常可以通过查看 ip link show 命令的输出来找到接口名称,我们将在下一个步骤中详细介绍该命令。现在,假设你的接口名为 eth0

要检查 eth0 接口的速度,请打开终端并输入以下命令:

sudo ethtool eth0

按下回车键。

你将看到类似如下的输出:

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

查找以 Speed: 开头的行。这一行会显示你当前网络连接的速度。在上面的示例中,速度为 1000Mb/s

如果你收到类似 command not found 的错误信息,这意味着 ethtool 尚未安装。你可以使用包管理器来安装它:

sudo apt update
sudo apt install ethtool -y

安装完成后,再次尝试使用 sudo ethtool eth0 命令。

如果你的网络接口名称不是 eth0,请记得将其替换为实际的接口名称。

点击 继续 进入下一步。

在上一步中,我们假设接口名称为 eth0,并使用 ethtool 来检查网络速度。然而,网络接口名称可能会有所不同。在这一步中,我们将使用 ip link show 命令来列出所有网络接口并验证它们的状态。

ip 命令是 Linux 中用于网络配置的强大工具。link 对象用于管理网络接口,而 show 操作则用于显示有关它们的信息。

打开终端并输入以下命令:

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 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

在这个输出中:

  • lo 是回环接口,用于同一台机器内部的通信。
  • eth0 可能是你连接到外部网络的主网络接口。在其他环境中,名称可能不同(例如 enp3s0)。
  • <BROADCAST,MULTICAST,UP,LOWER_UP> 表示接口的状态和功能。UP 表示接口处于活动状态。
  • mtu 是最大传输单元(Maximum Transmission Unit)。
  • state UP 确认接口正在运行。

从输出中确定你的主网络接口的名称。通常是处于 UP 状态且不是 lo 的那个接口。在我们的 LabEx 环境中,它是 eth0

现在你已经知道如何找到正确的网络接口名称,这对于使用 ethtool 等命令至关重要。

点击 继续 以继续下一步。

在 /sys/class/net 中查看速度

除了使用 ethtool 等命令外,你还可以直接在 Linux 文件系统中,特别是 /sys 目录下,找到有关网络接口的信息。/sys 文件系统提供了对内核数据结构的访问接口。

网络接口信息通常位于 /sys/class/net/ 目录下。在这个目录中,你会看到以系统中每个网络接口命名的子目录(例如 eth0lo)。

要查找主接口(在上一步中我们确定为 eth0)的速度信息,你可以查看 /sys/class/net/eth0/speed 文件。

打开终端,使用 cat 命令查看该文件的内容:

cat /sys/class/net/eth0/speed

按下回车键。

你应该会看到一个单独的数字作为输出,该数字表示链路速度,单位为兆比特每秒(Mb/s)。

1000

这个输出确认了 eth0 接口的速度为 1000 Mb/s,与我们使用 ethtool 命令得到的信息一致。

通过读取 /sys 目录下的文件来检查速度的这种方法很有用,因为它不需要安装 ethtool 等额外的工具。这是一种直接访问内核提供信息的方式。

请记住,路径 /sys/class/net/eth0/speed 假设你的网络接口名为 eth0。如果你的接口名称不同,你需要将 eth0 替换为正确的名称。

现在你已经学会了三种不同的方法来获取有关网络接口及其速度的信息!

点击 继续 完成本次实验。

总结

在本次实验中,我们学习了如何使用三种不同的方法来检查 Linux 中网络接口的速度。首先,我们使用了 ethtool 命令,这是一个用于查询和控制网络设置的强大工具,可直接显示接口速度。接着,我们探索了 ip link show 命令,以确定网络接口的名称,这对于使用 ethtool 等工具至关重要。最后,我们了解了如何查看 /sys/class/net 目录(sysfs 虚拟文件系统的一部分),通过检查接口目录下的 speed 文件内容来获取接口速度信息。这些方法提供了不同的途径来访问和验证网络接口速度,可根据具体情况和可用工具灵活选择。