离线分析的前提是有可分析的数据包捕获文件(通常为.pcap或.pcapng格式)。若尚未捕获数据,可使用dumpcap先保存流量:
sudo dumpcap -i <接口名> -w <输出文件名>.pcap
例如,捕获eth0接口的所有流量并保存为capture.pcap:
sudo dumpcap -i eth0 -w capture.pcap
若需捕获特定流量(如HTTP),可添加BPF过滤器:
sudo dumpcap -i eth0 -w http_traffic.pcap 'tcp port 80'
注意:捕获文件需保存在安全路径,便于后续读取。
Wireshark是dumpcap的配套图形化工具,适合直观分析数据包。操作步骤如下:
File→Open,选择生成的.pcap文件。http.request查看HTTP请求、tcp.port == 443查看HTTPS流量、ip.addr == 192.168.1.100查看特定IP的流量),快速定位目标流量。Details面板会展开该数据包的协议分层结构(如以太网帧、IP头、TCP头、应用层负载),可逐层查看各字段值(如源/目的IP、端口、HTTP方法)。Statistics,可选择Conversations(会话统计)、Endpoints(端点统计)、IO Graphs(流量趋势图)等,了解网络流量模式(如带宽占用、高频通信主机)。若偏好命令行,可使用tshark(Wireshark的命令行版本)进行高效分析。常见用法如下:
tshark -r <文件名>.pcap -c 10 # 显示文件前10个数据包
tshark -r capture.pcap -Y "http" # 提取所有HTTP流量
tshark -r capture.pcap -Y "http.request" -T fields -e frame.number -e ip.src -e ip.dst -e http.host -e http.request.method -e http.request.uri
该命令会输出HTTP请求的帧号、源IP、目的IP、主机名、请求方法、URI,便于批量分析。tshark -r capture.pcap -qz io,phs # 生成IO统计报告(按协议分层)
注意:-r指定输入文件,-Y为显示过滤器(类似Wireshark的过滤语法),-T fields指定输出字段,-e指定字段名。
root权限(使用sudo),避免权限不足导致无法访问接口或文件。gzip压缩.pcap文件)。