iperf -s 和 iperf -c 网络性能测试工具学习
iperf -s 和 iperf -c 命令详解
iperf 是一款开源的 网络性能测试工具,用于测量 带宽、延迟、抖动 等网络指标。
其核心模式分为 服务端(iperf -s) 和 客户端(iperf -c),两者配合完成测试。
一、命令作用
| 命令 | 角色 | 功能 |
|---|---|---|
iperf -s |
服务端 | 启动监听,等待客户端连接并接收/发送测试数据。 |
iperf -c |
客户端 | 主动连接服务端,发起带宽测试(上传或下载)。 |
二、使用场景
1. 基础带宽测试
-
场景:测量两点间的 最大可用带宽(如内网传输速率、VPN 隧道性能)。
-
示例:
# 服务端(默认端口5001) iperf -s # 客户端(测试上传带宽) iperf -c <服务器IP> -t 20 # 测试20秒
2. 方向控制(上传/下载)
-
场景:明确测试 上行或下行带宽。
-
示例:
# 测试客户端→服务端(上传) iperf -c <服务器IP> -d # 默认双向测试 iperf -c <服务器IP> -R # 反向测试(服务端→客户端,即下载)
3. 多线程测试
-
场景:模拟高并发流量(如多用户访问)。
-
示例:
iperf -c <服务器IP> -P 4 # 使用4个并行线程
4. UDP 测试(延迟/丢包)
-
场景:测试实时应用(如视频会议、游戏)的 延迟和丢包率。
-
示例:
# 服务端 iperf -s -u # 启用UDP模式 # 客户端 iperf -c <服务器IP> -u -b 100M # 发送100Mbps UDP流量
5. 长期稳定性测试
-
场景:检测网络是否持续稳定(如IDC机房链路)。
-
示例:
iperf -c <服务器IP> -t 3600 # 持续测试1小时
三、常用参数
| 参数 | 作用 | 示例 |
|---|---|---|
-p |
指定端口(默认5001) | iperf -s -p 8888 |
-i |
结果间隔(秒) | iperf -c <IP> -i 2 |
-w |
TCP窗口大小(调优带宽) | iperf -c <IP> -w 256K |
-B |
绑定本地网卡 | iperf -c <IP> -B eth0 |
-l |
数据包大小(字节) | iperf -c <IP> -l 1024 |
四、输出结果解析
TCP 测试示例
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.25 GBytes 1.07 Gbits/sec
-
Transfer:传输数据总量。
-
Bandwidth:实际测得带宽(此处为 1.07Gbps)。
UDP 测试示例
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.123 ms 3/1000 (0.3%)
-
Jitter:抖动(延迟波动)。
-
Lost/Total:丢包率(此处 0.3%)。
五、典型问题排查
-
连接失败
-
检查防火墙是否放行端口(
5001默认):iptables -A INPUT -p tcp --dport 5001 -j ACCEPT -
确保服务端已启动:
netstat -tuln | grep 5001。
-
-
带宽低于预期
-
使用
-w调整 TCP 窗口大小:iperf -c <IP> -w 512K -
检查中间设备(交换机、路由器)是否限速。
-
-
UDP 丢包严重
-
降低发送速率:
-b 50M(从高到低逐步测试)。 -
检查网络拥塞或 QoS 策略。
-
六、总结
-
iperf -s:启动服务端,等待测试请求。 -
iperf -c:客户端发起测试,支持 TCP/UDP、多线程等。 -
核心用途:
-
测量 最大带宽、网络稳定性、QoS 策略验证。
-
定位 瓶颈(如网卡、交换机、ISP 限制)。
-
推荐组合命令:
# 服务端(后台运行)
iperf -s -p 8888 > /dev/null 2>&1 &
# 客户端(测试下载带宽)
iperf -c <服务器IP> -p 8888 -R -i 2 -t 30
以上命令来自DeepSeek教学

浙公网安备 33010602011771号