使用wireshark分析MQTT协议

Posted cbing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用wireshark分析MQTT协议相关的知识,希望对你有一定的参考价值。

  网络上搜索到两种用wireshark工具分析MQTT协议的方法,都是使用wireshark插件,一种是Wireshark Generic Dissector;另一种是使用lua脚本插件(推荐使用这种方式)。

  一、Wireshark Generic Dissector

    1、下载generic.so,注意版本要严格匹配,放到wireshark的插件目录(Global Plugins folder or Personal Plugins folder,可以通过wireshark的 Help / About Wireshark / Folders菜单查看目录);

    2、编辑.wsgd和.fdesc文件(这应该就是协议的规则文件了,有人写好了,网上可以搜到);

    3、设置WIRESHARK_GENERIC_DISSECTOR_DIR环境变量,为.wsgd和.fdesc文件的目录。

    注:我使用了这种方案后,发现协议分析不完备,有些消息不能被正确识别,估计是.wsgd和.fdesc这两个规则文件编写有问题,我的目的是分析MQTT协议,这里就不相信研究这两个文件的编写规则了,后面闲了可以玩玩。

  二、使用lua脚本:

    1、安装lua脚本解释器:sudo apt-get install lua5.2;

    2、使用的时候会提示require("bit")错误,其实就是还需要为lua解释器安装位运算库:sudo apt-get install lua-bitop;

    3、下载脚本:https://github.com/menudoproblema/Wireshark-MQTT,将mqtt.lua放到插件目录;

      或者点击下载:http://files.cnblogs.com/files/bingblogs/Wireshark-MQTT-master.zip

    4、The plugins directory can be found in Wireshark app:help/about wireshark menu.

    运行情况如图:

    

以上是关于使用wireshark分析MQTT协议的主要内容,如果未能解决你的问题,请参考以下文章

MQTT协议探究

MQTT协议分析

Thingsboard源码分析-MQTT设备连接协议(下)

物联网MQTT协议分析和开源Mosquitto部署验证

物联网MQTT协议分析和开源Mosquitto部署验证

Linux应用开发第十六章MQTT协议分析应用开发