在 Debian 里 dumpcap 是用来抓包的程序(Wireshark / tshark 底层使用)。默认只有 root 或 有相应权限的用户 才能直接抓包。常见做法有几种,按推荐程度说明:
wireshark 组(推荐)Debian 安装 Wireshark 时通常会创建一个 wireshark 组,并让 dumpcap 属于该组。
ls -l /usr/bin/dumpcap
正常应类似:
-rwxr-xr-- 1 root wireshark ...
sudo usermod -aG wireshark $USER
newgrp wireshark
或 注销再登录
groups
看到 wireshark 即可。
如果没 wireshark 组,也可以直接给 dumpcap 赋权:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
验证:
getcap /usr/bin/dumpcap
⚠ 注意:
sudo dumpcap -i eth0
或
sudo tshark -i eth0
Permission denied说明当前用户不在 wireshark 组,或没 setcap
必须重新登录
✅ 普通用户抓包:加入 wireshark 组
✅ 脚本/服务:sudo 或 setcap
❌ 不建议长期 root 操作
如果你是要 非 root 用户用 tshark / python scapy / docker,可以告诉我具体场景,我给你更精确的配置。