常用命令选项

  • -n 不解析域名,直接显示 IP
  • -i 指定网卡
  • -w 抓取的包写入到文件. 方便wireshare分析
  • -s0 : tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用 -s numbernumber 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。

过滤器

Host 过滤器

  1. -- 抓去机器host192.168.52.101package
  2. tcpdump host 192.168.52.101 (所有192.168.52.101发出和收到的包)
  3. --src 代表源头
  4. --dst 代表目标
  5. tcpdump src host 192.168.52.101 (52.101发出的包)
  6. tcpdump dst host 192.168.52.101 (收到的)
  7. --
  8. tcpdump src host 192.168.52.101 or dst host 192.168.52.53

Port 过滤器

  1. tcpdump port 8082 --源端口或者是目的端口为8082package
  2. host过滤器,使用srcdet可以进行过滤

host和port可以组合使用.
例如抓取从52.101发出去,本机8080收到的流量

  1. tcpdump src host 192.168.52.101 and dst port 8080

Net 过滤器

https://juejin.cn/post/6844904084168769549#heading-9 拷贝复制而来

Network 过滤器用来过滤某个网段的数据,使用的是 CIDR 模式。可以使用四元组(x.x.x.x)、三元组(x.x.x)、二元组(x.x)和一元组(x)。四元组就是指定某个主机,三元组表示子网掩码为 255.255.255.0,二元组表示子网掩码为 255.255.0.0,一元组表示子网掩码为 255.0.0.0。例如,
抓取所有发往网段 192.168.1.x 或从网段 192.168.1.x 发出的流量:

  1. $ tcpdump net 192.168.52

抓取所有发往网段 10.x.x.x 或从网段 10.x.x.x 发出的流量:

  1. $ tcpdump net 10

和 Host 过滤器一样,这里也可以指定源和目的:

  1. $ tcpdump src net 10

也可以使用 CIDR 格式:

  1. $ tcpdump src net 172.16.0.0/12

http

  1. #抓取 80 端口的 HTTP 有效数据包,排除 TCP 连接建立过程的数据包(SYN / FIN / ACK)
  2. tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  3. #提取 HTTP 请求的主机名和路径:
  4. tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"

链接