工具简介
-
iPerf3
- 用途:网络性能测试工具,用于测量带宽、延迟、抖动、数据包丢失等指标。
- 场景:用于网络链路的吞吐量测试(TCP/UDP)。
- 模式:客户端-服务端模式。
- 安装:
sudo apt install iperf3 # Ubuntu/Debian sudo yum install iperf3 # CentOS/RHEL
-
iftop
- 用途:实时网络流量监控工具,用于观察网络接口上数据流量的上下行情况。
- 场景:用于诊断流量异常、实时观察网络连接。
- 安装:
sudo apt install iftop # Ubuntu/Debian sudo yum install iftop # CentOS/RHEL
-
两者关系:
- iPerf3 用于主动生成网络流量以测试网络性能。
- iftop 用于实时监控网络流量变化,观察是否符合预期或定位异常。
iPerf3 使用案例
TCP 测试
-
启动服务端(监听默认端口 5201):
在目标机器上运行:iperf3 -s
-
启动客户端(指定服务端 IP 地址):
在另一台机器上运行:iperf3 -c <server_ip>
- 结果示例:
[ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 112 MBytes 94.2 Mbits/sec
- 结果示例:
-
指定测试时间(例如 30 秒):
iperf3 -c <server_ip> -t 30
UDP 测试
-
服务端监听(自动适配 UDP 测试):
iperf3 -s
-
客户端启动 UDP 测试:
iperf3 -c <server_ip> -u -b 50M
-u
:使用 UDP 协议。-b 50M
:设置带宽为 50 Mbps。
双向带宽测试
在客户端执行:
iperf3 -c <server_ip> --bidir
示例场景
假设你在配置一个 1Gbps 的链路,需要确认其实际吞吐量是否达标:
- 使用 iPerf3 测试带宽,观察是否接近 1Gbps。
- 用
iftop
实时监控服务器流量,确认是否有其他干扰流量。
iftop 使用案例
基本命令
-
监控默认网卡流量:
sudo iftop
- 界面显示当前上下行流量的实时数据。
-
指定网卡:
sudo iftop -i eth0
-
显示指定主机的流量:
sudo iftop -F 192.168.1.1/24
-F
:限制监控的子网范围。
过滤流量
-
只显示与某 IP 通信的流量:
sudo iftop -f 'host <IP_ADDRESS>'
-
过滤特定端口的流量:
sudo iftop -f 'port 5201'
-
监控 TCP 流量:
sudo iftop -f 'tcp'
查看统计信息
- 按下键盘 T 键:切换显示流量的方向(发出/接收)。
- 按下 H 键:隐藏/显示帮助菜单。
示例场景
假设你怀疑某台服务器占用大量带宽,可以:
- 使用 iftop 查看与该服务器相关的流量上下行,确认数据是否异常。
- 如果发现占用流量的端口是 iPerf3 的测试端口,则可以断定是测试流量。
综合案例:iPerf3 与 iftop 配合使用
场景:验证网络性能测试是否准确
-
设置 iPerf3 测试环境:
- 服务端运行:
iperf3 -s
- 客户端运行:
iperf3 -c <server_ip> -t 60
- 服务端运行:
-
实时监控流量: 在服务端运行:
sudo iftop -i eth0 -f 'port 5201'
- 确认流量的上下行是否与 iPerf3 的带宽结果一致。
- 如果存在异常流量,可以快速定位原因(例如,其他应用占用带宽)。
-
分析结果:
- iPerf3 输出的带宽接近链路带宽上限(例如 950 Mbps)。
- iftop 界面显示的实际流量数据吻合,说明测试链路正常。
总结:iPerf3 和 iftop 的区别与协作
特性 | iPerf3 | iftop |
---|---|---|
主要用途 | 测试网络性能(带宽/延迟) | 实时监控网络流量 |
数据来源 | 自主生成流量 | 被动采集流量 |
适用场景 | 验证网络性能、带宽瓶颈 | 诊断网络问题、发现异常流量 |
关系 | 主动生成流量供 iftop 监控对比 | 可用于验证 iPerf3 的测试流量是否正常分布 |
两者结合可以高效测试和监控网络性能,同时定位潜在的问题和瓶颈。