使用 Extcap 掃描封包

前往 GitHub 查看原始碼

本指南說明如何設定 Wireshark 的 extcap,以從 Thread 網路。

如要使用 Pyspinel 在不擴充封包的情況下進行封包側錄,請參閱透過 Pyspinel

設定 Sniffer 環境

在開始之前,請先完成下列步驟:

驗證

本指南已通過 Zolertia Firefly (Texas Instruments CC2538) SoC) 加入下列主機系統:

  • Debian 4.19.37 - Wireshark 3.0.4
  • macOS Mojave 10.14.6 - Wireshark 3.0.5
  • 64 位元 Windows 10 17134 - Wireshark 3.0.6

建構並刷新 Sniffer

建構與刷新操作說明會因平台而異。

如要瞭解如何建構及刷新 CC2538,請參閱 CC2538 範例 GitHub 上的 README

如需一般建構操作說明,請參閱「如何建構 OpenThread」。

使用 Sniffer

Wireshark 首次啟動時,會顯示 Wireshark 擷取畫面。這項服務 應列出連線至 OpenThread Sniffer 的硬體介面。

從單一介面擷取

如果您是第一次使用介面,請按一下「選項」按鈕 介面左側:

OT Sniffer Wireshark 擴展擷取

  1. 將「Channel」設為所需的值。
  2. 檢查 IEEE 802.15.4 TAP 以確認頻道資訊已 的值,可以顯示在 Wireshark GUI 中。
  3. 勾選「在擷取啟動時儲存參數」,確認這些 參數會在擷取開始後儲存,避免不必 除非您需要 變更頻道)。
  4. 按一下「開始」

OT Sniffer Wireshark Extcap 選項

如果參數已儲存,請從選取硬體開始探查 介面並點選左上角的 Wireshark 圖示。

從多個介面擷取內容

選取擷取畫面上列出的所有硬體介面,然後按一下 Wireshark 圖示,位於左上角。

使用這些欄位辨識個別狙擊裝置 介面:

  • 介面 ID (Frame.interface_id) - Wireshark 使用的介面 ID 辨識擷取介面
  • Interface name (frame.interface_name) - 使用的介面名稱 Wireshark 識別擷取介面
  • 聲道 (wpan-tap.ch_num) — IEEE 802.15.4 擷取頻道 (範圍:11-26)

OT Sniffer Wireshark Extcappack

疑難排解

OpenThread Sniffer 並未列為 Wireshark 介面

  1. 如果您安裝了多個 Python 解譯器,請確認 Python 3 extcap 指令碼會使用翻譯服務。Pyspinel 不支援 Python 2。
  2. 檢查硬體是否已列舉 USB 裝置,以及驅動程式是否載入。
  3. 確認是否已更新正確的韌體 (NCP 或 RCP) 至 硬體
  4. 確認位於 extcap 路徑中的 Python 指令碼是否可執行。
    • OS X 和 Linux:
      1. 驗證 extcap_ot.py 是否有執行權限 檔案:
        ls -l extcap_ot.py
        
      2. 如果缺少執行 (x) 權限,請修改權限:
        chmod +x extcap_ot.py
        
      3. 確認介面已列出:
        extcap_ot.py --extcap-interfaces
        
    • 如使用 Windows:
      1. 確認介面已列出:
        extcap_ot.bat --extcap-interfaces
        
      2. 如果此結束並顯示 Python 錯誤,請確認 Python 版本是否為 3.x:
        py -3 --version
        

Wireshark 僅允許超級使用者擷取封包

在 Ubuntu 上安裝 Wireshark 期間,系統會提示使用者選擇憑證 選項:

  1. 建立「wireshark」使用者群組,並允許該群組的所有成員 擷取封包
  2. 僅允許 root 使用者擷取封包。

強烈建議不要使用 Wireshark 做為 root 使用者。如果您選擇 ,然後變更設定:

sudo dpkg-reconfigure wireshark-common

如果 Wireshark 設為將擷取範圍限制為 wireshark 群組,可能需要將正確的使用者新增至群組:

sudo usermod -a -G wireshark user

同時將正確的使用者新增至 dialout 群組:

sudo usermod -a -G dialout user

關閉並重新啟動 Wireshark,以套用新的使用者群組設定。

在 Windows 上擷取多個 USB 介面時,發生 Wireshark 格式錯誤

這是已知問題 部分舊版 Wireshark確認你使用的是 Wireshark 3.0.6 或