温馨提示×

如何排查debian sniffer故障

小樊
86
2026-09-01 06:56:17
栏目: 智能运维

在 Debian 上,“sniffer 故障”通常指抓包工具(如 tcpdump、Wireshark、tshark、dumpcap)无法抓包、抓不到包或运行异常。下面按排查思路 + 常见原因 + 解决命令来说明。


一、先确认你用的是哪种 sniffer

常见 sniffer:

  • tcpdump
  • tshark / wireshark
  • dumpcap
  • 自写程序(libpcap / AF_PACKET)

不同工具底层都依赖 libpcap + 网络接口。


二、基础排查清单(最重要)

1. 是否以 root 权限运行

抓包需要 root 或 CAP_NET_RAW。

sudo tcpdump -i eth0

非 root 常见错误:

tcpdump: eth0: You don't have permission to capture on that device

解决:

sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

2. 网卡名称是否正确

ip link

不要写错成 eth0(Debian 新版本可能是 ens33、enp3s0)。

测试:

sudo tcpdump -i any

3. 网卡是否 UP

ip link show eth0

如果是 DOWN:

sudo ip link set eth0 up

4. 是否有流量

ip -s link

或:

sudo tcpdump -i eth0 -c 10

如果完全没包:

  • 接口没接网线
  • 在交换机镜像口以外
  • 虚拟机没桥接

三、libpcap / 驱动层问题

5. 检查 libpcap

dpkg -l | grep libpcap

重装:

sudo apt update
sudo apt install --reinstall libpcap0.8

6. 虚拟环境(VM / 容器)问题

  • KVM / VirtualBox:网卡必须桥接(Bridge)
  • Docker:默认不能抓宿主机流量

Docker 抓包示例:

docker run --rm --net=host --privileged tcpdump

四、Wireshark / tshark 专项

7. dumpcap 权限问题

sudo dpkg-reconfigure wireshark-common

选择 yes(允许非 root 抓包)

或:

sudo usermod -aG wireshark $USER

重新登录后生效。


8. tshark 测试

tshark -i eth0

错误示例:

tshark: There are no interfaces on which a capture can be done

→ 权限 or 接口问题


五、内核 / 防火墙干扰

9. 防火墙是否丢包

sudo iptables -L -n -v
sudo nft list ruleset

10. 网络命名空间

ip netns list

如果在 namespace 中:

sudo ip netns exec ns1 tcpdump -i eth0

六、日志与调试

11. 查看系统日志

dmesg | tail
journalctl -xe

12. 打开 tcpdump 调试

sudo tcpdump -i eth0 -vvv

七、快速自检脚本(推荐)

ip link
sudo tcpdump -i any -c 5

八、常见故障速查表

现象 原因
Permission denied 非 root
No such device 网卡名错
抓不到包 没流量 / 虚拟网卡
Wireshark 无接口 dumpcap 权限
Docker 抓不到 没用 host 网络

如果你愿意,可以告诉我:

  • Debian 版本(cat /etc/debian_version)
  • 用的 sniffer(tcpdump / wireshark / 自写)
  • 物理机 / 虚拟机 / 容器
  • 报错原文

我可以给你针对性的排查命令。

0 踩