TcpDump是Linux中强大的网络数据采集分析工具之一。根据使用者的定义对网络上的数据包进行截获的包分析工具。 基本上tcpdump的总的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

 下面举例说明:

 Tcpdump src host 192.168.0.1 and dst port not telnet

    过滤源主机192.168.0.1和目的端口不是telnet的报头。

      ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。

    例如:

    tcpdump ip src…    

   只过滤数据-链路层上的IP报头。

 

   tcpdump udp and src host 192.168.0.1

     只过滤源主机192.168.0.1的所有udp报头。

数据显示/输入输出

  TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:

-l 可以将数据重定向:

   如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中。

-n 不进行IP地址到主机名的转换:

  如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。

-nn 不进行端口名称的转换:

  上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23。

-N 不打印出默认的域名:

  还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet。

  -O 不进行匹配代码的优化。

  -t 不打印UNIX时间戳,也就是不显示时间。

  -tt 打印原始的、未格式化过的时间。

  -v 详细的输出,也就比普通的多了个TTL和服务类型。