9月 212018
 

转载自:https://www.fujieace.com/linux/man/tcpdump-8.html

简介:

tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

名称:

tcpdump –  dump traffic on a network(转储网络上的流量);

描述:

Tcpdump打印出一个与布尔表达式匹配的网络接口上数据包内容的描述。它也可以用-w标志运行,这会导致它将分组数据保存到一个文件中供以后分析,和/或使用-r标志,这会导致它从保存的分组文件中读取,而不是读取分组从网络界面。在任何情况下,只有匹配表达式的数据包才会被tcpdump处理。

如果Tcpdump没有运行-c标志,它将继续捕获数据包,直到它被一个SIGINT信号(例如,通过输入中断字符,通常为control-C)或一个SIGTERM信号(通常由kill(1)命令); 如果使用-c 标志运行,它将捕获数据包,直到它被SIGINT或SIGTERM信号中断或指定的数据包已被处理。

当tcpdump完成捕获包时,它会报告计数:

  • 数据包“捕获”(这是tcpdump接收和处理的数据包数量);
  • (这个意思取决于你正在运行tcpdump的操作系统,可能在操作系统的配置方式上 – 如果在命令行中指定了某个过滤器,则在某些操作系统上无论它们是否与过滤器表达式匹配,即使它们与过滤器表达式匹配,无论tcpdump是否已经读取并处理它们,在其他OS上,它都只计算由过滤器表达式匹配的数据包,而不管tcpdump是否已经读取并处理了它们,而在其他操作系统上,它只计算由过滤器表达式匹配并由tcpdump处理的数据包;
  • 数据包“由内核丢弃”(如果操作系统将该信息报告给应用程序,则这是由于运行tcpdump的操作系统中的数据包捕获机制,由于缺少缓冲区空间而丢弃的数据包数量;如果不是,则报告为0)。

在支持SIGINFO信号的平台上,例如大多数BSD(包括Mac OS X)和Digital / Tru64 UNIX,它会在接收到SIGINFO信号(例如,通过输入“状态”字符,通常是control-T,尽管在一些平台上,比如Mac OS X,“status”字符默认没有设置,所以你必须使用stty(1)来设置它),并且将继续捕获数据包。

从网络接口读取数据包可能需要您有特殊的权限; 有关详细信息,请参阅pcap(3PCAP)手册页。读取保存的数据包文件不需要特殊的权限。

用法: