Wireshark(以前是ethereal)是非常简单易用的可视化图形抓包工具,但在Linux下很难找到一个好用的图形化抓包工具。但是Linux下可以使用Tcpdump,我们可以用Tcpdump + Wireshark 实现,在 Linux 里抓包,然后在wireshark里分析包。
使用方法
一、指定网卡和IP,监听MQTT的1883端口数据,并保存到文件
tcpdump -AX -i eth1 host [IP] and tcp port 1883 -w mqtt.cap
参数说明:
- -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据(nt: 即Handy for capturing web pages).
- -X 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部).这对于分析一些新协议的数据包很方便.
- -i eth1:指定监听的网络接口,可以使用ifconfig获取网络配置
- host 数据包的源或目的地址是指定IP或者主机名
- -w 数据包保存到指定文件
二、使用netstat,获取指定进程的监听端口,或者某一个端口的使用情况
netstat -pan | grep 1883
三、使用Wireshark分析MQTT协议
Wireshark过滤MQTT的语法规则,可以参考:https://www.wireshark.org/docs/dfref/m/mqtt.html
原创文章,转载请注明:转载自Web开发笔记 | 使用wireshark和Tcpdump分析MQTT协议
本文链接地址:https://www.magentonotes.com/wireshark-tcpdump-mqtt-protocol.html
Comments on this entry are closed.