概述
由于wireshark抓MQTT协议的包只能显示到TCP层次,要分析MQTT协议,就要添加wireshark插件——Wireshark Generic Dissector。
下载和配置
首先第一步下载generic.dll(Windows)或generic.so(Linux),并放到Wireshark的插件目录(Global Plugins folder或者Personal Plugins folder,可以通过菜单栏Help -> About Wireshark -> Folders查看)。
注意对应好
Global Plugins folder一般是在Wireshark主目录下的plugins\1.12.4(...\Wireshark\plugins\1.12.4)。
然后添加MQTT规则文件,有两个:.wsgd和.fdesc。
添加环境变量
最后添加系统环境变量:WIRESHARK_GENERIC_DISSECTOR_DIR,指定为上面两个规则文件的目录。
或者把上面两个文件放到下面其中一个目录下:
wireshark profiles directory (e.g. C:\Users<user>\AppData\Roaming\Wireshark\profiles) wireshark data directory (e.g. C:\Users<user>\Documents) wireshark plugin directory (e.g. C:\Program Files\Wireshark1.0.3\plugins\1.0.3) wireshark main directory (e.g. C:\Program Files\Wireshark1.0.3) |
运行
运行Wireshark,在过滤器输入mqttv31或对应的ip地址,就可以看到Protocol有显示MQTTv3.1协议了。
最终效果图
注意事项
如果是使用Apache-Apollo作为MQTT服务器,由于使用的端口不同,所以还需要修改过滤文件的端口(原本是1883)。使用编辑器打开mqtt3.1.wsgd文件。把PARENT_SUBFIELD_VALUES修改成61613,保存。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。