一、准备工作:安装Sniffer工具
在Linux系统中,常用的Sniffer工具包括tcpdump(命令行)、Wireshark(图形化)、kyanos(基于eBPF)等。其中,tcpdump是基础且广泛使用的工具,几乎所有发行版均支持。安装步骤如下:
apt包管理器安装,命令为sudo apt update && sudo apt install tcpdump wireshark(tcpdump为核心工具,Wireshark为图形化辅助工具)。yum或dnf包管理器安装,命令为sudo yum install tcpdump wireshark或sudo dnf install tcpdump wireshark。sudo或root权限运行。二、配置网络接口
使用Sniffer前,需明确要监听的网络接口(如以太网eth0、无线网卡wlan0或所有接口any)。可通过以下命令查看系统可用接口:
sudo tcpdump -D
输出示例:
1. eth0
2. wlan0
3. lo
选择目标接口(如eth0)用于后续捕获。
三、基础数据包捕获配置
使用tcpdump捕获数据包的核心命令结构为:
sudo tcpdump -i <interface> [options] [filter]
-i <interface>:指定监听接口(如-i eth0);-c <count>:限制捕获的数据包数量(如-c 10仅抓10个包);-n:不解析主机名(显示IP地址,提升输出速度);-nn:不解析端口名称(如显示80而非http);-v/-vv/-vvv:增加输出详细程度(-v显示更多协议信息,-vvv更详细);-s <length>:设置每个数据包的捕获字节数(默认65535,可捕获完整包;若需节省空间,可设为96仅捕获头部);-w <filename>:将捕获的数据包保存到文件(如-w capture.pcap,用于后续分析);-r <filename>:读取已保存的抓包文件(如sudo tcpdump -r capture.pcap)。四、使用BPF过滤器精准捕获
BPF(Berkeley Packet Filter)是Sniffer的核心过滤语法,可精准定位所需流量,减少无效数据捕获。常见过滤场景及示例:
host 192.168.1.100),或仅捕获源/目标IP的流量(如src 192.168.1.100、dst 192.168.1.200);port 80捕获HTTP流量、port 443捕获HTTPS流量);icmp捕获ping请求、tcp捕获TCP流量、udp捕获UDP流量);and(与)、or(或)、not(非)组合多个条件(如host 192.168.1.100 and port 22捕获与该IP的SSH流量,src 192.168.1.100 and dst port 80捕获该IP发送至80端口的流量)。五、保存与读取抓包文件
-w参数将捕获的数据包保存到.pcap文件(如sudo tcpdump -i eth0 -w capture.pcap),便于后续离线分析;-r参数读取.pcap文件(如sudo tcpdump -r capture.pcap -nn),或用Wireshark打开(wireshark capture.pcap)进行图形化分析。六、进阶:使用图形化工具Wireshark
若需更直观的分析,可使用Wireshark(图形化协议分析器)。安装后,启动Wireshark并选择目标接口(如eth0),点击“开始捕获”即可实时查看数据包。Wireshark支持:
tcp.port == 80、ip.addr == 192.168.1.100);七、注意事项
-c)或带宽(如-s设置小包大小);