ethtool,lspci,iperf工具常用命令总结

ethtoollspciiperf 是 Linux 系统中进行网络硬件查看、配置和性能测试的核心命令行工具。下面是它们的常用命令分析和总结:

核心作用总结:

  1. lspci: 侦察兵 - 列出系统所有 PCI/PCIe 总线上的硬件设备信息,主要用于识别网卡型号、制造商、位置等物理硬件信息。
  2. ethtool: 网络医生/调音师 - 查询和配置网络接口控制器(NIC)的参数,用于诊断链路状态、查看驱动信息、统计信息、调整高级功能(如 Offload)等。
  3. iperf / iperf3: 测速仪 - 测量网络带宽和性能,通过在两个节点间建立 TCP/UDP 数据流来测试最大吞吐量、丢包率、抖动等。

一、lspci - 列出 PCI 设备

  • 主要用途: 查看系统中所有通过 PCI/PCIe 总线连接的硬件设备,特别用于识别网卡

  • 常用命令:

    命令 作用 说明
    lspci 列出所有 PCI 设备 信息较简略
    `lspci grep -i ethernet` 过滤出所有以太网控制器
    lspci -v 列出所有设备详细信息 (verbose) 包含设备型号、驱动、内存映射等
    lspci -vvv 列出所有设备更详细信息 (very very verbose) 包含更多底层细节
    lspci -s [bus:device.function] 查看指定槽位设备信息 lspci -s 00:1f.6
    lspci -k 列出设备信息并显示其使用的内核驱动模块 非常有用,查看网卡驱动
    lspci -n 显示设备的厂商和设备 ID (数字形式) 用于精准识别硬件
    lspci -nn 显示设备的厂商和设备 ID (数字+名称) 结合了 -n 和名称显示
    lspci -tv 以树形结构显示所有设备 显示设备间的层次关系
  • 关键输出解读 (网卡相关):

    • Ethernet controller: 明确标识这是一个以太网控制器。
    • Vendor:Device: 后面的 ID (如 8086:15b8) 或名称 (如 Intel Corporation I219-V) 标识了网卡的具体型号和制造商。
    • Kernel driver in use: 显示当前加载的驱动模块 (如 e1000e, igb, ixgbe, r8169)。
    • Kernel modules: 显示该设备可用的驱动模块。
    • Subsystem: 设备子系统信息,有时包含 OEM 信息。

二、ethtool - 以太网设备工具

  • 主要用途: 查询、控制网络接口驱动和硬件设置,诊断网络接口状态和配置

  • 常用命令 (以接口 eth0 为例):

    命令 作用 说明
    ethtool eth0 查看接口基本摘要信息 最常用! 显示链路状态、速度、双工模式、端口类型、支持的参数等。第一眼诊断必备!
    ethtool -i eth0 查看驱动信息 非常常用! 显示驱动名称、版本、固件版本、总线信息等。排查驱动问题必备。
    ethtool -S eth0 查看详细的网络统计信息 诊断丢包、错误必备! 显示收发包计数、错误计数、丢弃计数等。关注 rx/tx_errors, rx/tx_dropped, rx/tx_fifo_errors 等。
    ethtool -k eth0 查看 Offload 功能状态 显示各种硬件卸载功能 (如 TSO, GSO, GRO, LRO, RX/TX checksum) 是否启用。性能调优关键。
    ethtool -K eth0 [feature] on/off 启用/禁用 Offload 功能 ethtool -K eth0 tso off (禁用 TSO)。谨慎修改!
    ethtool -g eth0 查看 Ring Buffer 参数 显示 RX/TX 环缓冲区当前大小和最大值。缓冲区不足可能导致丢包。
    ethtool -G eth0 rx [value] tx [value] 设置 Ring Buffer 大小 需要驱动支持。ethtool -G eth0 rx 4096 tx 4096。优化性能/减少丢包。
    ethtool -a eth0 查看暂停帧 (Flow Control) 设置 显示是否启用自动协商、RX/TX 暂停帧。
    ethtool -A eth0 autoneg on/off rx on/off tx on/off 设置暂停帧 需要协商支持。ethtool -A eth0 autoneg on rx on tx on
    ethtool -c eth0 查看 Coalesce (中断合并) 参数 调整中断触发频率,影响 CPU 占用和延迟。
    ethtool -C eth0 ... 设置 Coalesce 参数 参数复杂 (如 adaptive-rx on, rx-usecs 100),需谨慎调整。
    ethtool -p eth0 物理识别 (闪烁网口灯) 让对应网卡的指示灯闪烁,方便物理定位服务器上的网口。
    ethtool -s eth0 speed [10/100/1000] duplex [half/full] autoneg [on/off] 强制设置速度、双工模式 通常不推荐! 仅在自动协商失败且确认对端设置时使用。如 ethtool -s eth0 speed 1000 duplex full autoneg off
    ethtool -m eth0 查看模块诊断信息 (SFP/SFP+/QSFP) 显示光模块厂商、型号、序列号、波长、传输距离、告警状态等 (需网卡支持)。
  • 关键输出解读 (ethtool eth0):

    • Link detected: yes/no: 最基础! 网线是否物理连接上?网卡是否启用?
    • Speed: 1000Mb/s: 当前协商速率。是 10M/100M/1000M/10000M 吗?符合预期吗?
    • Duplex: Full: 当前双工模式。必须是 Full Duplex (全双工)!Half Duplex (半双工) 会导致严重性能问题。
    • Port: Twisted Pair/FIBRE: 连接介质类型。铜缆还是光纤?
    • Auto-negotiation: on/off: 自动协商是否开启。

三、iperf / iperf3 - 网络性能测试工具

  • 主要用途:两台主机 之间进行主动的网络带宽测试。iperf3 是更新的版本,更推荐使用。

  • 工作模式:

    • 服务端 (Server): 在一台机器上运行,监听连接 (-s)。
    • 客户端 (Client): 在另一台机器上运行,连接到服务端 (-c [server_ip]),发起测试流量。
  • 常用命令参数 (以 iperf3 为例):

    参数 作用 说明 示例
    服务端:
    iperf3 -s 启动默认服务端 监听 TCP 5201 端口
    iperf3 -s -p [port] 指定监听端口 iperf3 -s -p 5000
    iperf3 -s -D 以守护进程/后台模式运行
    客户端:
    iperf3 -c [server_ip] 最基本测试 客户端连接到服务端进行 TCP 测试 iperf3 -c 192.168.1.100
    iperf3 -c [server_ip] -t [seconds] 指定测试时长 (秒) 默认 10 秒 iperf3 -c 192.168.1.100 -t 30
    iperf3 -c [server_ip] -P [num] 指定并行连接数 测试多线程/高并发能力 iperf3 -c 192.168.1.100 -P 4
    iperf3 -c [server_ip] -R 反向模式 (测上传) 默认客户端是发送方 (测下载)。-R 让服务端发,客户端收 (测客户端上传/服务端下载)。 iperf3 -c 192.168.1.100 -R
    iperf3 -c [server_ip] -u -b [bandwidth] UDP 测试 -u: 使用 UDP。-b: 指定目标带宽 (如 10M, 1G)。测试极限带宽、丢包率、抖动。 iperf3 -c 192.168.1.100 -u -b 1G
    iperf3 -c [server_ip] -w [size] 设置 TCP 窗口大小 单位字节 (K, M)。影响 TCP 性能,特别是高延迟网络 (长肥网络)。 iperf3 -c 192.168.1.100 -w 2M
    iperf3 -c [server_ip] -i [interval] 设置报告间隔 (秒) 默认 1 秒 iperf3 -c 192.168.1.100 -i 2
    iperf3 -c [server_ip] -J 输出 JSON 格式结果 便于脚本解析
    iperf3 -c [server_ip] -p [port] 指定服务端端口 iperf3 -c 192.168.1.100 -p 5000
    iperf3 -c [server_ip] -B [client_ip] 绑定客户端源 IP 多网卡时指定用哪个 IP 测试 iperf3 -c 192.168.1.100 -B 192.168.1.50
    iperf3 -c [server_ip] -Z 启用 Zero Copy 可能提升性能 (需系统支持)
    iperf3 -c [server_ip] -T [title] 设置测试标题 在报告中显示
  • 关键输出解读 (TCP 测试):

    • [ ID] Interval Transfer Bitrate:核心结果行。
      • Interval: 时间区间。
      • Transfer: 在此区间内传输的数据总量。
      • Bitrate: 平均带宽 (bits per second - bps)。Gbits/sec (Gb/s), Mbits/sec (Mb/s) 是主要关注指标。
    • [SUM] 行:当使用 -P 指定多个并行连接时,会有一个 SUM 行汇总所有连接的总带宽。
    • Sender / Receiver:指示数据流方向。
  • 关键输出解读 (UDP 测试):

    • Jitter ms: 抖动 (延迟变化)。越小越好,实时应用 (如 VoIP, 视频会议) 非常关注。
    • Lost/Total Datagrams: 丢包数量和总包数
    • Lost%: 丢包率
    • Bitrate: 实际达到的平均带宽 (可能低于 -b 指定的目标带宽,尤其是在有丢包时)。

总结与典型工作流

  1. 硬件识别 (What NIC do I have?): lspci | grep -i ethernet -> 找到网卡设备名 (如 00:1f.6) -> lspci -v -s 00:1f.6 / lspci -k -s 00:1f.6 (查看详细信息、驱动)。
  2. 接口状态诊断 (Is it plugged in? What speed? Any errors?):
    • ethtool eth0: 看 Link, Speed, Duplex, Auto-neg。
    • ethtool -i eth0: 看驱动版本。
    • ethtool -S eth0: 看错误、丢包统计。
    • ethtool -k eth0: 看 Offload 设置 (如有性能问题)。
  3. 网络性能测试 (How fast is the link?):
    • 在 Server A: iperf3 -s -p 5000
    • 在 Server B: iperf3 -c [ServerA_IP] -p 5000 -t 30 -P 4 -i 2 (测试 Server B 到 Server A 的下载/Server A 的上传)
    • 在 Server B: iperf3 -c [ServerA_IP] -p 5000 -t 30 -P 4 -i 2 -R (测试 Server B 到 Server A 的上传/Server A 的下载)
    • (可选) 在 Server B: iperf3 -c [ServerA_IP] -p 5000 -u -b 1G (UDP 极限测试)

记住:

  • lspci 告诉你硬件是什么
  • ethtool 告诉你网卡工作状态如何怎么配置的
  • iperf / iperf3 告诉你网络实际跑起来有多快

熟练掌握这三个工具,是 Linux 系统管理员和网络工程师进行网络配置、故障排查和性能调优的基础技能。

相关推荐
路溪非溪1 小时前
嵌入式Linux驱动开发杂项总结
linux·运维·驱动开发
Neolock2 小时前
Linux应急响应一般思路(三)
linux·web安全·应急响应
被遗忘的旋律.3 小时前
Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
linux·驱动开发·笔记
轻松Ai享生活3 小时前
minidump vs core dump
linux
励志五个月成为嵌入式糕手3 小时前
0825 http梳理作业
网络·网络协议·http
轻松Ai享生活4 小时前
详细的 Linux 常用文件系统介绍
linux
张童瑶4 小时前
Linux 离线安装lrzsz(rz、sz上传下载小插件)
linux·运维·centos
dxt_snow4 小时前
docker在自定义网络中安装ElasticSearch和Kibana
网络·elasticsearch·docker
左灯右行的爱情4 小时前
分库分表系列-基础内容
网络·数据库·oracle
DebugKitty4 小时前
网络编程1-基本概念、函数接口
运维·服务器·网络·网络协议·socket·tcp