本指南說明如何設定 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 的硬體介面。
從單一介面擷取
如果您是第一次使用介面,請按一下「選項」按鈕 介面左側:
- 將「Channel」設為所需的值。
- 檢查 IEEE 802.15.4 TAP 以確認頻道資訊已 的值,可以顯示在 Wireshark GUI 中。
- 勾選「在擷取啟動時儲存參數」,確認這些 參數會在擷取開始後儲存,避免不必 除非您需要 變更頻道)。
- 按一下「開始」。
如果參數已儲存,請從選取硬體開始探查 介面並點選左上角的 Wireshark 圖示。
從多個介面擷取內容
選取擷取畫面上列出的所有硬體介面,然後按一下 Wireshark 圖示,位於左上角。
使用這些欄位辨識個別狙擊裝置 介面:
- 介面 ID (Frame.interface_id) - Wireshark 使用的介面 ID 辨識擷取介面
- Interface name (frame.interface_name) - 使用的介面名稱 Wireshark 識別擷取介面
- 聲道 (wpan-tap.ch_num) — IEEE 802.15.4 擷取頻道 (範圍:11-26)
疑難排解
OpenThread Sniffer 並未列為 Wireshark 介面
- 如果您安裝了多個 Python 解譯器,請確認 Python 3 extcap 指令碼會使用翻譯服務。Pyspinel 不支援 Python 2。
- 檢查硬體是否已列舉 USB 裝置,以及驅動程式是否載入。
- 確認是否已更新正確的韌體 (NCP 或 RCP) 至 硬體
- 確認位於 extcap 路徑中的 Python 指令碼是否可執行。
- OS X 和 Linux:
- 驗證
extcap_ot.py
是否有執行權限 檔案:ls -l extcap_ot.py
- 如果缺少執行 (x) 權限,請修改權限:
chmod +x extcap_ot.py
- 確認介面已列出:
extcap_ot.py --extcap-interfaces
- 驗證
- 如使用 Windows:
- 確認介面已列出:
extcap_ot.bat --extcap-interfaces
- 如果此結束並顯示 Python 錯誤,請確認 Python 版本是否為 3.x:
py -3 --version
- 確認介面已列出:
- OS X 和 Linux:
Wireshark 僅允許超級使用者擷取封包
在 Ubuntu 上安裝 Wireshark 期間,系統會提示使用者選擇憑證 選項:
- 建立「
wireshark
」使用者群組,並允許該群組的所有成員 擷取封包 - 僅允許
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 或