一、准备工作:选择工具与安装配置
Linux环境下,常用Sniffer工具包括tcpdump(命令行,轻量高效)、Wireshark(图形化,功能全面)、iftop(实时带宽监控)、nload(流量趋势展示)等。安装需根据系统类型选择对应命令:
sudo apt-get install tcpdump wireshark iftop nload(需确认是否安装libpcap依赖);sudo yum install tcpdump wireshark iftop nload。build-essential libncurses5-dev zlib1g-dev等)、克隆源码(git clone)、编译(make)、安装(sudo make install)。需注意,Sniffer需root权限才能捕获数据包,使用时需谨慎。二、启动Sniffer并捕获流量
tcpdump为例,指定网络接口(如eth0)开始捕获:sudo tcpdump -i eth0。此命令会显示经过该接口的所有数据包的简要信息(源/目标IP、端口、协议等)。sudo tcpdump -i eth0 host 192.168.1.100(仅捕获与指定IP相关的流量);sudo tcpdump -i eth0 port 80(仅捕获HTTP流量);sudo tcpdump -i eth0 icmp(仅捕获ICMP流量,如ping请求);sudo tcpdump -i eth0 tcp and src port 1024(捕获TCP协议且源端口大于1024的流量)。.pcap文件(Wireshark等工具的标准格式):sudo tcpdump -i eth0 -w capture.pcap。捕获时可限制文件大小(如-C 10表示每10MB分割一个文件)或持续时间(如-W 5表示保留最近5个文件)。三、流量分析与异常识别
tcpdump的输出可直接查看数据包头部信息(如源/目标IP、端口、协议类型),适合快速定位简单问题(如某IP是否大量发送数据包);iftop以实时排行榜形式显示带宽占用情况(按IP或端口排序),帮助识别带宽瓶颈;nload则展示接口的实时流入/流出流量及协议分布(如TCP、UDP占比)。Wireshark提供更直观的界面,支持协议解析(如HTTP请求/响应、DNS查询)、流量统计(如协议占比饼图、端口分布柱状图)、数据包详情(如TCP三次握手过程、HTTP请求头内容)。通过“过滤栏”输入表达式(如http.request.method == GET),可快速定位特定流量。SYN包(无对应ACK,可能是SYN Flood攻击)、非标准端口的大量流量(如端口8081的异常HTTP流量,可能是恶意软件通信)、高比例的ICMP流量(可能是Ping Flood攻击)。四、高级技巧与注意事项
tcpdump的-A(ASCII格式显示数据包内容)、-X(十六进制+ASCII格式)选项查看数据包负载(如HTTP请求的URL、邮件内容),或用Wireshark的“Follow TCP Stream”功能重组TCP会话,还原完整通信内容(如登录密码、传输文件)。tcpdump的-c选项设置捕获包数量(如sudo tcpdump -i eth0 -c 100 -w alert.pcap,捕获100个包后停止),结合脚本(如Shell、Python)分析捕获的文件,当发现异常(如包含“malware.exe”的流量)时,发送邮件或短信告警。tcpdump捕获时添加-s 0选项可捕获完整数据包,但会增加资源消耗,建议根据需求调整)。