粉丝3440获赞5828

同学们好,今天我们继续来讲解 linux 系统基础课程,我是讲师李清茹,今天我们来讲第八章 linux 网络配置及管里面的第七个小节,命令行找包工具。 那命令行抓包工具呢?为什么要学习一些抓包?那么将来我们在做一些网络管理,包括一些服务器管理,会涉及到一些通讯问题,那网络通讯,那其实网络中传说的都是一些 ip 数据包, 那么我们学会了抓包以后,通过这种抓包工具能分析我们网络当中的这些豹纹,然后呢解决网络故障啊,我做这个呃运维工作呢,这么十多年吧,那我认为啊,你如果学会分析豹纹呢? 那么很多的网络问题都能够迎刃而解。那分析一些网络当中的豹纹,那你首先要把它抓住,那怎么他抓住呢?这时候用到了一些抓包工具,那实际上我们有很多图形界面的一些抓包工具,比如说 sniffer 啊,什么一则 real 啊,那现在啊,比较有一个开源的这个抓包工具叫做呃 versac, 那么现在啊这个 versac 呢?我这个呢也是有这个 versac 的,那我们来看一下,我这个电脑里面也装这个 versac 啊,这个 ysl 的使用呢,其实非常之简单,当我们打开这个应用程序以后,然后呢他会检测到啊,你的一些这种这个网卡,就是你现在你的 系统当中都能有,有哪些网卡?好了,那么比如说现在我找到我的有线网卡,然后我选中现在他其实已经开始抓包了,你看他抓到了网络当中的好赌包,那么现在我停止一下,你看我就能对这个进行分析,你看我就能对他进行分析了 啊,你比如说像这个包啊, tcp 的, tftp 的, tcp 的,这是一个什么包?然后我能对它进行展开,这是 ip 内容,这是乙胎网啊,真,然后这是 ip 包,这是床层里面东西啊,我都能分析了, 那么所以说这个是非常非常这个好使的,因为他一目了然就能看见。但实际上啊,如果我们有,我先不退出啊,然后呢?但是呢,有时候我们配的都是服务器,我们配的是服务器,那么的服务器一般都放在机房,然后这些服务器 呢,将来基本上都是最小化安装,他根本不用去装一些图形界面。那所以你没有办法使用一些这种什么样图形界面的抓包工具。 那这时候,但是我们服务器出问题了,我要要看一看我们服务器那发送的包或者接收的包,那这时候怎么办?那这时候我们需要在命令行下有一个抓包工具,那这个命令行的抓包工具就是这样,就是这个 tcp dump, 就是我们今天要讲的这个装保工具。那 t c p dump 呢?呃,默认没有装上,你要想装的话,你用这个亚米 ins 道,然后 t c p dump 到外把它装上就行了,最小安装的话,它是没有安装的,当然我这个不用装了,因为它已经安装上了。 那么 t c p 抓包呢?其实这个抓包也非常简单, t c p dump, 然后你回车,那肯定 不行,为什么呀?因为你没有指定接口,那么我们首先要第一个参数,那就是指定接口,你比如说我指定用我的 es 三二,他能推不出来,这时候我来抓包,你看我这当中的好多好多包,正在正在刷,他就刷屏了。那所以说你这样抓包不行,为什么呀?你抓的包太多, 那么你没办法看啊,没办法看,那么当然我们这个啊,他可以把我们抓的包啊,你比如说我抓一个这个 tcp 的包,你看我只抓 tcp 的, 然后呢,我还可以指定我抓多少个,比方说我抓二十个,抓二十个就结束了,你看我就抓了二十个包,然后呢,他把这个包显示出来了,显示出来了,但是我这样看太不方便了。那么如果你想看的更详细,你可以加杠微 v, 那这更详细,你看它展开的就不一样了,展开的就不一样,所以大家可以看到我们这个 t c p 弹破呢,它其实有很多的选项,我们来看一下。第一个杠 i 刚才已经用到了,就是我们主主要使用杠 i, 杠 c 指定抓包的数量,你看我指定了二十个杠微,输出一个稍微详细的微微,就是, 呃,比这个杠一个 v 更详细的。那么杠 w 的意思呢?就是我把我抓包的结果可以写了一个文件,你比如说杠 w, 我写了一个文件,写的文件叫什么名?那你指定一个啊,我就叫比,比方说 maykip 啊,我,嗯,就 mapike 是吧? 点啊,抓到你保存的一个文件当中,实际上呢,我们刚才讲的那个 versac 那个图形界面的抓包工具,它能看这个豹纹的,那所以 rashak 的后缀一般是 p c a p, 你保存成这种就行了。然后呢,你看他抓够了以后,他就把它保存到哪了呀?保存到我们这个 my package 点 p c p 这个文件当中了,大家可以看到,现在呢,我这就多了这么一个文件, 那这个文件你可以把它导到我们的真实机里面来,因为我的外边的图形界面是不是安装了一个 vrsak 呀?那我就想分析一下,那怎么做呢?我把它发送出来,我们用 sz sz 啊,这个你要装啊,如果你不装这个啊,这个的话,我大家来看一下,这个包呢,是有 r k o f, 然后呢? which s z 这个命令,它是有 l r r z s z 这个包产生的,你要装这个包啊,你装这个包就用能用 s z 面料, s z 呢,它就能把我,它是发送的意思, r z 呢是接收的意思。 s z 就是把我本地的,把我这个另一个主机里面这个包发到外边去,发到我的真发到我这个 这个这个桌面上来,发到我的真实集里面来,那我就发 sz 啊,你要先发谁啊?来,还记得发这个发到哪去呢?你看我发到我的桌面上, 我点 ok, 他就传过来了,当然如果是 i r z 的话,他会从你的桌面来接收,他会选择你把哪个文件,你比方说我找到我的桌面上哪个文件,这个 file 里面的啊?这个这这个这个文件啊,这个文件,这个文件不行,这个文件发过来以后, 他也是一个什么呀?比方网络加购的 ppt, 我发过来的,实际上也看不懂,为什么呀?他是一个中文的,你看,哎,可能看懂啊,能看懂,他发到发到我这个里面来了,当然我这个不要他,我把它删了啊,我把这个网络加购 啊,我杀了。好嘞,那这是这个 r z s d, 那么你发到外边去了以后啊,这时候我们的优势就来了,我们打开我们这个工具,然后呢,你在这打开, 打开找到你桌面上哪个呀?这个文件 my package 啊,你保存的时候是 pcap, 这是 versac 能够识别的,然后你打开,然后呢, 这时候你看你就能通过这个图形界面来分析这些豹纹了。哎,你看这是我们刚才在里面抓到的 s s h 的包,你看 s s h 的包, 你就能够进行展开,就通过同一界面的这个叫来分析这个豹纹了。好,这是这个,我们把抓包的这个东西呢可以保存出来,保存出来用什么命令呢?我们用的是杠 w, 把它保存出来, ok, 好了,然后呢,我们还可以把一些地址,我们平时抓的包呢,他把这个他都自动给你翻译成名了,我们可以通过杠恩变成我们的 ip 地址,杠恩,恩,就是把短口也不叫服务名了,变成短口号等等。 然后呢,你还可以规定一些,比如说时间窗啊,杠 t t t, 你看杠 t 不在同每一行中显示时间窗,杠 t t, 在每一种属于格式化的时间窗输出本行和前行之间的时间差,你看它时间窗的显示方式不是在一样的,我们来具体看, 你看 p c p dump, 杠 i e n s 三二,我们抓几个呀?我们就抓十个,你看杠 t 它是啊,不显示时间圈,刚 t t 呢,你看它是显时间圈的,你看是是显时间圈的。刚 t t t 呢,它的时间圈是,你看它显示的是之间的差啊,它和上面这个包的差,然后呢 还可以显示像我们这种是这种格式的,其实就是我们对头看到这种格式的,你看这种二零年这种带这种格式的时间穿啊,所以他有一些很多的一些常用的选项, 那么实际上 t c p 弹破呢?它这些选项呀,并不是最重要的,其实我们主要掌握了一些这些基础的这些选项就可以了。然后呢它最重要的是它可以写一些正则表达式去 做过滤,就是写一些过滤,其实我们的 vrsac 也是能写一些过滤条件的,那么我们来看一下,它能做一些类型的关键字,你比如说我只抓和某个 ip 地址有关的包,那你怎么写? 你看着 t c p dump, 你根据要指定你抓哪个端口,然后呢? host 后面跟你指和哪个 地址有关的,我只和幺九幺零八幺五四点幺啊,别幺五四点二有关的包, 那你抓幺五四有关的包,因为你们之间没有通信呀,所以你根本抓不到,那这时候我打开一个终端,我再打开一个终端,你看啊,你抓,你看,这时候我们加个杠,恩吧,有时候好看 杠 n 啊,杠 c, 我只抓二十个啊,只抓二十个,那你大家可以看到,你看我这样他根本就没有显示,那这时候我聘谁啊? 幺九二幺六八幺五四点二,然后呢我们刚 c 拼十个,拿成再拼,然后你看他就开始抓了啊,抓住了啊,抓住了, ok 啊,抓住了,那么可以看到啊,他已经拼,他抓住了,抓住了以后,这时候 就看到了刚才和幺五四有关的,这是哪个命令啊?这是 host 关键字,那么我其实还可以抓一些和网段有关的。网段有关的,那这就写的关键字就是 night, 后面写幺九二幺六八幺五四点零杠,二十四,和这个网段有关的。网段有关的。通信的包非常多,所以马上就抓到了啊,马上就抓到了,只要属于这个网段的那些包,我都给你抓到 啊,当然还可以和什么和 pot 有关? pot 呢,就是端口,那么你端口呢?如果你抓这个 pot, 那你抓 pot, 那么端口分为 tcp 端口和 ugb 端口,所以你要写 tcp 二十二个端口 啊,这个语法语法是错的哦,怎么写反呢?嗯,对,应该是 t c p 啊, pot 多少呀?二十儿,这样来写,我们抓少个,抓十个就行了,你看,马上就抓到了啊,这, 这个 ssa, 这,它没有显示二十二,那很简单,杠,嗯嗯,他就把它翻译成二十二和端口了啊,那么就可以抓到了。然后呢?当然如果你想抓 udp 的 你,你又写 udp 二十,你没有啊,没有。 ok, 好了,这是端口。然后呢?第二种政策表达是主要是写的一些和方向有关的,因为我们的数据包它肯定分为原和什么呀?目的, 元和目的呢?那一个数据包肯定是有元和目的的呀,没有元和目的,那他这个如何来这个传输数据包呢?那元和目的,那我怎么来写呢?大家来看,元就是 s r c, 目的就是什么呀? d s t, 你看 tcp dump 杠 i 指定我的砖头 s r c 原,原主机是这个的, 当然这个 house 的,你也可以换成网络。 net, 幺九幺六八幺五四点零网络,这也是可以的,你 d s t 和目的有关的啊,包括 d s t 或 s r c, 就是原是这个地址,或者目的是这个地址也行, 包括原和目的都一样的,这种也可以。那么如果说我将来没有写指明方向,默认就是什么样? s r c o d s t。 那我们下面来看一下这个例子, 就是我这样来写 t c p 的按摩杠 i e n s 三二,然后呢? s r c。 那这就是元呗,元是谁的呀?比方说我写一个主机的幺九二幺六八幺五四 点一的这种包,我只抓这种包,刚才我就把地址显示出来,你看你抓的都是这样,你看原 ip 是这个的,原 ip 是这个, 然后呢,你也可以怎么办呢?把这个换成 d s t cst, 目的是这个的,你看目的,你看都是这个幺五四点幺了。然后呢,你要说我,我这个是,哦 哦, s r c 那就都可以, 你看都是可以的,你看一在这了也行,你看一在这边也行,都可以了,那你说我就是没有写,如果你没有写这个,没有写,默认就是 s r c o d s t。 原和目的都是你写的这个地址就可以了, 圆活目的是他都可以被抓到啊,这是这个啊。 第三种表达式呢,是和协议有关的,因为我们网络中呢,是 t c p i p 网络协议,那么里面有好多好多的协议, 那么我们可以有仪态网协议的,那你比如 tt 大杠 i 指定接口 e 的。 net, 后侧之语后面写的是 mark 地址啊。然后呢,你还可以抓 ip ip 协议的 和抓 a r p 协议的,还抓一些 t c p 的或者 u d p 的啊,这都是可以来写一些协议的,那你比如说我们来举一个例子,我要抓一个 a r p 包, 我要想抓一个 arp 包,那我怎么做呢? tcp dump 杠 i 啊, es 三二,我要写 arp, arp 呢?那你后面要写你要抓和哪个主机有关的 arp 包,比如幺五四幺九二幺六八幺五四点二 arp 包,那你现在抓不到,为什么呀?大家来看 arp 杠 a, 现在啊,大家来看我们这个幺五四点二,是不是在这个 arp 缓存表里面有啊? 如果缓词表里面要有啊,他一般他都不会,哎呀,他都不会去问,所以呢,我们这时候我们来个杠案啊,他都不会去问, 那这时候我们可以 arp 刚递,然后我们把这个幺九二幺六八幺五四点二给什么呀?删, 删了以后他还没有产生,那我拼一下幺九二幺六八幺五四点二,那他肯定去问一下他的玛卡地址是谁,那么所以我就抓到了这个 a 二皮包,你看抓到了几个呀?两个,大家来看, 首先我要去聘幺九幺七幺九幺六八幺五四点二,那么我会问,说谁是幺五四点二啊?告诉我的,告诉幺五零。 然后呢幺五四二二就回应了,说幺五四二的 ip mark 地址是这个,你看五五五 a, 那这时候我在 arp 环节里面肯定有了,嗯,他就把它学过来了,就这个意思,所以他发了以后,我们就抓到了这个 arp 猫啊,好了,这就是这个 ttp dump 里面的一个这个 协议的这个表达式,如果没有指定任何协议去默认抓所有的协议包,然后呢,他还可以写多个条件,那如果写多个条件的话,我们用用的逻辑运算符就是取非,就是不抓什么,什么不抓,和哪个主题关的叹号或闹腾, 然后并且就是和两个条件啊,就是并且和的意思,按按的或者是按的啊,就这个符号,然后或者是两个竖线,或者哦,这是这个 逻辑表达式的时候,那我们来看一下下面这个例子,那在 a s 三二接口上我来抓谁啊?主机一点十和 二二点二通信,或者和幺九幺八一点二零通信都可以, 我要和这个主机或者是和,和什么主机啊?和这个主机或这个主机,你看他写的就是一个逻辑的运章,他可以并列组合多种条件 啊,这是 tcp dump, tcp dump 呢,能够让我们在命令行界面下进行抓包, 抓到我以后呢,如果你分析的不是很这个方便的话,你可以把你抓的包保存出来,保存出来以后啊,然后再把它弄到外边来,通过 这个图形界面的一些抓包工具进行分析,这样来解决我们网络当中护长。那么 t c p dump 啊,这个是大家一定要掌握的一个抓包工具,因为在 linux 下我们很多都是命令行来进行操作的,它 恰好就是在命令行下来作为抓包工具来使用的一个工具。那么将来我们后面要学习一些什么虚拟化呀,一些云平台的一些练习啊,这时候在云当中或者的一些集群当中,我们的网络是非常重要的, 这时候我们来解决网络故障的话,这个 t c p dump 非常有用。好,同学们回去以后呢,把我后面的练习题完成,熟练掌握 t c p dump。



