tcpdump 抓包工具详细图文教程(上)
目录
一、tcpdump 抓包工具的基本介绍和学习基础
1.1 常用的抓包工具
1.2 tcpdump 抓包工具介绍
二、tcpdump 抓包工具使用环境和初体验
2.1 编译安装 tcpdump
2.2 抓包
三、讲解 TCP 协议报文报头
四、tcpdump 抓包工具常规过滤规则
4.1 tcpdump 的 host 和 net 过滤规则
4.2 tcpdump 基于端口的过滤规则
4.3 tcpdump 基于协议过滤的规则
一、tcpdump 抓包工具的基本介绍和学习基础 1.1 常用的抓包工具作为运维、测试工程师,抓包工具不仅仅是工作中必须要用到的工具,而且是面试过程中也必然会问到的一类工具。
1.2 tcpdump 抓包工具介绍TCPdump,全称 dump the traffic on a network,是一个运行在 linux 平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。
tcpdump 可以支持的功能:
在Linux平台将网络中传输的数据包全部捕获过来进行分析;支持网络层、传输层协议等协议捕获过滤;数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则;提供 and、or、not 等语句进行逻辑组合捕获数据包或去掉不用的信息;结合 wireshark 工具分析捕获的报文。要灵活使用 tcpdump 工具必须要有两个必备的知识基础:
Linux 操作系统: 因为这是一款基于 Linux 系统下命令行的抓包工具,所以需要对 Linux 的基本操作和常用命令有一定的基础;网络知识: 因为 tcpdump 是将网络中传送的数据包完整的截获下来然后进行分析,所以想要分析捕获到的报文,需要了解 OSI 七层网络模型,以及常用网络协议等。 二、tcpdump 抓包工具使用环境和初体验tcpdump 下载官方网站:Home | TCPDUMP & LIBPCAP
大家如果要练习这个工具的使用,可以自己安装一个 Linux 虚拟机,或者自己购买一个 Linux 的云服务器。我这里给大家演示的是 Linux 虚拟机,CentOS 7 的系统。但是基本上所有发行版的Linux 使用这个工具都是差不多的。
2.1 编译安装 tcpdump [root@mysql01 ~]# tar -zxvf tcpdump-4.99.4.tar.gz[root@mysql01 ~]# tar -zxvf libpcap-1.10.4.tar.gz [root@mysql01 ~]# cd libpcap-1.10.4/[root@mysql01 ~/libpcap-1.10.4]# ./configure [root@mysql01 ~/libpcap-1.10.4]# make && make install[root@mysql01 ~/libpcap-1.10.4]# cd ../tcpdump-4.99.4/[root@mysql01 ~/tcpdump-4.99.4]# ./configure [root@mysql01 ~/tcpdump-4.99.4]# make && make install 2.2 抓包Ctrl+C 中断抓包
默认输入tcpdump(tcpdump -i any)这个命令,回车操作之后,它将监视第一个网络接口上所有流过的数据包,一般是 eth0,如下图所示:
12:26:14.871117 IP mysql01.ssh > 192.168.170.1.62763: Flags [P.], seq 3365399120:3365399316, ack 384892789, win 261, length 196
从上面的输出来看,可以总结出:
第一列:时分秒毫秒 12:26:14.871117第二列:网络协议 IP第三列:发送方的 ip 地址+端口号,(如 192.168.170.1.62763)其中 192.168.170.1 是 ip,而62763 是端口号;(如 mysql01.ssh)mysql01 是主机, ssh 是协议 22 端口第四列:箭头 >,表示数据流向第五列:接收方的 ip 地址+端口号,其中 192.168.170.1 是 ip,而 62763 是端口号第六列:数据包内容,包括 Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length,其中 [P.] 表示 PUSH 标志位为 1,