iperf -s 和 iperf -c 网络性能测试工具学习

iperf -s 和 iperf -c 命令详解

iperf 是一款开源的 网络性能测试工具,用于测量 带宽、延迟、抖动 等网络指标。
其核心模式分为 服务端(iperf -s) 和 客户端(iperf -c),两者配合完成测试。


一、命令作用

命令角色功能
iperf -s 服务端 启动监听,等待客户端连接并接收/发送测试数据。
iperf -c 客户端 主动连接服务端,发起带宽测试(上传或下载)。

二、使用场景

1. 基础带宽测试

  • 场景:测量两点间的 最大可用带宽(如内网传输速率、VPN 隧道性能)。

  • 示例:

    bash
     
    # 服务端(默认端口5001)
    iperf -s
    
    # 客户端(测试上传带宽)
    iperf -c <服务器IP> -t 20  # 测试20秒

2. 方向控制(上传/下载)

  • 场景:明确测试 上行或下行带宽。

  • 示例:

    bash
     
    # 测试客户端→服务端(上传)
    iperf -c <服务器IP> -d  # 默认双向测试
    iperf -c <服务器IP> -R  # 反向测试(服务端→客户端,即下载)

3. 多线程测试

  • 场景:模拟高并发流量(如多用户访问)。

  • 示例:

    bash
     
    iperf -c <服务器IP> -P 4  # 使用4个并行线程

4. UDP 测试(延迟/丢包)

  • 场景:测试实时应用(如视频会议、游戏)的 延迟和丢包率。

  • 示例:

    bash
     
    # 服务端
    iperf -s -u  # 启用UDP模式
    
    # 客户端
    iperf -c <服务器IP> -u -b 100M  # 发送100Mbps UDP流量

5. 长期稳定性测试

  • 场景:检测网络是否持续稳定(如IDC机房链路)。

  • 示例:

    bash
     
    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 测试示例

bash
 
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-10.0 sec  1.25 GBytes  1.07 Gbits/sec
  • Transfer:传输数据总量。

  • Bandwidth:实际测得带宽(此处为 1.07Gbps)。

UDP 测试示例

bash
 
[ 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%)。


五、典型问题排查

  1. 连接失败

    • 检查防火墙是否放行端口(5001默认):

      bash
       
      iptables -A INPUT -p tcp --dport 5001 -j ACCEPT
    • 确保服务端已启动:netstat -tuln | grep 5001

  2. 带宽低于预期

    • 使用 -w 调整 TCP 窗口大小:

      bash
       
      iperf -c <IP> -w 512K
    • 检查中间设备(交换机、路由器)是否限速。

  3. UDP 丢包严重

    • 降低发送速率:-b 50M(从高到低逐步测试)。

    • 检查网络拥塞或 QoS 策略。


六、总结

  • iperf -s:启动服务端,等待测试请求。

  • iperf -c:客户端发起测试,支持 TCP/UDP、多线程等。

  • 核心用途:

    • 测量 最大带宽、网络稳定性、QoS 策略验证。

    • 定位 瓶颈(如网卡、交换机、ISP 限制)。

推荐组合命令:

bash
 
# 服务端(后台运行)
iperf -s -p 8888 > /dev/null 2>&1 &

# 客户端(测试下载带宽)
iperf -c <服务器IP> -p 8888 -R -i 2 -t 30

以上命令来自DeepSeek教学
posted @ 2025-07-30 15:37  zhg1016  阅读(190)  评论(0)    收藏  举报