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

mat*_*ieu 12 linux usb ubuntu root wireshark

我在Wireshark的安装中遇到了很多问题,并且捕获了USB流量,特别是由于用户权限.

在答案中,我描述了完成这项工作的完整工作流程.每个问题的答案都在不同的论坛上给出,所以我想我会在一个答案中将所有内容整合在一起,以避免未来的用户在他们遇到的每一个问题上使用Google.

mat*_*ieu 28

在Ubuntu 14.04上测试过,但可能适用于其他发行版,因为没有任何步骤是特定于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

    <Yes>在提示中选择

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

    sudo usermod -a -G wireshark <your_username>

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

    groups <your_username>

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

    groupadd wireshark

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

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

  6. 此步骤取决于计算机上安装的内核版本.要了解内核的版本,请键入:

    uname -r

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

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

    对于内核版本2.6.21及更高版本,在内核中加载可加载模块usbmon:

    sudo modprobe usbmon

    有关此区别的更多信息,请参见Wireshark Wiki.

  7. 如果usbmon接口没有出现在Wireshark中,请使用dumpcap(Wireshark的命令行工具)查找接口:

    sudo dumpcap -D

    你应该看到usbmon*接口.现在显示usbmon接口的权限:

    ls -l /dev/usbmon*

    如果usbmon*文件有'crw -------',那么Wireshark无法读取它们是正常的,因为它不是以root身份运行的.不要以root模式执行wireshark,它可能会损坏文件.相反,您可以为其提供常规用户权限:

    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