wireshark - Wireshark 接口
问题描述
运行 Arch linux,wireshark 通过 pacman 安装。我是网络和wireshark 组的成员,自从将自己添加到这些组后,我不仅注销了,而且还完全重新启动了计算机。设置了 dumpcap 的权限,并且 setcap 运行(多次)。我可以通过普通用户的 CLI 直接运行 dumpcap 并捕获数据包:
╰─❯ groups
tty network wireshark libvirt docker users uucp optical disk audio wheel ddjones
╰─❯ ls -l /usr/bin/dumpcap
-rwsr-x--- 1 root wireshark 116928 Jun 7 15:16 /usr/bin/dumpcap
╰─❯ getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip
─❯ dumpcap
Capturing on 'enp6s0'
File: /tmp/wireshark_enp6s09ZS040.pcapng
Packets captured: 37
Packets received/dropped on interface 'enp6s0': 37/0 (pcap:0/dumpcap:0/flushed:0/ps_ifdrop:0) (100.0%)
如果我通过 sudo 运行 wireshark,我会看到本地网络接口。如果我以普通用户身份运行它,我看到的只有 ciscodump、dpausmon、ranpkt、sdjournal、sshdump 和 udpdump。我能找到的所有东西都说要在 dumpcap 上设置 perms 和 caps,我应该能够在 Wireshark 中看到以太网接口。我错过了什么?
解决方案
那是...
...奇怪的。
dumpcap是set-uid root,应该可以打开捕获设备了,还有cap_net_raw,应该也可以打开捕获设备了。Wireshark 依靠 dumpcap 进行捕获并找出存在哪些设备,因此它应该可以看到所有设备。
此外,有一段时间,libpcap 能够在不需要打开设备的情况下获取设备列表,因此即使 dumpcap 不是 set-uid root 并且没有 cap_net_raw,Wireshark 仍然应该向您显示设备,但只是不会让你抓住他们。
您应该在 Wireshark 问题列表中将此报告为问题,以便对其进行调试。报告时请提供完整版本信息。
推荐阅读
- git - 如何在不影响我签出的工作文件夹的情况下从远程存储库重置我的整个 .git 文件夹?
- css - 如何不重复具有多个响应式背景的背景规范
- typescript - 打字稿:如何从联合类型中排除仅具有可选属性的接口
- vue.js - Axios 调用总是以 then() 回调结束
- javascript - 链接 $http.get AngularJS
- java - 如何在 Sceneform 中实现环境 HDR 光照估计?
- scala - 当 println() 内部有函数调用时,scala println() 中的打印顺序是什么?
- c# - 当文本使用某些其他语言时,PersonPicture 的行为不符合预期
- powershell - 挂载时如何获取 ISO FriendlyName
- r - 替换列名而不输入实际的列名