如何使用 Wireshark 在 SSH 远程服务器本地捕获 MQTT 数据?

How to capture MQTT data locally in SSH remote server using Wireshark?

我想在家里使用 Wireshark 在基于 SSH Linux 的远程服务器上捕获 MQTT 数据包。我可以通过互联网抓包出去,比如当我使用这个命令行mosquitto_pub -h test.mosquitto.org -t topic -m "Hello"时,我可以在Wireshark中看到数据包。但是,当我在 localhost 中发布数据时,例如使用此命令 mosquitto_pub -d -h localhost -t hello/world -m "75" 我在 Wireshark 中看不到任何数据包。我想在同一个远程服务器上创建一个 client/server。

我使用这个命令打开 Wireshark:

sudo ssh user@x.x.x.x tcpdump -U -s0 -w - | wireshark -k -i -

我对Wireshark只懂一点点,请问我是怎么解决的?

您没有指定 tcpdump 应该捕获的接口。尝试添加 -i lo 选项,如:

sudo ssh user@x.x.x.x tcpdump -i lo -U -s0 -w - | wireshark -k -i -