使用wireshark抓取mqtt报文

使用 Wireshark 抓取 MQTT报文

注意:原创文章,转载请注明出处。

前言

在使用Wireshark 对MQTT协议进行抓包时,总是无法解析MQTT协议报文。为此,笔者一直在找寻能够使用wireshark抓取到mqtt协议报文的方法。

失败记录

笔者在CSDN上找到下面一篇文章,见如下链接
可能时笔者的wiresharK版本与这篇博主的版本有所区别,按照这篇文章操作了一边,还是没有抓取到mqtt报文。

成功抓取MQTT

因为MQTT协议现在已经属于物联网领域中非常通用的协议了,笔者觉得用 Wireshark 抓取这种通用协议应该不会太难,一定是目前所使用的wireshark软件版本比较低造成的,因此就去wireshark的官网下载了最新版本。

下载链接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5davIeml-1605077264231)(https://i.imgur.com/cVHz8MN.jpg)]

将之前的版本卸载之后,重新安装这个2.4.11的版本,果不其然,已经可以成功抓取到MQTT协议了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Qh8i75U-1605077264233)(https://i.imgur.com/t8pMVWM.jpg)]

其它参考链接

因为笔者在进行MQTT协议测试的过程中,还会使用基于Websocket网页版的MQTT协议,在这种情况下,mqtt报文被websocket协议给包含了,相应的wireshark也就没办法对mqtt协议的具体字段进行解析了,如下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pJ1Pb51i-1605077264234)(https://i.imgur.com/9pK9lJL.jpg)]

基于此,笔者想找到一种能够解析这种基于websocket的mqtt报文的方法让,然后就搜索到了如下一篇文章。下面附上链接。

Lua编写wireshark插件初探——解析Websocket上的MQTT协议

这篇文章的作者提供了一个在wireshark中运行的lua脚本,见如下github链接

于是,我按照这篇文章中的方法,将 mqttoverwebsocket.lua 放入 wireshark的根目录下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kk1lggbF-1605077264235)(https://i.imgur.com/06GzKFH.jpg)]

然后修改了下 C:\Program Files\Wireshark 目录下的 init.lua 初始化脚本,在其脚本末尾增加了加载 mqttoverwebsocket.lua 的代码。

dofile(DATA_DIR.."mqttoverwebsocket.lua")

截图如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u1xUO0K2-1605077264236)(https://i.imgur.com/lvXIDIQ.jpg)]

然后运行基于websocket的MQTT协议客户端,就能抓取到 MQTT over Websocket的报文了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrGPD4LR-1605077264237)(https://i.imgur.com/n9XgiKU.jpg)]

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘雪冰峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值