Wireshark介绍

Wireshark(前称Ethereal)是一个免费的网络报文分析软件。网络报文分析软件的功能是抓取网络报文,并逐层显示报文中各字段取值。网络报文分析软件有个形象的名字“嗅探工具”,像一只猎狗,忠实地守候在接口旁,抓获进出该进口的报文,分析其中携带的信息,判断是否有异常,是网络故障原因分析的一个有力工具。

网络报文分析软件曾经非常昂贵,Ethereal/wireshark 开源软件的出现改变了这种情况。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal/wireshark 是目前世界使用最广泛的网络报文分析软件之一。

下载链接:https://www.wireshark.org/

查看本机的网络适配器列表

操作:单击菜单Capture中的Interfaces选项
在这里插入图片描述

图1:查看适配器

适配器的地址,还有具体的型号:

在这里插入图片描述

图2:查看适配器详细情况

开始监听

在这里插入图片描述

图3:打开监听

记录一个TCP三次握手过程

本机ip

使用cmd命令行,输入ipconfig查看IP地址
如图4所示。可以看到本机的IPv4地址是192.168.1.133
在这里插入图片描述

图4:本机IP信息

接下来我清除所有监听,并且重新开始。打开一个干净的百度网页,开始抓包。
我打开百度之后,wireshark一瞬间就抓到了很多包,我并不提前知道百度的网址,然后我先就着这一瞬间涌入的包进行检索。发现了一个三次握手的记录。其中图5是第一次握手,可以看到源IP地址和目的IP地址。这个包是SYN包,并且目的IP地址是本机地址。源地址是119.75.217.26

在这里插入图片描述

图5:第一次握手

第二次握手也成功抓到了,如图6所示。看到了SYN和ACK。目的IP变成了119.75.217.26,源地址是本机。

在这里插入图片描述

图6:第二次握手

第三次握手也成功抓到了。有ACK,如图7所示。目的地址变为本机,源地址是119.75.217.2。
在这里插入图片描述

图7:第三次握手

接着我对这个119.75.217.2进行了搜索,很幸运,刚好就是百度的IP地址。这是在网上查到的,如图8所说。
在这里插入图片描述

图8:三次握手的另一方

开启telnet服务

问题:'telnet’不是内部或外部命令,也不是可运行的程序或批处理文件。

解决:手动在win10功能那里开启Telnet客户端

在这里插入图片描述

图9:开启Telnet服务端

一个TCP握手不成功的例子

这里需要说明一点是,由于回到宿舍做实验,IP地址发生了变化,如图11所示。这是连接了学校网线之后的IP,可以看见这是一个B类地址,学校应该设了子网。
在这里插入图片描述

图10:IP变化

接着打开wireshark监听,并在win10命令行窗口并输入:telnet 192.168.1.101,然后停止继续侦听网络信息。
接着在wireshark上输入相应的过滤表达式,查看到了TCP失败结果:
在这里插入图片描述

图11:TCP失败

在命令行中显示:
在这里插入图片描述

图12:TCP失败

失败原因分析:
端口23是Telnet的服务端口,192.168.1.101是本地局域网。其实本地就我一台电脑,所示失败原因是因为这台192.168.1.101没有开启Telnet服务,也即是远程登录服务。

TCP三次握手抓包小结:

TCP三次握手是成功抓到了。不过还是有疑问,就是Seq并不是一个随机值,而是0或者1.看了别的三次握手包,也都如此。后来上网查找,才知道这是wireshark进行了计算。这里的0和1都是相对的。其实其余版本的wireshark是可以看到原始的数值的。

TCP四次挥手

在尝试抓TCP连接成功之后,我尝试抓TCP四次挥手。
在TCP三次连接的基础上,我立即关闭百度首页。尝试抓到四次挥手的包。其中百度的IP没有变化,依旧是119.75.217.26。从图14中可以看见,本机(125.216.247.234)和百度首页(119.75.217.26)的整个挥手过程。

在这里插入图片描述
四次挥手抓包小结:
其实一开始没有找到四次挥手的整个过程。后来学会如何使用筛选,从大量的包中提取出所要监听的地址就可以。可能是由于关掉特别迅速,所以四次挥手的流程是在一起的。

踩过的坑

如果盲目在大量包中寻找要的包是非常费时费神的,要学会使用wireshark命令行的过滤器。

参考资料

https://www.cnblogs.com/bylijian/p/8565601.html
https://www.cnblogs.com/Chilam007/p/6973990.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐