如何在 Linux 终端检查网卡速度
在 Linux 系统中,检查网络接口(NIC)的速度和状态是网络故障排查或性能优化的常见任务。本教程将介绍如何使用终端命令快速检查网卡的速度、双工模式等

在 Linux 系统中,检查网络接口(NIC)的速度和状态是网络故障排查或性能优化的常见任务。本教程将介绍如何使用终端命令快速检查网卡的速度、双工模式和其他相关信息。
为什么需要检查网卡速度?
了解网卡的运行速度(例如10 Mbps、100 Mbps、1 Gbps或更高)以及是否以全双工或半双工模式运行,可以帮助你:
- 确认网络连接是否达到预期性能。
- 诊断网络瓶颈或连接问题。
- 验证网卡是否正确配置以支持你的网络环境。
以下是几种在 Linux 终端中检查网卡速度的简单方法。
使用 ethtool
ethtool
是一个功能强大的工具,用于显示和配置网络接口的设置。它通常需要安装,但许多 Linux 发行版默认包含它。
安装 ethtool
如果你还没有安装 ethtool
,可以使用以下命令安装:
- Ubuntu/Debian:
sudo apt update
sudo apt install ethtool
- Fedora:
sudo dnf install ethtool
- Arch Linux:
sudo pacman -S ethtool
检查网卡速度
确定你的网络接口名称。运行以下命令列出所有接口:
ip link
输出示例:
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 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
在此例中,网卡名称为 eth0
。
使用 ethtool
检查 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: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
关键信息:
- Speed:网卡当前运行速度(例如,1000Mb/s 表示 1 Gbps)。
- Duplex:双工模式(Full 表示全双工,Half 表示半双工)。
- Link detected:表示是否检测到网络连接(yes 表示已连接)。
使用 nmcli
nmcli
是 NetworkManager 的命令行工具,适用于使用 NetworkManager 管理网络的系统。它提供了一种更简单的方式来检查网卡状态。
检查所有网络连接:
nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
lo loopback unmanaged --
确保你的网卡(例如,eth0
)状态为 connected
。
查看详细连接信息:
nmcli device show eth0
输出示例:
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:1A:2B:3C:4D:5E
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: Wired connection 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.1.100/24
IP4.GATEWAY: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP6.ADDRESS[1]: fe80::1a:2bff:fe3c:4d5e/64
注意:nmcli
可能不会直接显示速度,但可以确认连接状态。
如果需要速度信息,可以结合 ethtool
或查看 NetworkManager 日志。
使用 cat /sys/class/net
Linux 的 /sys/class/net
目录包含网络接口的详细信息。你可以直接查看特定文件以获取速度信息。
检查 eth0 接口速度:
cat /sys/class/net/eth0/speed
输出示例:
1000
这表示网卡以 1000 Mbps(1 Gbps)运行。
检查双工模式:
cat /sys/class/net/eth0/duplex
输出示例:
full
表示全双工模式。
如果网卡未连接,speed
文件可能返回Invalid argument
错误。
使用 dmesg
查看内核日志
内核日志有时会记录网卡初始化时的速度和状态信息。
过滤与网卡相关的日志:
dmesg | grep eth0
输出示例:
[ 2.345678] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
这表明网卡以 1000 Mbps 全双工模式运行。
故障排除提示
ethtool
命令未找到:确保安装ethtool
,否则使用其他方法。- 无速度信息:如果
ethtool
或/sys/class/net
未显示速度,检查网卡是否已连接(Link detected: yes
)。 - 旧硬件:某些老旧网卡可能不支持自动协商,导致速度信息不准确。
- 权限问题:某些命令需要
sudo
权限才能访问网卡详细信息。
总结
检查网卡速度是 Linux 网络管理的重要部分。以下是推荐方法:
- 首选:
ethtool
,提供最详细的信息。 - 简单选项:
nmcli
,适用于 NetworkManager 用户。 - 快速检查:
/sys/class/net
目录,适合脚本或自动化。 - 备用方法:
dmesg
,用于查看历史日志。
通过这些工具,你可以轻松监控网卡性能并确保网络配置正确。