本博客主要介绍我在安装wireshark过程中遇到的问题,经过尝试后解决了问题,因此总结解决问题的方法和大家分享,希望对大家有帮助。

我的环境为win7,wireshark是从官网下载的最新版本(2022年5月最新版本为3.6)

问题现象:wireshark可以正常运行,点击捕获时软件无响应(卡死)。
问题原因:wireshark 3.6版本不支持win7(官网声明)
解决方法:安装wireshar 3.2版本,此版本是支持win7的最新版本(官网说明)

下面的内容是解决问题的具体过程和经验总结,如果大家只想知道结果,看上面的结论就可以,如果想知道解决问题的方法和思路,可以继续向下看。

安装软件

最近在研究网络方面的知识,因此想需要抓包软件来分析网络协议,于是就在电脑上安装了wireshark,安装此软件和安装其它软件没有区别,不过安装完成后点击capture抓包时却卡死了(具体表现为无响应,)。

我开始还以为是数据包太大导致软件卡死了,于是关闭浏览器后再抓包仍然卡死。后来看到了软件界面上的提示后才知道原来软件不能识别网卡(具体的内容如下图红线内容所示)

在这里插入图片描述

没有网卡肯定是不能抓包的,虽然软件运行正常,但是开始抓包时卡死了,这显然是软件安装错误导致的,于是重新安装此软件。

重新安装软件后可以识别网卡了,为什么上次安装的软件不识别网卡?因为安装时没有选择npcap。npcap是一款开源的抓包软件,wireshark抓包时会使用此软件。这次安装后没有错误提示,而且可以识别网卡,于是开始点击抓包,软件仍然卡死。网上探索后发现像我一样卡死的情况还很多,其原因是npf服务没有打开。于是使用命令打开npf(Netgroup Packet Filter)服务。详细命令如下:

//先启动npcap,再启动npf,图中只有npcap的内容
net start npcap
net start npf

但是却提示找不到服务,截图如下所示:
在这里插入图片描述

于是便到C:\Windows\System32\drivers目录下查看相关驱动文件,不过此目录下只有npfs.sys.没有npf.sys.此外,在设备管理器->显示隐藏的设备可以找到npf驱动.而且驱动处于正常运行状态。看来服务已经起来了,不过在任务管理器中的服务里以及系统服务设置(services.mss)中则仍然没有npf服务。

我推测驱动正常但是服务没有,可能是npcap版本比较低,于是下载了当前最新的版本:1.6,并且替换了随wireshark一起安装的1.55版本。于是重新安装npcap1.6(随wireshark3.6.5安装的是1.55版本),没想到安装1.6版后在设备管理器也找不到npf,而且抓包时仍然卡死。

抓取dump

我想看看究竟是什么原因导致了软件卡死,于是抓取了dump. 如何抓取呢?下面是具体的操作方法:

  1. 设备管理器应用程序选项卡下选择wireshark
  2. 右键选择创建转储文件,创建完成后会提示dump文件路径和名称

dump名称一般是应用程序名.DMP,我的叫Wireshark.DMP,大小为300多MB,使用subline打开后全是十六进制内容,无法下手,看来需要一个工具来分析此dump文件 。这样的工具叫WinDbg,可以到微软商店里下载 .

不过我没有分析dump文件 ,以我的编程经验来看即使找到原因也无法修改,因为这需要有软件的源码才可以。最后我还是不能正常使用此软件。

在看dump文件时发现了惊喜,同目录下居然有抓包的内容:wireshark_本地连接xxxxxx.pccapng的文件,可以使用Wireshark打开此文件,这就是捕获的数据包。由此可见软件已经捕获数据,只是不能解析出捕获的数据。因此,我推断当前软件版本可能不兼容win7.

安装正确的软件版本

当前的软件已经是最新版本,如果不支持win7那么只使用旧版本的软件,到哪个呢?我在官网的UserGuide中找到答案,具体如下图所示:
在这里插入图片描述

从中发现我的推断是正确的:当前版本只支持win8及以后的windows系统。那么哪个软件版本支持win7呢?3.2版本以及以前的旧版本可以支持win7.官网给的UserGuide非常详细,大家可以点击这里去仔细阅读。

知道支持win7的软件版本后就去下载此版本的软件 ,结果发现官网不支持太旧版本的软件下载,于是通过userGuide找了日本一家大家的FTP,其链接如下:

http://ftp.yz.yamagata-u.ac.jp/pub/network/security/wireshark/win64/all-versions/

这里的版本非常全,我下载了3.2.18,然后重新安装软件,然后就可以正常抓包了。到此可以正常使用wireshark了。此外,安装完软件后,我发现与wireshark3.2版本匹配的npcap版本是0.99,比当前最新的1.6差很多版本。

最后我总结一下安装wireshark的方法和解决问题的思路:

  • 1.wireshark是基于npcap来抓包的,因此安装时一定选择安装npcap。
  • 2.wireshark的版本肯定是越新越好,不过要与你的操作系统版本相匹配,我遇到的问题就是软件版本与操作系统不匹配引起; 如何看匹配版本,可以到userGuilde中查看文档说明。
  • 3.wireshark无响应的问题基本上是npf驱动没有安装上或者npf服务没有启动引起的。因此使用前需要确认npf驱动是否安装成功,以及npf服务是否被正常启动。
  • 4.npf驱动在网卡的属性或者设备管理器中的隐藏设备中都可以看到;npf服务需要使用命令来启动,不过在系统服务和任务管理器中看到不到此服务。
  • 5.如果想知道windows上软件崩溃的原因那么需要抓取崩溃软件的dump文件(通过任务管理器抓取),然后分析dump文件找到具体出错的原因。

经过将近两个小时的折腾,终于可以正常使用wireshark抓包了,虽然时间比较长,不过收获还不少,欢迎大家在评论区交流与讨论。

此外,我感觉win7应该淘汰了,毕竟这是2009年就已经布的操作系统了,到现在已经使用十几年了,而且微软已经停止对它的更新。以后估计有些软件都不支持win7了。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐