“CentOS Sniffer 无响应”这个说法比较笼统,通常我们说的 Sniffer 可能指:
tcpdumpwireshark(命令行 tshark)libpcap / AF_PACKET)下面按常见原因 + 对应排查方法给你梳理一下。
在 CentOS 上抓包需要 root 或_CAP_NET_RAW 权限。
现象
tcpdump 直接退出或无响应解决
sudo tcpdump -i eth0
或
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
CentOS 7+ 常用:
ens192eth0(老版本)检查
ip addr
错误示例
tcpdump -i eth1 # eth1 不存在 → 无响应或报错
比如:
lo 但没本地通信验证
ip -s link
看哪个接口有 RX / TX 包
ip link show eth0
如果是 state DOWN:
sudo ip link set eth0 up
CentOS 默认开启 SELinux,可能阻止抓包。
临时验证
setenforce 0
再试 sniffer
如恢复正常:
getenforce
某些虚拟网卡 / bond 场景下:
systemctl stop NetworkManager
(仅测试用)
在以下环境中:
可能抓不到包
检查
ip link show eth0
看有没有 PROMISC
例如:
tcpdump -i eth0 -w file.pcap
但:
-n(DNS 解析卡死)建议
tcpdump -i eth0 -nn -v
老 CentOS + 新内核:
升级
yum update libpcap
# 1. 是否是 root
whoami
# 2. 网卡是否存在
ip addr
# 3. 网卡是否 up
ip link
# 4. 是否有流量
ip -s link
# 5. 是否能抓包
sudo tcpdump -i eth0 -nn -c 10
请告诉我:
cat /etc/redhat-release)我可以直接给你对应的一条解决命令。