工具地址
工具介绍
这是tcpdump(一个强大的命令行数据包分析器)和 libpcap(一个用于网络流量捕获的可移植 C/C++ 库) 的主页。
搭建流程
下载安装
使用方法
命令
命令 |
解释 |
tcpdump -i <INTERFACE> |
捕获特定网络接口上的数据包 |
tcpdump -w <FILE> |
将捕获的数据包写入文件 |
tcpdump -r <FILE> |
从文件读取捕获的数据包 |
tcpdump -c <COUNT> |
捕获特定数量的数据包 |
tcpdump -n |
不解析 IP 地址 |
tcpdump -nn |
不解析 IP 地址,也不解析协议号 |
tcpdump -v |
详细显示,详细程度可以通过 -vv 和 -vvv 增加 |
tcpdump host <IP>/<HOSTNAME> |
按 IP 地址或主机名过滤数据包 |
tcpdump src host <IP> |
根据特定源主机过滤数据包 |
tcpdump dst host <IP> |
根据特定目标主机过滤数据包 |
tcpdump port <PORT_NUMBER> |
按端口号过滤数据包 |
tcpdump src port <PORT_NUMBER> |
按指定源端口号过滤数据包 |
tcpdump dst port <PORT_NUMBER> |
按指定目标端口号过滤数据包 |
tcpdump <PROTOCOL> |
按协议过滤数据包 |
tcpdump -q |
快速安静,简短的数据包信息 |
tcpdump -e |
包括 MAC 地址 |
tcpdump -A |
以 ASCII 编码打印数据包 |
tcpdump -xx |
以十六进制格式显示数据包 |
tcpdump -X |
以十六进制和 ASCII 格式显示数据包 |
逻辑操作符 |
解释 |
and |
捕获两个条件都成立的数据包 |
or |
捕获任一条件成立时的数据包 |
not |
捕获不满足条件的数据包 |
关键字 |
解释 |
greater <LENGTH> |
过滤长度大于或等于指定长度(以字节为单位)的数据包 |
less <LENGTH> |
过滤长度小于或等于指定长度(以字节为单位)的数据包 |
表达式 |
解释 |
proto[expr:size] |
proto 指协议,expr 表示字节偏移量,size 表示字节数(可选) |
tcp[tcpflags] |
TCP 标志字段 |
参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| tcpdump -i <INTERFACE>
tcpdump -w <FILE>
tcpdump -c <COUNT>
tcpdump host <IP>/<HOSTNAME>
tcpdump port <PORT_NUMBER>
tcpdump <PROTOCOL>
greater <LENGTH>
proto[expr:size]
tcp[tcpflags]
|
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| tcpdump -i eth0 -c 50 -v
tcpdump -i wlo1 -w data.pcap
tcpdump -i any -nn
tcpdump -i any tcp port 22
tcpdump -i wlo1 udp port 123
tcpdump -i eth0 host example.com and tcp port 443 -w https.pcap
tcpdump host 1.1.1.1 and tcp
tcpdump udp or icmp
tcpdump not tcp
ether[0] & 1 != 0
ip[0] & 0xf != 5
tcpdump "tcp[tcpflags] == tcp-syn"
tcpdump "tcp[tcpflags] & tcp-syn != 0"
tcpdump "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"
|