iperf 命令使用详解
iperf
是一款用于测量网络带宽的开源工具,支持 TCP 和 UDP 协议的性能测试。它通过客户端和服务端之间的数据传输,统计带宽、延迟抖动、丢包率等网络性能指标。以下是 iperf
的详细使用说明:
一、安装 iperf
1. Linux 系统
Debian/Ubuntu:
sudo apt update && sudo apt install iperf3
CentOS/RHEL:
sudo yum install epel-release && sudo yum install iperf3
2. macOS
brew install iperf3
3. Windows
从 iPerf 官网 下载预编译的二进制文件,解压后通过命令行运行。
二、iperf 命令格式
iperf 分为 服务端 和 客户端,需分别启动。
1. 启动服务端
iperf3 -s # 默认监听 5201 端口
常用参数:
-p <端口>
:指定监听端口(如 -p 6000
)。
-D
:以守护进程(后台)模式运行。
2. 启动客户端
iperf3 -c <服务端IP> # 默认测试 TCP 带宽
常用参数:
-p <端口>
:指定服务端端口(与服务端一致)。
-t <秒>
:测试时长(默认 10 秒)。
-i <秒>
:输出结果的时间间隔(如 -i 1
每秒显示一次)。
-u
:使用 UDP 协议测试(默认 TCP)。
-b <带宽>
:指定 UDP 测试的目标带宽(如 -b 100M
表示 100Mbps)。
-R
:反向模式(服务端发送数据到客户端,用于测试下行带宽)。
-P <线程数>
:并行连接数(模拟多线程传输)。
三、iperf 使用示例
1. 测试 TCP 带宽(默认)
服务端:
iperf3 -s -p 6000
客户端(测试上传带宽):
iperf3 -c 192.168.1.100 -p 6000 -t 30 -i 2
输出结果示例:
[ ID] Interval Transfer Bitrate
[ 4] 0.00-30.00 sec 1.25 GBytes 358 Mbits/sec
2. 测试 UDP 带宽
服务端:
iperf3 -s -p 6000
客户端(测试 UDP 带宽和丢包率):
iperf3 -c 192.168.1.100 -p 6000 -u -b 500M -t 20
输出结果示例:
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 4] 0.00-20.00 sec 1.16 GBytes 501 Mbits/sec 0.123 ms 0/870215 (0%)
3. 测试下行带宽(反向模式)
客户端(添加 -R 参数):
iperf3 -c 192.168.1.100 -p 6000 -R
4. 多线程测试(并发连接)
客户端(使用 -P 参数):
iperf3 -c 192.168.1.100 -p 6000 -P 4
四、结果解读
TCP 测试关键指标
Transfer:传输的数据总量(如 1.25 GBytes
)。
Bitrate:平均带宽(如 358 Mbits/sec
)。
Retr:重传次数(若过高,可能网络不稳定)。
UDP 测试关键指标
Jitter:延迟抖动(单位:毫秒,越低越好)。
Lost/Total Datagrams:丢包率(如 0/870215
表示无丢包)。
五、iperf 常见问题
iperf3: error - unable to connect to server: Connection refused
这表示服务器未开启,请确保服务器已经正确启动。
iperf3: error - unable to connect to server: No route to host
这表示服务器防火墙拦截了连接,请检查服务器防火墙设置。
是防火墙默认关闭了 icmp,需要将客户端和服务端的防火墙注释掉:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
六、总结
iperf 是网络性能测试的黄金工具,适合验证带宽、排查网络瓶颈。重点掌握 -s(服务端)、-c(客户端)、-u(UDP)、-R(反向模式)等参数。结合多线程(-P)和反向模式,可全面评估网络性能。
iperf 原理:iperf 网络性能测试工具原理详解