<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码
本指南介绍如何为 Wireshark 配置 extcap 以嗅探来自 Thread 网络。
要在不使用 extcap 的情况下使用 Pyspinel 进行数据包嗅探,请参阅数据包嗅探 Pyspinel。
设置嗅探器环境
在开始之前,请完成以下步骤:
验证
本指南已通过 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 示例 README 文件。
如需了解常规构建说明,请参阅如何构建 OpenThread。
使用嗅探器
Wireshark 首次启动时会显示 Wireshark 捕获屏幕。它 应列出连接到 OpenThread 嗅探器的硬件接口。
从单个接口捕获
如果这是您第一次使用界面,请点击选项按钮 :
- 将频道设置为所需的值。
- 检查 IEEE 802.15.4 TAP,确保信道信息 包含在 pcap 输出中,并可在 Wireshark GUI 中显示。
- 选中在拍摄开始时保存参数,确保这些参数 参数会在捕获开始后保存,从而避免 请在下次使用界面时再次进行设置(除非您需要 更改渠道)。
- 点击开始。
如果参数已保存,则通过选择硬件开始嗅探 然后点击左上角的 Wireshark 图标
从多个接口捕获
选择截取屏幕中列出的所有硬件接口,然后点击 左上角的 Wireshark 图标。
在从多个嗅探器捕获数据时,请使用这些字段标识各个嗅探器 接口:
- 接口 ID (frame.interface_id) - Wireshark 使用的接口标识符 识别捕获接口
- 接口名称 (frame.interface_name) - 由 Wireshark 来识别捕获接口
- 信道 (wpan-tap.ch_num) - IEEE 802.15.4 捕获通道(范围:11-26)
问题排查
OpenThread 嗅探器未被列为 Wireshark 接口
- 如果您安装了多个 Python 解释器,请确保 Python 3 extcap 脚本会使用解释器。Pyspinel 不支持 Python 2。
- 检查 USB 上是否枚举了硬件以及驱动程序是否已加载。
- 检查是否已将正确的固件(NCP 或 RCP)刷写到 硬件。
- 验证位于 extcap 路径中的 Python 脚本可执行。
- 对于 OS X 和 Linux:
<ph type="x-smartling-placeholder">
- </ph>
- 验证
extcap_ot.py
是否存在执行权限 文件:ls -l extcap_ot.py
- 如果缺少 execute (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:
<ph type="x-smartling-placeholder">
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 或 。