tcpdump格式: [options][not]proto dir type
options:-nn/-vvv/-xx/-i/-e等
proto:tcp/udp/arp/ip/ether/icmp等
type:host/net/port/portrange等
portrange: 例如80:1024
tcpdump -w file.pcap //保存文件
tcpdump -r file.pcap //读取文件
tcpdump -V text.txt //把保存的文件名称列表放到这个文件中,用-V来打印这几个文件具体的pcap内容
tcpdump -c count //捉几个包
tcpdump -i //指定网卡
tcpdump -n //把输出改名对应的ip和端口,默认是主机名。
tcpdump -Q //指定捉包方向,in流入,out流出,inout出入都捉
tcpdump -e //捉包含二层链路层的数据包
tcpdump -q //快速打印输出。
tcpdump -x -xx -xxx //越多x越详细
tcpdump -v -vv -vvv //越多v越详细
-v //输出一个稍微详细的信息,例如在IP 包中可以包括TTL 和服务类型的信息
-vv // 输出详细的报文信息
-a //将网络地址和广播地址转换成名字
-d //将匹配信息包的代码以能够理解的汇编格式给出
-dd //将匹配信息包的代砃以C 语言程序段的格式给出
-ddd //将匹配信息包的代码以十进制的形式给出
-f //将外部的Internet 地址以数字的形式打印
-1 //使标准输出变为缓冲行形式
-t //在输出的每一行不打印时间戳
-F //从指定的文件中读取表达式,忽略其他的表达式
-T //将监听到的包直接解释为指定的报文类型,常见的类型有RPC (远程过程调用)和
SNMP (简单网络管理协议)
类型关键字主要包括host 、net 、port 。例如:
• host X. Y.Z.2 指明X.Y.Z.2 是一台主机。
• net X.Y.Z.O 指明X.Y.Z.O 是一个网络地址。
• port 23 指明端口号是23 。如果没有指定类型,默认的类型是host 。
- 传输方向关键字
确定传输方向的关键字主要包括src 、dst 、dst or src 、dst and src, 这些关键字指明监听的
通信内容传输方向。例如:
• src X.Y.Z.2 指明IP 包中源地址是X.Y.Z.2 。
• dst net X.Y.Z.O 指明目的网络地址是X.Y.Z.O 。
• 如果没有指明方向关键字,则默认是dst or src 关键字。
关键字有Gateway 、Broadcast 、Less 、和Greater 。
此外, TCPDump 还提供三种逻辑运算功能,包括非运算“not" “!”,与运算“and" “&&”,
或运算“or" “II” 。通过这些关键字及逻辑运算符,可以构成灵活的过滤规则。
(1) 截获X.Y.Z.61 主机收到的和发出的所有数据包,使用如下命令:
tcpdump host X.Y.Z.61
(2) 截获主机X.Y.Z.1 和主机X.Y.Z.2 或X.Y.Z.3 的通信(在命令行中使用括号时, 一定要
在括号前应用转义字符”\”),使用如下命令:
tcpdump host X.Y.Z.1 and (X.Y.Z.2 or X.Y.Z.3 )
(3) 监听主机X.Y.Z.1 与除了主机X.Y.Z.2 之外的其他所有主机通信的IP 包,使用如下
命令:
tcpdump ip host X.Y.Z.l and! X.Y.Z.2
(4) 获取主机X.Y.Z.1 接收或发出的Telnet 包,使用如下命令:
tcpdump tcp port 23 host X.Y.Z.l