Ubuntu Sniffer带宽测试与监控实操
一、概念澄清与总体思路
- Sniffer(嗅探器)如 tcpdump、Wireshark/tshark 的职责是捕获与分析数据包,它们可以告诉你“此刻有多少数据在流动、从哪到哪、什么协议”,但并不直接给出“端到端可用带宽”的数值。
- 要得到带宽/吞吐量,常用两类方法:
- 主动测试:在两台主机间跑流量生成与测量工具(如 iperf3),得到链路可达带宽、抖动、丢包等。
- 被动观测:用嗅探器或接口统计工具观察一段时间内的字节数变化,计算出平均速率(适合定位“谁在占用带宽”和“占了多少”)。
二、主动带宽测试 iperf3(推荐)
- 场景:测量两台机器(例如 Ubuntu 客户端 与 服务器/对端)之间的TCP/UDP 吞吐。
- 步骤:
- 在对端启动服务器
- 安装:sudo apt-get install iperf3
- 启动:iperf3 -s
- 在 Ubuntu 客户端发起测试(示例为 TCP,持续 30 秒)
- 安装:sudo apt-get install iperf3
- 命令:iperf3 -c 192.0.2.10 -t 30
- 关注结果中的 Sender/Receiver 吞吐(Mbits/sec)。
- 可选:UDP 测试(带带宽上限与抖动/丢包)
- 服务端:iperf3 -s
- 客户端:iperf3 -c 192.0.2.10 -u -b 100M -t 20
- 关注 Jitter、Lost/Total Datagrams。
- 说明:主动测试能给出链路“上限”与质量指标,是评估带宽最直观的方法。
三、被动观测带宽 iftop nload nethogs bmon vnstat
- 这类工具不主动发包,适合“此刻谁在吃带宽、接口速率多少、历史用了多少”。
- 快速上手:
- iftop(按连接实时速率)
- 安装:sudo apt-get install iftop
- 运行:sudo iftop -i eth0
- 交互:P 显示端口,S/D 聚焦源/目的,B 切换单位。
- nload(按接口入/出实时曲线)
- 安装:sudo apt-get install nload
- 运行:nload eth0(左右键切换接口)
- nethogs(按进程占用带宽)
- 安装:sudo apt-get install nethogs
- 运行:sudo nethogs eth0
- bmon(接口统计与图形)
- 安装:sudo apt-get install bmon
- 运行:bmon
- vnstat(历史流量统计)
- 安装:sudo apt-get install vnstat
- 运行:vnstat;按接口:vnstat -i eth0
- 适用:快速定位异常连接/进程、观察接口实时速率、查看历史使用趋势。
四、用 tcpdump 估算吞吐的实操步骤
- 思路:在嗅探端抓取一段时间内的流量,统计总字节数,用“字节数/时间”换算为速率。
- 示例(估算某接口的入站平均速率,抓取 10 秒):
- 捕获
- sudo tcpdump -i eth0 -w capture.pcap -G 10 -W 1
- 说明:-G 10 每 10 秒滚动一个文件,-W 1 只保留 1 个文件,便于计算。
- 统计
- 方法 A(精确统计捕获文件):capinfos -T capture.pcap
- 读取 “Capture duration” 与 “Data size (bytes)”,速率 ≈ Data size / Duration。
- 方法 B(命令行):
- tcpdump -r capture.pcap -q -nn | awk ‘{bytes += $NF} END {print “Bytes:”, bytes; system(“date”)}’
- 速率 ≈ Bytes / 10 秒(按实际抓包时长替换)。
- 提示:
- 若只想看某方向/某主机/某端口,加过滤表达式,例如:
- 仅某主机:sudo tcpdump -i eth0 -w cap.pcap ‘host 192.0.2.10’
- 仅某端口:sudo tcpdump -i eth0 -w cap.pcap ‘port 80’
- 该方法得到的是“被嗅探接口上观测到的应用层有效载荷+协议开销”的速率,适合定位与对比,不等同于 iperf3 的端到端极限带宽。
五、结果解读与注意事项
- 结果解读
- iperf3:给出端到端吞吐(Mbits/sec)、UDP 的抖动与丢包,适合评估链路能力。
- iftop/nload/nethogs:反映“此刻/某接口/某进程”的实时速率,便于排查异常占用。
- tcpdump 估算:验证某段时间真实流量构成与量级,可与 iperf3 结果交叉印证。
- 合规与安全
- 嗅探/抓包可能触及隐私与合规要求,务必在自有网络或取得授权的环境中使用,避免对生产业务造成干扰。