2018-04-04 tcpdump 牛刀小试

tcpdump -s 0 -n -A -X src host 172.17.0.2 and dst port 80 and tcp[13]=24
-s 0 表示包内容长度,比如 -s 1500
-X 表示16进制显示

ng上执行 tcpdump -n -A -X src host 172.17.0.2 and dst port 80 and tcp[13]=24 然后click上执行 curl -v "172.17.0.3/index.html" , 可以看到ng上的http请求了

dep 上查看php 项目 : tcpdump -n -X -i docker0 tcp dst port 80 and tcp[13]=24

tcpdump有很多参数来控制在哪里捕获,如何捕获,以及捕获文件如何保存处理等选项,

-i interface 指定监听的网卡

-s 指定每个报文中截取的数据长度,不是缺省的68字节。如果仅仅对报头感兴趣,可以不使用该选项,指定为0说明不限制报文长度,而是捕获整个报文。一般以太网的MTU值为1500,因此指定长度为1500即可。

-w filename  报文保存到文件

-c 当收到指定报文个数后退出

-n 不要将IP地址和端口号进行转换,转换需要CPU时间

-G <rotate_seconds> 每隔指定的时间,将捕获的报文循环保存为新文件。需要-w配合使用,并指定时间格式才能循环保存文件,否则覆盖原来文件。常用事件格式%d(每月中的第几天),%H(当前的小时时间),%M(当前的分钟时间),%S(当前的秒时间)。

-D 输出tcpdump可以捕获的接口列表,包含接口编号和接口名称

-v 当解析或打印时输出详细的信息。例如报文的生存时间TTL、ID等IP报文选项。

-r 读取有-w创建的报文

  1. 匹配规则

只有符合表达式要求的报文才会被抓取到。

表达式由一个或多个基本元素加上连接符组成,这些基本元素也称为原语,是指不可分割的最小单元。基本元素由一个ID和一个或多个修饰符组成,有3种不同类型的修饰符。

第一种是类型修饰符,共4个类型修饰符,分别为host、net、port和portrange。

host指定要捕获的主机或ip地址。

net需要捕获报文的子网。

port和portrange分别用于指定端口和端口范围。

第二种是传输方向的修饰符,包括src和dst。不仅可修饰地址,也可修饰端口。

tcpdump -i eth0 'dst port 80' -v
tcpdump -i eth0 'prot 5060 and src 192.168.1.100' -v

第三种是协议修饰符,可以基于特定的协议来进行过滤,可以是IP、ARP、RARP、ICMP、TCP和UDP等协议类型,如tcp port 21、udp port 5060等。

另外这些原语可以使用and(&&)、or(||)和not(!)来进行运算组合。所有的报文集合是全集,可以进行交、并和补集运算。在多个层次的集合运算时,可以使用小括号来分割其集合运算符的结合关系。

tcpdump -i eth0 -s0 -w wang.pcap host 10.0.0.15

tcpdump -i eth0 -w aaa.pcap port 59 or port 53 or port 80 or arp or icmp

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    JasonShi6306421阅读 1,265评论 0 1
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,992评论 1 13
  • tcpdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和...
    Yihulee阅读 14,186评论 0 3
  • 前言 tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络...
    王奥OX阅读 39,828评论 0 12
  • tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。 不带任何选项的tcpdu...
    SkTj阅读 437评论 0 0