Wireshark(2006年之前叫做Ethereal)是一款非常强大的UNIX和Windows上的开源网络协议分析器。它可以实时检测网络通信数据,也可以检测其抓取的网络通信数据的快照文件。可以通过图形界面浏览这些数据,可以查看数据包中的每层协议数据单元的详细内容。它支持上百种协议和媒体类型,拥有一个名为tethereal的命令行版本。
Wireshark在以下场合中经常应用:网络管理员在检查网络故障的时候使用;网络安全工程师检查网络安全问题;程序开发人员用它来调试网络程序运行情况;用来学习网络协议。
Wireshark是基于Winpcap开发的免费软件,安装Wireshark需要安装Winpcap组件。Wireshark实际上只是通过Winpcap提供的接口编写的应用程序而已,给出了用户界面封装。在学习了Winpcap之后,就可以在Winpcap的基础上自己编写类似功能的界面程序。
Wireshark可以检测计算机上使用的网卡类型和数量,捕获数据包之前,需要先选择在哪个网卡上进行捕获。在菜单栏Capture→Options或Interface中选择一个网卡,单击“Start”按钮就可以开始捕获数据包了。
例如,当打开IE浏览器访问百度网站www.baidu.com时,捕获的数据包如图10-2所示。从图中可以看到,Wireshark界面主要由七部分组成,从上倒下依次是:菜单栏、常用工具栏、过滤设置、捕获的数据包列表、数据包字段信息、数据包字节内容和最下面的状态栏。
在数据包列表栏中,图中只显示了其中捕获的5个数据包:两个DNS报文(查询和响应)和3个TCP数据段(三次握手)。
在数据包字段信息栏中,图中显示的是DNS查询报文。可以看出DNS查询报文被封装在UDP数据报中,UDP的端口号是53。而UDP被封装在IP数据报中,源IP地址为192.168.1.2(本机),目的IP地址是202.113.16.10(南开大学的DNS服务器)。也可以看出,IP数据报直接封装在以太网MAC帧中。Wireshark不但列出了源、目的MAC地址,还列出了网卡的生产厂家。(www.daowen.com)
在数据包字段信息栏中,图中列出的是DNS报文的各个字段。
在数据包字节内容栏中,显示的是整个MAC帧的内容,阴影部分是DNS报文部分。
图10-2 Wireshark主界面及捕获的数据包
Wireshark截获的所有内容都可以保存在文件中,这里给文件起的名字是DNSExample,它显示在窗口标题中。
需要注意的一点是网卡工作模式的选择,默认的网卡工作模式为混杂模式,在共享式以太网中,混杂模式可以捕获其他所有站点之间的通信数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。