tcpdump 抓包工具详细图文教程(上)

news/2024/11/22 19:57:54/

目录

一、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 可以支持的功能:

  1. 在Linux平台将网络中传输的数据包全部捕获过来进行分析;
  2. 支持网络层、传输层协议等协议捕获过滤;
  3. 数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则;
  4. 提供 and、or、not 等语句进行逻辑组合捕获数据包或去掉不用的信息;
  5. 结合 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,更多标识符大家需要了解 TCP 协议的标志位。 

三、讲解 TCP 协议报文报头

        TCP(Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制。

四、tcpdump 抓包工具常规过滤规则 

4.1 tcpdump 的 host 和 net 过滤规则

基于 IP 地址进行过滤:host

案例 1:截获特定主机 192.168.170.134 的主机收到的和发出的所有的数据包

tcpdump host 192.168.170.134

解释:host 192.168.170.134,指明 192.168.170.134 是一台主机,如果你非常明确关心的是哪个主机的收发报文,那么就可以直接过滤这个主机的数据包。host 后面加主机的 IP 地址,就可以只抓取这个主机的所有数据包,其他主机的数据包就会被过滤掉。

案例 2:获取目的地址是 192.168.170.134 的报文

tcpdump dst 192.168.170.134

解释:dst 指的是目的地址;这个是确定传输方向的关键字,src 源;dst 目的。

基于网段进行过滤:net

案例 3:截获特定网段 192.168.170.0/24 的主机收到的和发出的所有的数据包

tcpdump net 192.168.170.0/24

解释:net 192.168.170.0/24,指明 192.168.170.0/24 网段,可以直接过滤这个网段的数据包网段同样可以再细分为源网段和目标网段。

$ tcpdump src net 192.168$ tcpdump dst net 192.168 

4.2 tcpdump 基于端口的过滤规则 

基于端口进行过滤:port

案例 4:获取特定端口 比如 http 的包,使用如下命令:

tcpdump tcp port 80

解释:port 80 指明端口 80,只会抓取这个 80 端口的数据包;加上具体某个协议的某个端口,就可以更加精确的捕获对应的业务的数据报文了。如下图,就会只抓取 TCP 协议的 80 端口的数据报,也就是 http 协议的数据报文。 (tcpdump src port 80 / tcpdump dst port 80)

如果你想要同时指定两个端口你可以这样写:tcpdump port 80 or port 22、tcpdump port 80 or 22;

如果你的想抓取的不再是一两个端口,而是一个范围,一个一个指定就非常麻烦了,此时你可以这样指定一个端口段。

  • tcpdump portrange 8000-8080
  • tcpdump src portrange 8000-8080
  • tcpdump dst portrange 8000-8080

对于一些常见协议的默认端口,我们还可以直接使用协议名,而不用具体的端口号:比如http==80,https==443 等:tcpdump tcp port http

4.3 tcpdump 基于协议过滤的规则

基于协议进行过滤:protocal

案例 5:获取 ICMP 协议的报文

tcpdump icmp

解释:标明要抓取的协议报文,一般常用的比如 ip、ip6、arp、icmp、tcp、udp 等。

注意:http、dns、https、ssh 等这些应用层的协议,不能直接这样写,需要写成:tcpdump port http 或者 tcpdump port 53(DNS) 

下一篇文章:tcpdump 抓包工具详细图文教程(下)_Stars.Sky的博客-CSDN博客 


http://www.ppmy.cn/news/148619.html

相关文章

MVCC 实现原理

💟这里是CS大白话专场,让枯燥的学习变得有趣! 💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话! 💟好记性不如烂键盘,自己总结不如收藏别人! &#x1f…

佳能EF镜头控制器

机器视觉应用相机通常选择SLR镜头,牺牲了控制控制功能,所以不能用于远程控制。使用LC-2镜头控制系统搭配佳能(Canon)EF镜头可以配合机器视觉相机使用从而实现远程控制。 EF/EFS 镜头控制单元(LC-2) 适用于大部分佳能(Canon) EF和腾龙(Tamron) EF镜头 精…

什么镜头最适合拍风景_要拍风景和人像,分别买什么镜头比较好?

展开全部 没有固定的用法。 但是人像基本用特写的手法,那么中长焦镜头是e5a48de588b63231313335323631343130323136353331333365643632最好的选择,大光圈容易带来虚化的效果,更能突显人物,所以在摄影镜头中85mm和135mm两个经典定焦…

佳能7款PL卡口电影镜头发布在即

本文来自新摄影 在四月份NAB展会之前,佳能将发布7款PL卡口电影镜头。与此前的EF卡口电影镜头相比,这几款PL卡口镜头的光学设计略有不同,且拍摄出来的画面更加柔和、拥有更低的对比度。据了解,目前佳能只有6款CN-E电影变焦镜头镜头…

数码相机名词解释-变焦镜头 物距 枕形失真 视角 透视 微距摄影 焦距系数

转自:http://hi.baidu.com/hejundream/item/b95747fd985cc20fd89e7223 数码相机名词解释-变焦镜头 物距 枕形失真 视角 透视 微距摄影 焦距系数 照片四周发虚(Vignetting) 变焦镜头(尤其是低端的变焦镜头)&#x…

镜头选型——景深计算

正在上传…重新上传取消 1 概述 先看两个例子,拍摄花、昆虫等照片时,背景拍的比较模糊,突出被拍物。但当拍摄纪念照、风景等照片时,却会把背景拍摄得和被拍对象一样清晰。这两者就是不同景深。前者为浅景深,拍摄聚焦到…

主流F2.8标准变焦镜头信息

对于不少初入摄影圈的朋友来讲,大光圈的标准变焦镜头往往是他们非常向往的烧钱器材。之所以这种大光圈的标准变焦镜头受到青睐,主要在于它们良好的拍摄通用性。先看看各家主流F2.8及F4的标准变焦镜头的价格对比: 佳能 EF-S 17-55mm f/2.8 IS …

macOS Ventura 13.5beta2 (22G5038d)发布

系统介绍 黑果魏叔 6 月 1 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新(内部版本号:22G5038d),本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…