Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX#] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
[ -Q in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ]
[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
这是-h出来的所有参数,下面解释一下常用的几个吧, 谷歌翻译自http://www.tcpdump.org/manpages/tcpdump.1.html
-a: 将网络地址和广播地址转变成名字
-A: 以ASCII码的方式显示每一个数据包(不包括链路层头部信息), 方便在抓取网页时查看数据
-b: 以ASDOT表示法而不是ASPLAIN表示法在BGP数据包中打印AS号
-d: 将已编译的数据包匹配代码以人类可读形式转储到标准输出并停止。
-D: 等同于--list-interfaces, 打印系统上可用的网络接口列表以及tcpdump可以捕获数据包的列表。对于每个网络接口,都会打印一个编号和一个接口名称,可能后跟接口的文本描述。可以将接口名称或编号提供给-i标志以指定要捕获的接口。(对于linux系统可以直接用ifconfig -a)
-e: 打印链路层的头部, 例如Ethernet和IEEE 802.11协议中的MAC地址
-h:
--help
帮助--version
打印tcpdump 和libpcap的版本号
-I:
--immediate-mode
在immediate mode下捕包. 这个模式下, 数据包一到达就会被送给tcpdump. 当在terminal中打印包而不是在文件或者管道中时默认开启此模式.
--monitor-mode
使接口处于monitor mode中. 只支持某些操作系统上的IEEE 802.11 Wi-Fi接口. 可以通过iwconfig eth0 mode managed改回来.
-n: 不要将地址(即主机地址,端口号等)转换为名称
-N: 不要打印主机的FQDN(fully qualified domain name)。例如tcpdump将打印“nic”而不是“nic.ddn.mil”
-O:
-p:
-q: quick output, 输出更简洁的信息
-R:
-S:
-t: 不打印时间
-tt: 打印时间戳(自 January 1, 1970, 00:00:00, UTC以来的秒数)
-ttt: 打印当前和上一个包之间的时间差(单位是微秒)
-tttt: 打印更详细的时间戳(有日期)
-ttttt: 打印当前和第一个包之间的时间差(单位是微秒)
-u:
-U:
-v: 解析和打印时,产生(稍微多一些)详细的输出。例如,打印IP包中的生存时间,标识,总长度和选项。还启用其他数据包完整性检查,例如验证IP和ICMP头校验和。 使用-w选项写入文件时,每秒报告一次捕获的数据包数量。
-vv: 更详细
-vvv: 更更详细
-x: 解析和打印时,除了打印每个数据包的标题外,还要以十六进制格式打印每个数据包的数据(减去其链接层头部)。整个数据包或snaplen字节中的较小者将被打印。请注意,这是整个链路层数据包,因此对于填充的链接层(例如以太网),当高层数据包比所需的填充长度短时,填充字节也将被打印。
-xx: 解析和打印时,除了打印每个数据包的标题外,还要以十六进制格式打印每个数据包的数据,包括其链接层头部。
-X: 解析和打印时,除了打印每个数据包的标题外,还要以十六进制和ASCII格式打印每个数据包的数据(减去链接层头部)。这对分析新协议非常方便。
-XX: 解析和打印时,除了打印每个数据包的标题外,还要以十六进制和ASCII格式打印每个数据包的数据,包括其链接层头部。
-#: 在每个包的开头加上序号
[ -B size ] 将操作系统捕获缓冲区大小设置为buffer_size,单位为KiB(1024字节)。
[ -c count ] 在捕获指定数量的数据包之后退出
[ -C file_size ] 在将原始数据包写入保存文件之前,检查该文件当前是否大于file_size,如果是,关闭当前保存文件并打开一个新文件。第一个保存文件后的保存文件将具有用-w标志指定的名称,后面跟着一个数字,从1开始并继续向上。 file_size的单位是1,000,000字节(不是1,048,576字节)
[ -E algo:secret ]
[ -F file ] 使用文件作为过滤器表达式的输入. 在命令行上给出的附加表达式将被忽略.
[ -G seconds ]
[ -i interface ] 监听指定的端口
[ -j tstamptype ]
[ -M secret ]
[ -Q in|out|inout ] 选择只捕获某个方向的包
[ -r file ] 从文件中读取
[ -s snaplen ] Snarf从每个数据包中取出数据字节,而不是默认的262144字节。在输出中用``[| proto]''指示由于快照有限而截断的数据包,其中proto是发生截断的协议级别的名称。 请注意,拍摄较大的快照既增加了处理数据包所需的时间,也有效地减少了数据包缓冲量。这可能会导致数据包丢失。还要注意,拍摄较小的快照将丢弃来自传输层以上协议的数据,这会丢失可能很重要的信息。例如,NFS和AFS请求和回复非常大,如果选择了过短的快照长度,则很多细节将不可用。 如果您需要将快照大小降至默认值以下,则应将snaplen限制为捕获您感兴趣的协议信息的最小数目。将snaplen设置为0会将其设置为默认值262144,以便与最近较旧的tcpdump的版本适配。
[ -T type ] 由“expression”选择的强制数据包被解释为指定的类型。
[ -V file ] 从文件中读取文件列表, 如果文件是'-'的话则使用标准输入
[ -w file ] 将捕获到的数据包直接输出到文件, 如果文件是'-'的话则使用标准输入
[ -W filecount ] 输出的最大文件数, 当超过时将会覆盖之前的
[ -y datalinktype ]
[ -z postrotate-command ]
[ -Z user ]
[ expression ] 过滤表达式, 格式参见http://www.tcpdump.org/manpages/pcap-filter.7.html