簡體   English   中英

如何使用WireShark對從本地計算機發送到Azure IOT集線器的消息進行故障排除?

[英]How to troubleshoot messages sent from local compter to Azure IOT Hub using WireShark?

我正在使用以下代碼段將消息從C#應用程序發送到IOT Hub

    public async Task<MessageToTargetStatus> ForwardMessage(byte[] message)
    {
        var messageToSend = new Microsoft.Azure.Devices.Client.Message(message);            
        await iotHubClient.GetDeviceClient().SendEventAsync(messageToSend).ConfigureAwait(false);
        return MessageToTargetStatus.Success;
    }

Azure IOT Hub成功接收到消息

現在,我想測試這些消息的安全性,並嘗試在WireShark中驗證這些消息。

我在WireShark看到許多記錄,但是我無法確定發送到IOT Hub的消息是哪一條。

我該怎么做? 我正在以“ Windows Service”運行的端口1833上使用MQTT

我添加了以下過濾器,但是沒有運氣

在此處輸入圖片說明

MQTT我可能需要通過網絡適配器強制發送數據包,使用localhost的Windows將使用環回而不是網絡接口卡。 那么如何在WireShark中做到這一點?

設備資源管理器工具屏幕截圖更新了問題

Device Explorer發送單個消息時,我在WireShark看到許多通信記錄。 我應該過濾哪個協議?

在此處輸入圖片說明

連接字符串 -我正在使用Mqtt_WebSocket_Only

  _hubClient = DeviceClient.CreateFromConnectionString(IotHubConnectionString, TransportType.Mqtt_WebSocket_Only);

Azure IoT中心僅支持安全通信,對於MQTT協議,它使用8883端口號。 因此,您需要將捕獲過濾器更改為tcp.port == 8883

參考: Azure IoT中心通信協議和端口

或使用以下命令找到Azure IoT中心IP地址:

ping [your-hub-name].azure-devices.net

然后使用此過濾器:

ip.addr == [iothub-address]

如果使用AMQP,則其端口為5671。可以在Wireshark中設置過濾器,如下所示:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM