【Linux 命令】 tcpdump

文章来源:tcpdump命令


1:语法
tcpdump [options] [expression]

2:功能
tcpdump输出特定network interface上满足expression条件的的包的内容。 可以用-w选项将包输入到文件。
也可以用-r参数指定已保存的包文件,不管如何只有满足expression条件的才会被处理。

若没有用-c参数指定捕包的个数,则会不停的捕包,直到用SIGINT中断(也就是CTRL+C)。

当tcpdump完成捕包后会报告一些计数:

  1. 47 packets captured            : tcpdump收到并处理的包的个数
  2. 88 packets received by filter  :取决于特定的操作系统,
  3. 17 packets dropped by kernel   :丢掉的包

3:输出格式
(1)Link level headers
如果-e选项各处了,则输出该格式。在以太网中,输出源和目的MAC/协议/包长度。
在FDDI网络中,输出frame control域/源和目的地址/包长度

(2)arp/arpa包

4:选项


  1. -A               以ASCII的方式打印packets
  2. -b               以ASDOT记号输出BGP包的AS号,
  3. -c count         捕到count个包后退出
  4. -e               以mac地址的形式输出
  5. -i interface     监听指定的端口,值为any表示捕全部interfaces的包
  6. -K               不检查IP, TCP或UDP的checksums
  7. -n               不将主机地址和端口转换到相应的名称
  8. -N               不打印主机的域名
  9. -p               不将interface设置成promiscuous模式
  10. -q               打印较少的协议信息,因此输出较短
  11. -r file          从文件中读包
  12. -t               不输出时间戳
  13. -tt              输出未格式化的时间戳
  14. -U               在-w参数指定时,每写一个包后,立即刷新缓存区
  15. -v               输出详细的信息
  16. -vv              更加详细
  17. -x               将包的数据以十六进制的形式输出
  18. -xx              包含mac头的信息
  19. -X               输出十六进制和对应的ASCII
  20. -XX              包含MAC头的信息
  21. -y datalinktype  仅捕捉数据链路层为datalinktype的类型的数据
  22. 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

猜你喜欢

转载自blog.csdn.net/xunmengpiaoyun/article/details/41544211