为什么我的 Wireshark 抓不到/抓不全 HTTP 数据包 ?

扩展阅读:

参考链接:

Wireshark 抓不到/抓不全 HTTP 数据包

目录

1. 前言
2. 简单分析
3. 具体过程
4. 相关测试
5. 总结

一、前言

        用 Wireshark 练习抓包,发现怎么抓也抓不到我想要的 http 包而且抓到的 http 都很少,连页面的 HTML 包都抓不到。
        浏览器都能抓到这么多 http 包,强大的 Wireshark 怎么会抓不到 http 包呢,一度认为自己的 Wireshark 或者 网卡 坏掉了。上网查找这个现象竟然没有适合我的情况的解答。
        后来直到我看见了这条讨论 Mac 电脑, wireshark 很多 http 包抓不到!,点进去一看。哇!简直跟我情况一模一样,一条条翻下去。原来如此,是我傻了,我抓的服务器都是 https 加密的链接,Wireshark 没有再次设置的情况下是没有办法抓到包的 https 的数据包。那些 HTML 数据包也是靠 https 传输的,怪不得我抓不到网站的数据包,差点以为我的 Wireshark 或者 网卡 坏掉了。。
        因此,我把这次遭遇记录在我的博客里,o(╥﹏╥)o。

二、简单分析

        经过一阵子的资料查找,基本上找到了如何让 Wireshark 抓取 https 数据包的方法。网上通用的方法都是,在任意一个盘符下,建立以下文件目录,例如:C:\ssl_key\sslog.log,在系统变量中添加一行,变量名为 SSLKEYLOGFILE,而变量值为 C:\ssl_key\sslog.log
可以达到这种目的的原因,经过我整理如下:
(1)Wireshark 不知道不知道客户端/服务器私钥,所以无法解密 https 传输的数据包。
(2)某些浏览器如 Firefox 和 Chrome 支持将 TLS 会话中使用的客户端私钥/服务器端公钥用日记文件的方式记录下来,这样就可供 Wireshark 加密/解密使用,
(3)为什么 log 文件会有很多行呢?客户端每次通信的时候都会随机生成一个私钥和服务器通信的!

三、具体过程

下面的过程,基于 windows 10

  1. 创建文件 sslog.log,比如在 C 盘下,创建文件 C:\ssl_key\sslog.log【手动创建】
    2.
  2. 添加系统变量
    在这里插入图片描述
  3. 设置 Wireshark
    在这里插入图片描述
    在这里插入图片描述
    填入设置的文件路径后,确认。Wireshark 的 https 抓包设置完成。在这里插入图片描述
  4. 重启浏览器,再次启动 Wireshark 进行抓包

四、相关测试

让我们对比来看,设置和没设置 ssl 的区别:
测试网站:哔哩哔哩弹幕网
测试视频:av62553173
浏览器抓包
在这里插入图片描述

未设置
在这里插入图片描述
设置后
在这里插入图片描述

五、总结

        还好找到了解决办法?差点要卸载 Wireshark 了。想不到 Wireshark 还需要另外设置一下,用 Fiddler 好像不用这样设置,难道是安装的证书起的作用?不过不要紧,只要能解决遇到的问题就行。

点我回顶部

 
 
 
 
 
 
 
Fin.

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页