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)便于比对与追踪。
相关推荐
赖small强2 小时前
【Linux驱动开发】Linux块设备驱动开发详解
linux·驱动开发·块设备·字符设备
qq_401700412 小时前
Linux 信号机制
linux·运维·服务器
无心水2 小时前
【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等方案,彻底解决重复消费(附代码实操)
网络·数据库·rocketmq·java面试·消息幂等·重复消费·分布式利器
!chen2 小时前
Zabbix 配置中文界面、监控告警以及Windows、Linux主/被监控模板
linux·windows·zabbix
_Stellar2 小时前
Linux 服务器配置 rootless docker Quick Start
linux·服务器·docker
重启编程之路2 小时前
python 基础学习socket -TCP编程
网络·python·学习·tcp/ip
石像鬼₧魂石3 小时前
Kali Linux 中对某(靶机)监控设备进行漏洞验证的完整流程(卧室监控学习)
linux·运维·学习
Hqst_xiangxuajun3 小时前
服务器主板选用网络变压器及参数配置HX82409S
运维·服务器·网络
“愿你如星辰如月”3 小时前
Linux:进程间通信
linux·运维·服务器·c++·操作系统