“CentOS sniffer 启动失败” 这个问题比较常见,但原因取决于你说的“sniffer”具体指什么。下面我分几种常见情况说明,你可以对照排查。
大多数 sniffer 需要 CAP_NET_RAW 或 root 权限。
sudo tcpdump -i eth0
否则常见报错:
tcpdump: eth0: You don't have permission to capture on that device
socket: Operation not permitted
✅ 解决:
rootsudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump
ip link
如果接口是 DOWN:
sudo ip link set eth0 up
eth0 实际不存在ens33 / enp0s3✅ 解决:
ip addr
tcpdump -i any
CentOS 默认开启 SELinux。
查看:
getenforce
如果是 Enforcing,可临时测试:
sudo setenforce 0
✅ 永久解决(不推荐盲目关):
semanage permissive -a tcpdump_t
systemctl status sniffer
journalctl -xe
常见错误:
ss -lntp
netstat -lntp
ldd sniffer
常见失败原因:
ip link set eth0 promisc on
请直接贴出以下信息,我可以精确判断:
cat /etc/centos-release
✅ 一句话总结:
CentOS 上 sniffer 启动失败,90% 是权限、网卡、SELinux 或接口名问题。
告诉我你用的是哪个 sniffer,我可以直接给你对应解决方案。