Linux系统中测试本地网络吞吐量与延迟的核心是使用iperf3测带宽(如iperf3 -s -B IP与iperf3 -c IP -t 20 -P 4)、ping测ICMP往返延迟、sockperf测TCP/UDP应用层延迟,并结合ethtool、sar、ss等命令排查网卡速率、中断分布及TCP重传等底层瓶颈。

Linux 系统中测试本地网络吞吐量与延迟,核心是选对工具、配对模式、避开干扰。不需要复杂部署,用几条命令就能快速拿到真实数据。
用 iperf3 测吞吐量(最常用、最可靠)
iperf3 是轻量级、跨平台、支持 TCP/UDP 的标准工具,适合局域网内端到端带宽实测。
- 服务端(接收方)运行:
iperf3 -s -B 192.168.1.100(绑定本机指定 IP,避免多网卡冲突) - 客户端(发送方)运行:
iperf3 -c 192.168.1.100 -t 20 -P 4(持续 20 秒,4 并行流,压满链路) - 若想看 UDP 极限能力:
iperf3 -c 192.168.1.100 -u -b 500M -P 4(限制发速 500Mbps,观察丢包与抖动) - 注意:两端防火墙需放行 TCP/UDP 5201 端口;首次建议先单线程(
-P 1)跑基线,再加并发
用 ping 和 sockperf 测延迟(更细致区分类型)
ping 只反映 ICMP 层往返时延,适合快速连通性检查;sockperf 可测 TCP/UDP 应用层真实延迟,含 jitter 和 percentile 分布。
- 基础延迟:
ping -c 20 192.168.1.100(看 avg 和 max,排除偶发抖动) - TCP 连接延迟:
sockperf ping-pong -i 192.168.1.100 -p 5201 --time 10(模拟 TCP 请求响应) - UDP 延迟分布:
sockperf udp-rr -i 192.168.1.100 --time 10 --msg-size 64(默认 64 字节,可调) - sockperf 需提前安装:
sudo apt install sockperf(Debian/Ubuntu)或源码编译(CentOS)
结合系统状态判断瓶颈所在
吞吐低或延迟高时,不能只盯着网络,要同步查底层。
- 查网卡协商速率:
ethtool eth0 | grep "Speed\|Duplex"(确认是否真为千兆/万兆全双工) - 查中断分布:
sar -I ALL 1 | grep eth0(看是否所有中断都集中在一个 CPU 核上) - 查 TCP 重传率:
ss -i | grep -E "(retrans|rtt)"或netstat -s | grep -A 5 "TCP:" - 查接收队列溢出:
netstat -s | grep "packet receive errors"中的RcvbufErrors
避开常见干扰项
很多“测不准”其实源于环境配置错误。
- 关闭被测设备防火墙(
sudo ufw disable或sudo systemctl stop firewalld) - 确保两台设备在同一广播域,不经过无线中继或 VLAN 跨跳
- 测试前禁用 NetworkManager 的自动调优(如
sudo systemctl stop NetworkManager),改用静态 IP - 避免在虚拟机里测宿主机网卡——应直接在物理机或容器 host 网络模式下运行
不复杂但容易忽略。











