使用 iperf 进行网络带宽测试

使用 iperf 进行网络带宽测试


介绍

在现代网络环境中,了解和评估网络的性能(如带宽、延迟、抖动等)是非常重要的。尤其是在部署服务器、搭建局域网或优化远程连接时,我们经常需要测试网络的实际传输能力。

iperf​ 是一个开源的网络性能测试工具,支持 TCP 和 UDP 协议,可以测量最大带宽、延迟、丢包率等指标。它广泛用于 Linux 和 Windows 平台,是系统管理员和网络工程师常用的工具之一。


安装 iperf

✅ 在 Ubuntu/Debian 上安装:

sudo apt update
sudo apt install iperf3

⚠️ 注意:iperf3​ 是 iperf​ 的新一代版本,推荐使用。

✅ 在 CentOS/RHEL 上安装:

sudo yum install epel-release
sudo yum install iperf3

✅ 在 macOS 上安装(使用 Homebrew):

brew install iperf3

✅ 在 Windows 上安装:


基本用法

iperf​ 使用非常简单,分为两个角色:

  • 服务端(Server) :监听来自客户端的连接请求
  • 客户端(Client) :主动发起连接并发送数据进行测试

️ 启动 iperf 服务端

在一台机器上启动服务端:

iperf3 -s

输出示例:

------------------------------------------------------------
Server listening on 5201
------------------------------------------------------------

默认端口为 5201​,你也可以通过 -p​ 指定其他端口:

iperf3 -s -p 8080

执行 iperf 客户端测试

在另一台机器上执行客户端命令:

iperf3 -c <服务器IP>

例如:

iperf3 -c 192.168.1.100

输出示例:

Connecting to host 192.168.1.100, port 5201
[  4] local 192.168.1.101 port 57342 connected to 192.168.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec  1.08 GBytes  9.28 Gbits/sec
...
[  4]  10.00-11.00 sec   1.10 GBytes  9.40 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-11.00  sec  11.8 GBytes   9.34 Gbits/sec    0             sender
[  4]   0.00-11.00  sec  11.8 GBytes   9.34 Gbits/sec              receiver

高级参数说明

参数 说明
-t <秒数> 设置测试持续时间,默认 10 秒
-i <间隔> 每隔多少秒显示一次统计信息
-b <速率> 指定目标带宽(适用于 TCP)
-u 使用 UDP 协议进行测试
-p <端口> 指定通信端口
-P <并发数> 并发连接数,提高测试准确性

示例命令

单次 TCP 测试(默认)

iperf3 -c 192.168.1.100

持续 30 秒的测试

iperf3 -c 192.168.1.100 -t 30

每 5 秒打印一次结果

iperf3 -c 192.168.1.100 -t 30 -i 5

多线程并发测试(4 个并发)

iperf3 -c 192.168.1.100 -P 4

UDP 测试(注意:不保证可靠性和顺序)

iperf3 -u -c 192.168.1.100 -b 1G

结果解读

典型输出字段含义如下:

字段 含义
Interval 时间区间
Transfer 总共传输的数据量
Bandwidth 实际带宽
Retr 重传次数(TCP)
Jitter 抖动(UDP)
Lost 丢包率(UDP)

️ 安全与注意事项

  • 防火墙设置:确保服务器的 5201​ 端口(或自定义端口)允许外部访问。
  • 网络隔离:不要在生产环境中随意暴露测试端口。
  • 权限控制:建议将 iperf3 -s​ 放入后台运行,并限制访问源 IP。

自动化脚本示例(Linux Shell)

#!/bin/bash

SERVER_IP="192.168.1.100"
DURATION=30

echo "Starting bandwidth test to $SERVER_IP for $DURATION seconds..."
iperf3 -c $SERVER_IP -t $DURATION -i 5

保存为 bandwidth_test.sh​ 并赋予执行权限:

chmod +x bandwidth_test.sh
./bandwidth_test.sh

参考资料


小结

iperf3​ 是一款强大而易用的网络性能测试工具,适合用于评估网络吞吐能力、检测瓶颈、验证网络配置是否合理等场景。掌握其基本用法和高级参数,能帮助你更好地管理和优化网络环境。

如果你喜欢这篇文章,欢迎分享给更多人 !


posted @ 2025-07-23 18:35  会bk的鱼  阅读(145)  评论(0)    收藏  举报