如何在 Linux 上安装 Wireshark 并捕获 USB 流量?

How to install Wireshark on Linux and capture USB traffic?

我在安装 Wireshark 和捕获 USB 流量时遇到了很多问题,特别是由于用户权限。

如何在 Linux 上安装 Wireshark 并捕获 USB 流量?

已在 Ubuntu 14.04 上测试,但可能适用于其他发行版,因为 none 的步骤特定于 Ubuntu。

第一次学习本教程时,执行所有步骤 1 -> 7。

重新启动计算机后,必须重复步骤 6 和 7 才能在 Wireshark 中看到 USB 接口。

  1. 安装 Wireshark 和 libpcap:

    sudo apt-get install wireshark libpcap0.8

  2. 对于 Debian,Ubuntu 和其他 Debian 衍生产品,继续步骤 3。

    对于其他基于 Linux 的系统或其他安装方法,请参阅 Wireshark Wiki,然后转到步骤 6。

  3. 重新配置 wireshark 以允许非超级用户跟踪数据包:

    sudo dpkg-reconfigure wireshark-common

    Select <Yes> 在提示中

  4. 将您的用户名添加到“wireshark”用户组:

    sudo usermod -a -G wireshark <your_username>

    您可以通过显示您的用户名所属的组来验证它是否正确完成:

    groups <your_username>

    如果没有,您可以手动添加组“wireshark”:

    groupadd wireshark

    然后将您的用户名添加到组中(见上文)

  5. 重要提示:注销您的会话,然后重新登录。

  6. 此步骤取决于您机器上安装的内核版本。要了解您的内核版本,请输入:

    uname -r

    对于 2.6.21 之前的内核版本,如果 debugfs 尚未安装在 /sys/kernel/debug 上,请通过发出以下命令确保它已安装在那里:

    sudo mount -t debugfs / /sys/kernel/debug

对于2.6.21及以后的内核版本,在内核中加载可加载模块usbmon:

`sudo modprobe usbmon`

See [Wireshark Wiki](https://wiki.wireshark.org/CaptureSetup/USB#Linux) for more information about this differentiation.
  1. 如果wireshark中没有出现usbmon接口,使用dumpcap(Wireshark的命令行工具)查找接口:

    sudo dumpcap -D

    您应该会看到 usbmon* 接口。现在显示 usbmon 接口的权限:

    ls -l /dev/usbmon*

    如果 usbmon* 文件有 'crw-------',那么 Wireshark 无法读取它们是正常的,因为它不是 运行 root。 Do not execute wireshark in root mode,可能会损坏文件。相反,您可以授予普通用户权限:

    sudo setfacl -m u:$USER:r /dev/usbmon*

现在 usbmon 接口应该出现在 Wireshark 中。


来源:

https://wiki.wireshark.org/CaptureSetup/USB#Linux

https://wiki.wireshark.org/CaptureSetup/CapturePrivileges#Most_UNIXes

https://unix.stackexchange.com/questions/55722/wireshark-couldnt-run-usr-sbin-dumpcap-in-child-process

http://anonscm.debian.org/viewvc/collab-maint/ext-maint/wireshark/trunk/debian/README.Debian?view=markup