在 Debian 系统中,dumpcap 是 Wireshark 用来抓取网络数据包的工具。默认情况下它需要 root 权限 才能访问网络接口。为了安全起见,通常不建议直接用 sudo dumpcap,而是使用 capabilities 或 用户组 的方式授权。
下面是 推荐且安全的设置方法。
setcap 赋予 dumpcap 抓包权限(最常用 ✅)sudo apt update
sudo apt install wireshark
安装过程中会询问:
Should non-superusers be able to capture packets?
选择 Yes。
which dumpcap
通常是:
/usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
验证:
getcap /usr/bin/dumpcap
输出应类似:
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
✅ 完成后,普通用户即可使用 Wireshark / dumpcap 抓包
grep wireshark /etc/group
sudo usermod -aG wireshark $USER
newgrp wireshark
或 注销并重新登录
ls -l /usr/bin/dumpcap
如果不是,可修复:
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
sudo dumpcap -i eth0
⚠️ 不推荐用于日常抓包,仅用于调试。
普通用户执行:
dumpcap -D
能列出网卡说明权限正常 ✅
sudo dpkg-reconfigure wireshark-common
重新选择允许普通用户抓包
✅ 最佳实践
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
✅ 配合用户组
sudo usermod -aG wireshark $USER
如果你需要:
可以继续告诉我你的具体使用场景。