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)便于比对与追踪。
相关推荐
浔川python社12 小时前
《C++ 小程序编写系列》(第六部)
java·网络·rpc
23124_8012 小时前
HTTPS中间人攻击
网络·网络协议·https
yuanmenghao13 小时前
Linux 配置Samba,Windows登录,开机自动映射登录
linux·运维·windows·操作系统·samba
秋天枫叶3513 小时前
【k8s集群Docker + cri-dockerd】服务器重启或关机后 apiserver/controller/scheduler 无法自动恢复
linux·运维·服务器·容器·kubernetes·bug
松涛和鸣13 小时前
59、 IMX6ULL按键驱动开发:轮询到中断的实现
linux·服务器·c语言·arm开发·数据库·驱动开发
LcVong13 小时前
C# 基于MemoryMappedFile实现进程间通信(服务端+客户端完整范例)
linux·服务器·c#
小风呼呼吹儿13 小时前
Flutter 框架跨平台鸿蒙开发 - 倒计时秒表:打造多功能计时工具
网络·flutter·华为·harmonyos
河码匠13 小时前
namespace 网络命名空间、使用网络命名空间实现虚拟路由
linux·网络
真的想上岸啊13 小时前
3、用SSH方式登录板子
linux
开开心心就好13 小时前
打印机驱动搜索下载工具,自动识别手动搜
java·linux·开发语言·网络·stm32·物联网·电脑