Linux系统凭借丰富的开源网络工具,成为网络流量分析的重要平台,用户可以通过多种命令行工具和图形化工具完成不同维度的流量分析工作,满足从基础监控到深度包解析的各类需求。

常用Linux网络流量分析工具介绍
1. iftop:实时流量监控工具
iftop可以实时显示网络接口的带宽使用情况,展示每个连接的上传和下载速率,适合快速查看当前网络的实时流量分布。它不需要复杂配置,安装后直接运行即可查看指定网卡的流量情况。
安装iftop的方式根据发行版不同有所区别,Debian/Ubuntu系统执行以下命令:
sudo apt update sudo apt install iftop -y
CentOS/RHEL系统执行以下命令:
sudo yum install epel-release -y sudo yum install iftop -y
运行iftop查看eth0网卡的流量:
sudo iftop -i eth0
输出结果中,左侧是源地址,右侧是目标地址,中间显示实时的上传下载速率,底部会统计总流量、峰值流量等信息。
2. tcpdump:数据包捕获工具
tcpdump是经典的命令行数据包分析工具,可以捕获经过指定网络接口的数据包,支持按协议、端口、IP等条件过滤,适合需要深入分析数据包内容的场景。
基本用法示例:捕获所有经过eth0网卡、端口为80的TCP数据包,保存到文件:
sudo tcpdump -i eth0 tcp port 80 -w http_traffic.pcap
常用过滤参数说明:
- -i:指定要监听的网络接口,不指定则默认监听第一个非回环接口
- port:过滤指定端口的流量
- host:过滤指定IP地址的流量,例如
host 192.168.0.1 - -w:将捕获的数据包保存到文件,后续可以用Wireshark等工具打开分析
- -c:指定捕获数据包的数量,达到数量后自动停止
3. Wireshark:图形化深度分析工具
Wireshark是功能强大的图形化网络协议分析工具,支持对捕获的数据包进行逐层解析,查看协议细节、数据包内容,Linux系统下也有对应的版本,适合需要可视化分析的场景。
Debian/Ubuntu系统安装Wireshark:
sudo apt install wireshark -y
启动Wireshark后选择要监听的网卡,即可实时捕获流量,也可以打开tcpdump生成的pcap文件进行分析。Wireshark支持强大的过滤语法,例如http.request.method == "GET"可以过滤所有HTTP GET请求。
实际分析场景示例
场景1:排查异常上传流量
当发现服务器有异常的上传流量时,可以用iftop先定位是哪个连接占用了带宽:
sudo iftop -i eth0 -P
参数-P会显示端口信息,找到上传速率异常的IP和端口后,用tcpdump捕获该连接的流量:
sudo tcpdump -i eth0 src host 异常源IP -w abnormal_upload.pcap
捕获一段时间后,用Wireshark打开pcap文件,分析上传的数据内容,判断是否为恶意流量。
场景2:统计HTTP请求流量分布
如果需要统计某段时间内HTTP请求的流量分布,可以用tcpdump捕获HTTP流量后,结合命令行工具统计:
# 捕获HTTP流量 sudo tcpdump -i eth0 tcp port 80 -c 1000 -w http.pcap # 用tshark统计请求域名分布,tshark是Wireshark的命令行版本 tshark -r http.pcap -T fields -e http.host | sort | uniq -c | sort -nr
上述命令会统计捕获到的HTTP请求中各个域名的请求次数,按次数从高到低排序,帮助分析流量主要来源。
工具选择建议
如果是需要快速查看实时流量,优先选择iftop;如果需要捕获数据包做后续分析,优先选择tcpdump;如果需要可视化解析数据包内容,优先选择Wireshark。实际工作中可以结合多个工具使用,提升分析效率。
| 工具名称 | 适用场景 | 优势 |
|---|---|---|
| iftop | 实时流量监控 | 轻量、无需配置、实时展示速率 |
| tcpdump | 数据包捕获、命令行过滤 | 灵活、支持复杂过滤规则、可保存数据包 |
| Wireshark | 深度包解析、可视化分析 | 支持协议逐层解析、图形化展示、过滤功能强大 |