首页 > 解决方案 > 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 中看到以太网接口。我错过了什么?

标签: wireshark

解决方案


那是...

...奇怪的。

dumpcap是set-uid root,应该可以打开捕获设备了,还有cap_net_raw,应该可以打开捕获设备了。Wireshark 依靠 dumpcap 进行捕获并找出存在哪些设备,因此它应该可以看到所有设备。

此外,有一段时间,libpcap 能够在不需要打开设备的情况下获取设备列表,因此即使 dumpcap 不是 set-uid root 并且没有 cap_net_raw,Wireshark 仍然应该您显示设备,但只是不会让你抓住他们。

您应该在 Wireshark 问题列表中将此报告为问题,以便对其进行调试。报告时请提供完整版本信息。


推荐阅读