Linux 网络性能测试实战:用 iperf3 精准测出真实带宽与丢包率

在网络调试或链路验收中,iperf3 是最常用的带宽测试工具之一。 它支持 TCP/UDP 协议,可自定义带宽、测试时长、包大小等参数,轻量高效,是运维与网络工程师的常备工具。


一、安装 iperf3

iperf3 支持各类 Linux 发行版,可通过包管理器直接安装:

复制代码
# Debian / Ubuntu
sudo apt update && sudo apt install iperf3 -y

# CentOS / Rocky / AlmaLinux / RHEL
sudo yum install iperf3 -y

# Fedora
sudo dnf install iperf3 -y

# openSUSE
sudo zypper install iperf3

验证安装:

复制代码
iperf3 -v

二、UDP 带宽测试(示例:50Mbps)

UDP 模式常用于测试网络抖动、丢包率和最大承载能力。

服务端:

复制代码
iperf3 -s -p 5001

客户端:

复制代码
iperf3 -c <服务器IP> -u -b 50M -t 10 -p 5001 -B <客户端源IP>

参数说明:

  • -u:启用 UDP 模式
  • -b:指定目标带宽
  • -t:测试持续时间(秒)
  • -B:绑定客户端源地址(多网卡时推荐使用)

三、TCP 带宽测试(示例:80Mbps、100Mbps)

服务端:

复制代码
iperf3 -s -p 5002

客户端:

复制代码
# 测试 80Mbps
iperf3 -c <服务器IP> -b 80M -t 10 -p 5002 -B <客户端源IP>

# 测试 100Mbps
iperf3 -c <服务器IP> -b 100M -t 10 -p 5002 -B <客户端源IP>

四、不同数据包长度测试

测试不同包长下的网络表现(以 UDP 模式为例):

复制代码
iperf3 -c <服务器IP> -u -l 64b   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 128b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 256b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 512b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1500b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 2k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 4k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 8k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 16k   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 32k   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 64k   -b 50M -t 10 -p 5001

五、测试结果分析与样例解析

UDP 测试样例

客户端命令:

复制代码
iperf3 -c 10.0.0.2 -u -b 50M -t 10 -p 5001 -B 10.0.0.3

输出片段:

复制代码
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00 sec  59.6 MBytes   49.8 Mbits/sec  0.233 ms  3/4595 (0.065%)
Server Report:
[  5]   0.00-10.03 sec  59.6 MBytes   49.8 Mbits/sec  0.233 ms  3/4595 (0.065%)

字段解释:

  • Transfer:10 秒内传输的数据量(59.6 MB)。
  • Bitrate:实际传输速率(49.8 Mbps,接近目标 50 Mbps)。
  • Jitter:UDP 抖动(0.233 ms,极低,链路稳定)。
  • Lost/Total Datagrams:丢包统计(丢 3 包,占 0.065%,可接受)。

分析建议:

  • 若带宽明显低于目标值,检查 CPU、带宽限制或中间防火墙策略。
  • 若丢包率高(>0.5%),优先排查网卡统计、交换机端口错误或 QoS 限制。
  • 若抖动高(>30ms),说明链路拥塞或排队延迟。

TCP 测试样例

客户端命令:

复制代码
iperf3 -c 10.0.0.2 -t 10 -p 5002 -B 10.0.0.3

输出片段:

复制代码
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00 sec   93.5 MBytes   78.4 Mbits/sec  2             sender
[  5]   0.00-10.00 sec   92.9 MBytes   78.0 Mbits/sec              receiver

字段解释:

  • Bitrate:TCP 吞吐率(78.4 Mbps)。
  • Retr:TCP 重传次数(2 次,正常范围)。
  • sender / receiver:两端统计结果;若差距大,表示中间存在丢包或接收端限速。

分析建议:

  • 重传过多说明丢包或延迟波动,应排查链路质量。
  • 吞吐低于预期时,可尝试:
    • 增大 TCP 窗口缓冲(-w 512K);
    • 使用多并发流(-P 4);
    • 检查 QoS、限速或 MTU 问题。

包长影响说明

  • 小包(64B~256B):包率高、CPU 压力大、吞吐可能下降,适合测试设备 PPS 能力。
  • 中包(512B~1500B):常见业务场景,结果可代表真实性能。
  • 大包(2K~64K):协议效率高,但可能受 MTU 限制。若性能提升明显,可启用 Jumbo Frame(9000B)。

六、总结

iperf3 是网络链路测试与性能诊断的核心工具,可快速验证带宽、丢包、抖动、TCP 吞吐等关键指标。 结合不同包长与协议测试,可以精准判断链路瓶颈,定位物理层、传输层或系统配置问题。

建议:

  • 测试前关闭业务干扰,保证带宽独占。
  • 分多个时间段重复测试,分析平均值与波动情况。
  • 保存结果日志(--logfile result.log)便于比对与追踪。
相关推荐
酷可达拉斯3 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
weixin_727535623 小时前
OSI 七层模型概览
网络
2301_777998343 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
yunwei373 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像
linux·开源
Eloudy4 小时前
Chapter02 - 互连网络原理与实践:一个简单的互连网络
网络
数智化管理手记4 小时前
应收应付资金占用过高怎么办?应收应付搭配账龄分析怎么做
大数据·网络·数据库·人工智能·数据挖掘
ICT系统集成阿祥4 小时前
公司搬迁同网段并行割接方案|新旧场地同时办公,不用改终端 IP
网络·架构·迁移·割接
treesforest4 小时前
你以为只是一串数字?你的IP地址,正在悄悄暴露这些信息
网络·网络协议·tcp/ip·网络安全·ip归属地查询·ip风控
emfuture4 小时前
工业自动化现场四大典型故障复盘:从环境适配到边缘智能的工程实践
运维·网络·自动化
笑锝没心没肺4 小时前
yum update 报错:GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
linux·运维·服务器