tcpdump 命令

一、tcpdump 命令选项

  • -A 以ASCII编码打印每个报文(不包括链路层的头),这对分析网页来说很方便
  • -c 最大抓取报文数
  • -C 用于判断用 -w 选项将报文写入的文件的大小是否超过这个值,如果超过了就新建文件(文件名后缀是1、2、3依次增加)
  • -D 列出当前主机的所有网卡编号和名称,可以用于选项 -i
  • -e 打印链路层的头
  • -i 监听主机的该网卡上的数据流,如果没有指定,就会使用最小网卡编号的网卡(在选项-D可知道,但是不包括环路接口),linux 2.2 内核及之后的版本支持 any 网卡,用于指代任意网卡
  • -l 如果没有使用 -w 选项,就可以将报文打印到 标准输出终端(此时这是默认)
  • -r 读取已经抓取到的报文文件
  • -S 打印 tcp 的序列号的绝对值,而不是相对值
  • -w 将抓取的报文写入到文件

二、tcpdump 表达式

主要有 3 种类型的表达式:

  • Type(类型)选项包括 host 、net和 port
  • Direction(方向)选项包括 src 和 dst 以及它们的组合
  • Proto(协议)包括 tcp 、udp 、ICMP 和 ah 等

三、高级用法

逻辑运算

  • AND(and 或 &)
  • OR(or 或 ||)
  • EXCEPT (not 或 !)

四、tcpdump示例

指定网络接口:

tcpdump -i ens33

通过端口过滤:

tcpdump port 8082

通过IP过滤:

tcpdump host 11.44.99.77

通过网络接口&端口&IP过滤:

tcpdump -i ens33 port 8082 and host 11.44.99.77

通过源地址和目标地址进行过滤:

tcpdump src 10.44.99.77

通过子网进行过滤:

tcpdump net 10.44.99.77/32

端口范围

tcpdump portrange 21-23

发送数据

echo 1 >> /dev/udp/HOST/PORT

原文地址:https://www.cnblogs.com/shangwei/p/14271826.html