在 CentOS 上排查“sniffer 错误”通常取决于你用的是哪种 sniffer 工具(如 tcpdump、wireshark、sniffit、netsniff-ng,或自己写的服务叫 sniffer)。下面按最常见场景给你一套通用排查思路。
请先确认报错信息,例如:
tcpdump: eth0: You don't have permissioncan't open eth0: Permission deniedNo such devicesocket: Operation not permittedlibpcap error不同错误原因不同。
现象
tcpdump: eth0: You don't have permission to capture on that device
排查
whoami
id
解决
sudo tcpdump -i eth0
wheel / 使用 setcap:sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
现象
tcpdump: eth0: No such device
排查
ip addr
ip link
解决
tcpdump -i ens33
现象
error while loading shared libraries: libpcap.so
排查
rpm -qa | grep libpcap
ldconfig -p | grep pcap
解决
sudo yum install -y libpcap libpcap-devel
现象
/var/log/audit/audit.log 有 deny排查
getenforce
sudo ausearch -m avc -ts recent
临时解决
sudo setenforce 0
长期
场景
问题
CAP_NET_RAW/dev/net/tun解决(Docker 示例)
docker run --cap-add=NET_RAW --cap-add=NET_ADMIN ...
排查
lsmod | grep af_packet
dmesg | tail
如有问题:
sudo modprobe af_packet
请提供:
raw socket / PF_PACKET示例(Python):
PermissionError: [Errno 1] Operation not permitted
→ 需要 root 或 CAP_NET_RAW
你可以直接贴:
cat /etc/redhat-release)我可以给你精确到命令级别的解决方案。