我需要从 Web 服务的 Web 用户界面启动本地 Wireshark,以立即启动捕获会话,并使用一些外部捕获插件连接到 Web 服务。使用 Firefox 时,启动 Wireshark,然后数据包捕获即可。使用 Chromium 时,Wireshark 启动,但数据包捕获失败,因为 /usr/bin/dumpcap 似乎受到限制。
- 安装 Wireshark,以便非 root 用户也可以使用它。
- 将我的用户添加到 wireshark 组:
sudo gpasswd -a $USER wireshark
- 从 bash 终端启动 wireshark 并成功开始捕获。
接下来,我注册了一个桌面条目(xdg-settings set default-url-scheme-handler xxx xxx.desktop
):
[Desktop Entry]
Encoding=UTF-8
Name=Remote Capture URL Handler
Type=Application
Exec=wireshark -k -i xxx -o extcap.xxx.url:%u
MimeType=x-scheme-handler/xxx
Terminal=false
NoDisplay=true
Categories=Utility
单击 xxx:// 链接可以正确启动 Wireshark,但 Wireshark 无法启动 dumpcap:
Couldn't run /usr/bin/dumpcap in child process: Permission denied
Dumpcap 已设置 POSIX 文件功能,但看起来 Chromium 沙盒可能会改变边界功能?
$ ls -l `which dumpcap`
-rwxr-xr-- 1 root wireshark 121344 Mar 15 18:01 /usr/bin/dumpcap
$ getcap `which dumpcap`
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip
我如何使用 Chromium 注册我的应用程序,以便以用户的完整权限正确启动,从而 Wireshark 能够运行 dumpcap?