红联Linux门户
Linux帮助

使用wireshark分析MQTT协议

发布时间:2016-06-04 15:27:57来源:linux网站作者:cbing

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


一、Wireshark Generic Dissector:http://wsgd.free.fr/index.html

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

运行情况如图:

使用wireshark分析MQTT协议


本文永久更新地址:http://www.linuxdiyf.com/linux/21235.html