news 2026/10/7 10:06:50

如何在 Linux 中检查网卡速度(NIC Speed):全面技术指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在 Linux 中检查网卡速度(NIC Speed):全面技术指南

网络接口卡(NIC,Network Interface Card),通常简称“网卡”,是计算机与网络通信的核心硬件组件。网卡速度(即链路速度,Link Speed)指的是网卡与交换机或路由器之间协商的最大数据传输速率(如 100Mbps、1Gbps、10Gbps 等),是衡量网络性能的基础指标之一。

学习C语言课程

在 Linux 系统中,准确检查网卡速度对以下场景至关重要:

  • 网络故障排查:当网络延迟高或吞吐量低时,确认网卡是否工作在预期速度(如千兆网卡是否降级为百兆)。
  • 性能优化:验证服务器或工作站是否达到硬件规格(如是否启用 10Gbps 链路)。
  • 资源规划:评估现有网络带宽是否满足业务需求(如文件传输、数据库同步等)。

本文将详细介绍10 种在 Linux 中检查网卡速度的方法,涵盖命令行工具、系统文件、内核日志等多维度,并对比“标称速度”与“实际吞吐量”的差异,帮助读者快速定位和解决网络问题。

目录#

  1. 前置准备
    • 1.1 确认网卡接口名称
    • 1.2 必要权限与工具依赖
  2. 方法一:使用 ethtool(推荐)
  3. 方法二:使用 mii-tool( deprecated,仅兼容旧系统)
  4. 方法三:使用 nmcli(NetworkManager 用户)
  5. 方法四:使用 lshw(硬件信息查询工具)
  6. 方法五:读取 /sys/class/net 系统文件
  7. 方法六:通过 dmesg 查看内核启动日志
  8. 方法七:使用 ifconfig 与 grep 组合(基础状态检查)
  9. 方法八:使用 ip link 命令(链路状态查询)
  10. 方法九:测试实际吞吐量(而非标称速度)
    • 10.1 使用iperf3测试点对点吞吐量
    • 10.2 使用speedtest-cli测试公网速度
  11. 常见实践与最佳实践
    • 11.1 区分“标称速度”与“实际吞吐量”
    • 11.2 多工具交叉验证结果
    • 11.3 排查速度异常的常见原因
  12. 总结
  13. 参考资料

1. 前置准备#

在检查网卡速度前,需完成以下准备工作:

1.1 确认网卡接口名称#

Linux 中的网卡接口名称通常遵循以下命名规则:

  • 传统命名:eth0、eth1(以太网)、wlan0(无线)。
  • 现代一致性命名:enp0s3(基于主板 PCI 位置)、ens33(基于 BIOS 设备索引)等(由systemd引入)。

查看所有网卡接口:

# 方法 1:使用 ip 命令(推荐,现代 Linux 标配)ip link show # 方法 2:使用 ifconfig(需安装 net-tools 包,部分系统默认不包含)ifconfig -a # 方法 3:使用 NetworkManager(图形化系统常用)nmcli device status

示例输出(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 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

此处eth0即为目标网卡接口名称。

1.2 必要权限与工具依赖#

  • 权限:部分命令(如ethtool、lshw)需要 root 权限,建议使用sudo执行。
  • 工具安装:若命令不存在,通过包管理器安装:
    # Debian/Ubuntusudo apt install ethtool net-tools lshw iperf3 # CentOS/RHELsudo yum install ethtool net-tools lshw iperf3 # Arch Linuxsudo pacman -S ethtool net-tools lshw iperf3

2. 方法一:使用ethtool(推荐)#

ethtool是 Linux 中最常用的网卡配置与诊断工具,几乎支持所有主流网卡驱动,可直接查询链路速度、双工模式、链路状态等核心信息。

基本用法#
sudo ethtool <网卡接口名称>

示例:检查eth0速度#

sudo ethtool eth0

输出解读(关键部分)#

Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full # 网卡支持的最大速度(1Gbps) 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 Link detected: yes # 链路是否已连接

核心参数说明#

  • Speed: 1000Mb/s:当前网卡速度(即链路速度,1Gbps)。
  • Duplex: Full:全双工模式(可同时收发 数据),半双工(Half)会严重影响性能。
  • Link detected: yes:网卡与交换机/路由器物理连接正常(若为no,需检查网线或接口)。

进阶:仅显示速度相关信息#

sudo ethtool eth0 | grep -iE 'speed|duplex|link'

3. 方法二:使用mii-tool( deprecated,仅兼容旧系统)#

mii-tool(Media Independent Interface Tool)是早期 Linux 用于配置网卡物理层(PHY)的工具,已被ethtool取代,但部分老旧系统(如 CentOS 6、Debian 7)仍可能保留。

学习C语言课程

基本用法#
sudo mii-tool <网卡接口名称>
示例输出#
sudo mii-tool eth0eth0: negotiated 1000baseT-FD flow-control, link ok
输出解读#
  • 1000baseT-FD:1000Mbps(T 表示双绞线),FD 表示全双工(Full Duplex)。
  • link ok:链路正常。

注意:mii-tool不支持 10Gbps 及以上速度,且无法显示部分高级参数(如自动协商状态),建议优先使用ethtool。

4. 方法三:使用nmcli(NetworkManager 用户)#

nmcli是 NetworkManager 的命令行工具,适用于使用 NetworkManager 管理网络的系统(如 Fedora、Ubuntu 桌面版、CentOS 8+)。

学习C语言课程

基本用法#
nmcli device show <网卡接口名称>

示例:检查eth0速度#

nmcli device show eth0 | grep -i speed
示例输出#
GENERAL.SPEED: 1000 Mbit/s
说明#
  • GENERAL.SPEED字段直接显示当前链路速度(单位:Mbit/s)。
  • 若输出为0 Mbit/s,表示链路未连接或速度协商失败。

5. 方法四:使用lshw(硬件信息查询工具)#

lshw(List Hardware)是一款功能强大的硬件信息查询工具,可显示网卡的硬件规格(如支持的最大速度)及当前状态。

基本用法#
sudo lshw -class network # 查看所有网络设备信息

示例输出(过滤网卡部分)#

sudo lshw -class network | grep -A 10 "eth0" *-network description: Ethernet interface product: 82545EM Gigabit Ethernet Controller (Copper) vendor: Intel Corporation physical id: 0 bus info: pci@0000:02:00.0 logical name: eth0 version: 01 serial: 52:54:00:12:34:56 size: 1Gbit/s # 当前速度 capacity: 1Gbit/s # 网卡支持的最大速度 width: 64 bits

关键字段#

  • size: 1Gbit/s:当前协商速度。
  • capacity: 1Gbit/s:网卡硬件支持的最大速度(若size < capacity,可能存在链路协商问题)。

6. 方法五:读取/sys/class/net系统文件#

Linux 的sysfs文件系统(/sys)提供了内核与用户空间的接口,部分网卡驱动会在/sys/class/net/<接口>/speed文件中暴露当前速度。

基本用法#
cat /sys/class/net/<网卡接口名称>/speed

示例#

# 查看 eth0 速度cat /sys/class/net/eth0/speed1000 # 单位:Mbps

注意事项#

  • 并非所有网卡驱动都支持此接口(如部分虚拟网卡或老旧驱动),若文件不存在或返回0,需使用其他方法。
  • 若链路未连接,可能返回0或报错。

7. 方法六:通过dmesg查看内核启动日志#

内核启动时会记录网卡初始化信息,包括驱动加载、速度协商结果等,可通过dmesg命令查看历史日志。

基本用法#
dmesg | grep -iE '<网卡接口名称>.*speed'

示例#

dmesg | grep -iE 'eth0.*speed'[ 3.456789] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
输出解读#
  • Link is Up 1000 Mbps Full Duplex:启动时协商的速度为 1Gbps 全双工。
  • 若日志中无速度信息,可能是驱动未记录或日志已轮转(可查看/var/log/dmesg文件)。

8. 方法七:使用ifconfig与grep组合(基础状态检查)#

ifconfig是传统网络状态查询工具(需安装net-tools包),本身不直接显示速度,但可辅助判断网卡是否“启动”(UP),为速度检查提供前提。

基本用法#
ifconfig <网卡接口名称>
示例输出#
ifconfig eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 ether 52:54:00:12:34:56 txqueuelen 1000 (Ethernet) RX packets 12345 bytes 12345678 (11.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6789 bytes 7890123 (7.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
说明#
  • flags=4163<UP,...>:UP表示网卡已启用,RUNNING表示链路已连接(若缺失,速度检查无意义)。
  • collisions 0:无冲突(半双工模式下可能出现非零值,需关注)。

9. 方法八:使用ip link命令(链路状态查询)#

ip link是iproute2工具集的一部分(现代 Linux 推荐),用于管理网络接口状态,可间接判断链路是否正常,但不直接显示速度。

基本用法#
ip link show <网卡接口名称>
示例输出#
ip link show eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

关键状态字段#

  • <UP,LOWER_UP>:UP( 软件层启用),LOWER_UP(物理层链路正常,即网线已连接)。
  • 若缺失LOWER_UP,需先排查物理连接(网线、交换机端口)。

10. 方法九:测试实际吞吐量(而非标称速度)#

上述方法均显示“链路速度”(如 1Gbps),即网卡与交换机协商的理论最大速度。但实际 数据传输速率(吞吐量)受协议开销、网络拥塞、硬件性能等影响,可能远低于标称值。

学习计算机课

10.1 使用iperf3测试点对点吞吐量#

iperf3是一款专业的网络吞吐量测试工具,需在两台设备上配合使用(一台作为服务器,一台作为客户端)。

步骤 1:在服务器端启动iperf3服务#
iperf3 -s # -s 表示 server 模式
步骤 2:在客户端连接服务器测试#
iperf3 -c <服务器 IP> # -c 表示 client 模式,指定服务器 IP
示例输出(客户端)#
[ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec 0 1.27 MBytes
输出解读#
  • 938 Mbits/sec:实际吞吐量约为 938Mbps(接近 1Gbps 标称速度,正常,因存在协议开销)。
  • 若吞吐量远低于标称值(如 1Gbps 网卡仅 100Mbps),需排查:
    • 交换机端口速度限制(如强制为 100Mbps)。
    • 网线类型(Cat5e 支持 1Gbps,Cat5 仅支持 100Mbps)。
    • 服务器/客户端 CPU 瓶颈(iperf3 测试会消耗 CPU)。

10.2 使用speedtest-cli测试公网速度#

若需测试与公网的实际速度(如下载/上传速度),可使用speedtest-cli(基于 Speedtest.net 服务)。

安装#
# 方法 1:使用 pip(Python 包管理器)pip install speedtest-cli # 方法 2:直接下载脚本(需 curl/wget)curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
基本用法#
speedtest-cli
示例输出#
Download: 94.58 Mbit/s Upload: 45.23 Mbit/s
说明#
  • 公网速度受 ISP 带宽限制,与网卡标称速度无关(如 1Gbps 网卡若 ISP 仅提供 100Mbps 宽带,实际下载速度约 90-100Mbps)。

11. 常见实践与最佳实践#

11.1 区分“标称速度”与“实际吞吐量”#

  • 标称速度(Link Speed):网卡与交换机协商的物理链路速度(如 1Gbps),通过ethtool等工具查询。
  • 实际吞吐量:真实数据传输速率(如 iperf3 测试的 938Mbps),受协议、硬件、网络环境影响。
  • 经验值:1Gbps 链路的实际吞吐量通常为 900-950Mbps(TCP 协议),UDP 可接近 1Gbps。

11.2 多工具交叉验证结果#

若某工具显示速度异常(如标称 1Gbps 但ethtool显示 100Mbps),建议用其他工具交叉验证:

# 示例:同时使用 ethtool、nmcli、sysfs 验证sudo ethtool eth0 | grep Speednmcli device show eth0 | grep SPEEDcat /sys/class/net/eth0/speed

若结果一致,则速度正常;若不一致,可能是驱动或工具兼容性问题。

11.3 排查速度异常的常见原因#

当网卡速度低于预期(如 1Gbps 网卡仅工作在 100Mbps),按以下步骤排查:

  1. 检查网线:确保使用 Cat5e 及以上规格(支持 1Gbps),避免过长(建议 ≤100 米)。
  2. 检查交换机端口:登录交换机管理界面,确认端口未被强制限速(如配置为 100Mbps)。
  3. 重启网络设备:重启网卡、交换机或路由器,重新触发速度协商。
  4. 更新驱动:老旧网卡驱动可能存在兼容性问题,可通过lshw -class network查看网卡型号,到厂商官网下载最新驱动。
  5. 检查双工模式:半双工(Half Duplex)会导致严重性能下降,通过ethtool确认双工模式为Full。

12. 总结#

本文介绍了 9 种检查 Linux 网卡速度的方法(含 1 种吞吐量测试),各工具特点总结如下:

工具/方法优势局限性适用场景
ethtool功能全面,支持所有速度,参数丰富需要 root 权限所有 Linux 系统(推荐首选)
nmcli简洁,适合 NetworkManager 用户依赖 NetworkManager桌面版 Linux(如 Ubuntu、Fedora)
lshw可查看硬件最大支持速度输出冗长,需过滤硬件规格验证
/sys/class/net无需额外工具,直接读取内核信息部分驱动不支持脚本自动化检查
iperf3测试实际吞吐量,定位性能瓶颈需要两台设备配合网络性能优化

根据实际需求选择合适工具,并结合多维度验证,可快速准确判断网卡速度状态。

13. 参考资料#

  • Linux 内核文档:sysfs 网络接口
  • ethtool 官方手册
  • iperf3 官方文档
  • NetworkManager 文档:nmcli
  • Linux 网卡命名规则
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 10:04:48

PX4 日志分析与飞行异常诊断实战指南

一句话掌握&#xff1a;ULog 是二进制自描述日志格式&#xff0c;靠 F 段自带 schema&#xff08;结构定义&#xff09;&#xff0c;解析器无需硬编码字段顺序&#xff0c;这是它优于 CSV 的根本原因&#xff1b;飞行异常诊断的入口是「用 EKF 测试比定位哪一路观测被拒绝或异常…

作者头像 李华
网站建设 2026/10/7 10:04:41

一句话生成爆款视频:WorkBuddy+Hypit本地工作流实战

1. 项目概述&#xff1a;用一句话生成爆款视频&#xff0c;不是玄学&#xff0c;是工具链的精准缝合“一句话复刻爆款视频”——这句话乍看像短视频平台的流量话术&#xff0c;但落到实操层面&#xff0c;它背后是一套可拆解、可复现、可批量化的视频生成工作流。我从去年开始系…

作者头像 李华
网站建设 2026/10/7 10:04:18

圈层固化下的独立思辨与升维突破

摘要本文直指人类知识体系的圈层固化困境——各学科、宗教与人文体系皆被既定框架锁死&#xff0c;独立思辨者一旦跳出圈层便被隔离雪藏。唯有打破底层重构的禁忌&#xff0c;以本源自建逻辑实现升维突破&#xff0c;方能挣脱低维轮回。1. 引言人类知识体系的演进&#xff0c;本…

作者头像 李华
网站建设 2026/10/7 10:03:16

在 Web 自动化、数据采集、UI 自动化测试等领域,“让浏览器打开一个指定的网址并完整加载页面“是一切后续操作的起点

在 Web 自动化、数据采集、UI 自动化测试等领域&#xff0c;"让浏览器打开一个指定的网址并完整加载页面"是一切后续操作的起点。无论是要抓取页面元素、模拟用户登录&#xff0c;还是对前端页面做端到端回归测试&#xff0c;第一步永远是导航到目标 URL。Python 生态…

作者头像 李华