Wireshark 网络抓包工具介绍、应用及一个案例

软件工程师们或网络工程师们经常会提到“抓包”。实际上,这里的“抓包”展开来说,就是“抓取网络包”。而常用的”抓包“工具有TCPDUMP(Linux OS上使用)、Wireshark(可用在Windows OS和Mac OS)、sniffsmart和 httpwatch等,这篇文章就只讲Wireshark的一些浅显的地方,要实际交待和妙用起来,本人功底、经验尚差很远,待实际经历与总结吧。

Wireshark介绍

Wireshark原名(ethereal,这个是不是很容易想到Linux OS上的ethtool命令工具呢,嘻嘻),是一个网络封包分析软件,它几乎能解析所有的网络协议,从底层的数据链路层报文(如MAC地址发现与广播……)到上层的网络包及应用层的HTTP等。随着使用Wireshark越来越频繁、越来越依赖,你会惊叹于它将网络包中无意义的”0“和”1“转换为简单的文字的神奇,要想进一步了解它的前世今生,可以看看”Wireshark的前世今生“这篇文章。总之,对于大多数软件工程师们或网络工程师们及学习网络协议的兴趣者来说,我们主要关心的是:Wireshark是一款开源、免费的、功能强大的网络封包分析软件。它的官网是https://www.wireshark.org/,在搜索引擎里可以很容易地找到并下载、使用它。

Wireshark抓包的两种使用方式——命令行和UI界面抓包

Wireshark抓包有两种方式:采用命令行或UI界面

  • 采用命令行
    命令行抓包?听起来似乎没有采用UI界面抓包方便,但其实Wireshark命令行抓包方式有很大的作用,当现网反馈有小概率出现的问题,问题出现时间不确定,可能是几天才出现一次,这时用命令行循环抓包的好处就体现出来了。 采用命令行循环抓包有以下几个比较突出的特点(转自http://support.huawei.com/ecommunity/bbs/10158231.html):
  • 一般的PC机即可,资源占用少。

  • 抓包信息全,不会丢包,程序稳定,不死机。

所以,只需预留好一定量的硬盘空间,按时间间隔或文件大小对抓包文件进行切割,超过指定文件个数就覆盖,循环利用空间。

循环抓包的方法也是从万能的研发的兄弟那学来的,在此分享给大家希望能有所帮助。

循环抓包环境搭建:

1、安装WireShark,(建议不要使用Ethereal,因为它的最终版本循环抓包有bug)。然后cmd进入安装目录。
Wireshark 网络抓包工具介绍、应用及一个案例_第1张图片
2、查看当前PC网口索引及描述信息,确认抓包使用的是哪个网卡

dumpcap –D

Wireshark 网络抓包工具介绍、应用及一个案例_第2张图片
查看到网卡描述信息可以和Windows上查看到网卡属性进行比较,

Wireshark 网络抓包工具介绍、应用及一个案例_第3张图片
记录抓包需要的网卡接口,下面抓包需要指定这个接口 –i 1、
启动循环抓包,例如文件大小超过100M后自动新建一个文件抓包,总的保存的文件个数为100个,超过后自动替换(这样共占用10G空间)

注:-i 网卡接口号; -w 保存的文件名;-b 循环抓包 filezise:每个分包大小; files:总的分包个数。

dumpcap -i 3 -w D:\aa.pcap -b filesize:100000 -b files:100

过滤:ip.addr==10.10.10.10

停止:ctrl+c

结果如图:

Wireshark 网络抓包工具介绍、应用及一个案例_第4张图片

  • UI界面抓包
    Wireshark采用UI界面抓包的方式,功能也很有特色——比如这VOIP领域,可以利用Wireshark的界面限制只查看某一个会话ID的交互流程、绘制交互图等,大家可以多多尝试,
    Wireshark 网络抓包工具介绍、应用及一个案例_第5张图片

Wireshark 网络抓包工具介绍、应用及一个案例_第6张图片

Wireshark 网络抓包工具介绍、应用及一个案例_第7张图片

Wireshark 网络抓包工具介绍、应用及一个案例_第8张图片

采用Wireshark还可以打开在Linux服务器上通过类似命令行 tcpdump -s 0 -i eth1 -w /home/root/test.capp抓取的网络包。

启用网口使网络能够抓包

有时会碰到Windows7 新系统下Wireshark检测不到网卡的情况(参照“Wireshark检测不到网卡解决方案 ”这篇文章可以解决),

可以通过如下方式解决: 
以管理员的权限运行CMD,输入net start npf ,CMD窗口显示NetGroup Packet Filter Driver 服务已经启动成功。 这样就可以检测到网卡了。

Wireshark的使用

介绍Wireshark的使用的文章有很多,如:
ttp://wenku.baidu.com/view/15f82868011ca300a6c390cf.htmll
个人觉得,对照一些介绍网络协议的书、然后对照Wireshark抓的包,是以种不错的学习途径。

分析FTP案例

个人碰到一个现网问题。即客户环境中采用FTP协议传输文件,开始工作正常,在某个时刻出现错误,但是通过Windows下FTP命令还是可以取文件,让定位问题。

开始对FTP协议不熟悉,也感觉问题不可思议。后来了解到FTP有两种工作模式——主动模式和被动模式,而在客户环境中采用的是被动模式。在FTP客户端通过Wireshark抓包发现,在客户端发了ENTER PASSIVE MODE消息给FTP服务器后,客户端返回的passive port(数据端口)却是用来连接的21端口,而按FTP协议,此种模式,FTP服务器应该返回的数据端口是大于1024的一个端口,可以判断——FTP服务器与FTP客户端中间应该有什么防火墙或端口映射类设备对端口进行了改变,这个可以通过抓包来对比FTP服务器端发送的数据端口与FTP客户端收到的数据端口是否一致来印证。

你可能感兴趣的:(Wireshark)