以下是使用Linux Sniffer进行协议分析的核心步骤,结合工具特性与操作实践:
sudo apt-get install tcpdump(Debian/Ubuntu)或 sudo yum install tcpdump(CentOS/RHEL)。sudo apt-get install wireshark(Debian/Ubuntu)或 sudo yum install wireshark-gnome(CentOS/RHEL)。sudo tcpdump -i eth0(eth0为网卡名,可通过ifconfig查看)。sudo tcpdump -i eth0 -w capture.pcap(后续用Wireshark分析)。sudo tcpdump -i eth0 port 80。sudo tcpdump -i eth0 udp port 53。sudo tcpdump -i eth0 src 192.168.1.1 and tcp port 443(源IP+协议+端口)。.pcap文件,查看协议分层(如以太网帧、IP包、TCP段)、源/目的地址、端口、协议字段(如HTTP请求方法、DNS查询类型)。
http.request.method == "GET",查看请求头和响应状态码。-A:以ASCII格式显示数据包内容(适合查看HTTP明文)。-X:同时显示十六进制和ASCII格式。tcpdump -r capture.pcap -nn -A | grep "GET":提取HTTP GET请求。-c参数)或使用过滤器减少负载。tcpdump抓包,复杂分析用Wireshark;自动化需求可结合Sniff Master等工具。| 场景 | 命令示例 |
|---|---|
| 抓取HTTP流量 | sudo tcpdump -i eth0 port 80 -w http.pcap |
| 解析DNS请求 | sudo tcpdump -i eth0 udp port 53 -A |
| 过滤特定IP流量 | sudo tcpdump -i eth0 src 192.168.1.100 |
| 查看TCP三次握手 | 用Wireshark打开.pcap,过滤tcp.flags.syn == 1并查看序列号变化 |