Plainnotes

普通用户抓包:权限和能力位

2026-03-11 · 2 分钟工具

tcpdump 默认需要 root,因为要打开原始套接字。每次 sudo 很烦,但直接 chmod u+s 又太危险——任何用户都能抓全机流量。

更合适的做法是给二进制加能力位:

setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump

然后普通用户就能抓自己的流量。注意发行版升级 tcpdump 后能力位可能丢失,要重新设。

另一个方向是用 dumpcap(Wireshark 套件),它内置了权限分离:抓包进程有权限,解析和写文件以普通用户跑,安全模型更清楚。生产机上抓包记得限制时长和文件大小,-w 加上 -C 100 -W 5 防止写满磁盘。