tcpdump使用方法介绍

tcpdump是一个网络抓包工具,依赖于libpcap实现。libpcap是一个网络抓包库,支持ether,fddi,tr,wlan,ip,ip6,arp,rarp,decnet,tcp和udp协议。 tcpdump的基本是用方法为: [source,shell] ---- tcpdump options expression ---- options指定程序运行选项,expression是一个逻辑表达式,只抓取满足expressionn表达式的包。例如`tcpdump -i eth0 tcp and host 192.168.1.101`抓取eth0接口到192.168.1.101主机的所有tcp包。`-i eth0`是运行选项,`tcp and host 192.168.1.101`是表达式,表示抓取所有到192.168.1.101主机的tcp包。tcpdump支持的详细参数可参考`man tcpdump`,表达式的详细信息可参考`man pcap-filter`。 == 常用的选项 -A:: 采用ASCII码打印出包内容,抓取网页时很方便。 -F file:: 使用file文件中的内容作为表达式,命令行中的表达式将被忽略。 -i interface:: 要抓取的网络接口,如果未指定,则使用序号最小的接口,如eth0。也可以使用any来使用任意接口。 -l:: 设置stdout的输出模式为行缓冲,当想一边抓包一遍查看数据的时候有用。如`tcpdump -l | tee dat`和`tcpdump -l dat & tail -f dat`。 -e:: 打印数据链路层包头。 -Q direction:: 设置要抓取发送还是接收的数据,可能的值为in,out和inout。 -r file:: 从文件中读取数据包(有tcpdump -w生成,或其他pcap兼容格式)。 -v:: -vv:: -vvv:: 打印详细信息。 -w file:: 将原始包信息输出到文件中,之后可以通过-r来打印。 -x:: 除了打印包头,同样以十六进制方式打印包内容,不包括链路层的包头。 -xx:: 除了打印包头,同样以十六进制方式打印包内容。 -X:: 除了打印包头,同样以十六进制和ASCII码方式打印包内容,不包括链路层的包头。 -XX:: 除了打印包头,同样以十六进制和ASCII码方式打印包内容。 == 表达式语法…