文章来源:tcpdump命令
1:语法
tcpdump [options] [expression]
2:功能
tcpdump输出特定network interface上满足expression条件的的包的内容。 可以用-w选项将包输入到文件。
也可以用-r参数指定已保存的包文件,不管如何只有满足expression条件的才会被处理。
若没有用-c参数指定捕包的个数,则会不停的捕包,直到用SIGINT中断(也就是CTRL+C)。
当tcpdump完成捕包后会报告一些计数:
- 47 packets captured : tcpdump收到并处理的包的个数
- 88 packets received by filter :取决于特定的操作系统,
- 17 packets dropped by kernel :丢掉的包
3:输出格式
(1)Link level headers
如果-e选项各处了,则输出该格式。在以太网中,输出源和目的MAC/协议/包长度。
在FDDI网络中,输出frame control域/源和目的地址/包长度
(2)arp/arpa包
4:选项
- -A 以ASCII的方式打印packets
- -b 以ASDOT记号输出BGP包的AS号,
- -c count 捕到count个包后退出
- -e 以mac地址的形式输出
- -i interface 监听指定的端口,值为any表示捕全部interfaces的包
- -K 不检查IP, TCP或UDP的checksums
- -n 不将主机地址和端口转换到相应的名称
- -N 不打印主机的域名
- -p 不将interface设置成promiscuous模式
- -q 打印较少的协议信息,因此输出较短
- -r file 从文件中读包
- -t 不输出时间戳
- -tt 输出未格式化的时间戳
- -U 在-w参数指定时,每写一个包后,立即刷新缓存区
- -v 输出详细的信息
- -vv 更加详细
- -x 将包的数据以十六进制的形式输出
- -xx 包含mac头的信息
- -X 输出十六进制和对应的ASCII
- -XX 包含MAC头的信息
- -y datalinktype 仅捕捉数据链路层为datalinktype的类型的数据
- expression 仅dump满足表达式的包
5:expression
expression由一个或多个primitives组成,
primitives由一个id (名字或数字)前有一个或多个qualifier组成
有三种类型的qualifier:
(1)type:指定id的类型,可能的type有:host, net, port, portrange。默认的host。
(2)dir:指定id之间的特定的传递方向,有:src, dst, src or dst, src and dst, addr1, addr2, addr3, addr4。默认为src or dst
(3)proto:指定特定的协议:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp and udp
利用and, or和not可以组成更复杂的primitives