在 Debian 上,“sniffer 故障”通常指抓包工具(如 tcpdump、Wireshark、tshark、dumpcap)无法抓包、抓不到包或运行异常。下面按排查思路 + 常见原因 + 解决命令来说明。
常见 sniffer:
tcpdumptshark / wiresharkdumpcap不同工具底层都依赖 libpcap + 网络接口。
抓包需要 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
ip link
不要写错成 eth0(Debian 新版本可能是 ens33、enp3s0)。
测试:
sudo tcpdump -i any
ip link show eth0
如果是 DOWN:
sudo ip link set eth0 up
ip -s link
或:
sudo tcpdump -i eth0 -c 10
如果完全没包:
dpkg -l | grep libpcap
重装:
sudo apt update
sudo apt install --reinstall libpcap0.8
Docker 抓包示例:
docker run --rm --net=host --privileged tcpdump
sudo dpkg-reconfigure wireshark-common
选择 yes(允许非 root 抓包)
或:
sudo usermod -aG wireshark $USER
重新登录后生效。
tshark -i eth0
错误示例:
tshark: There are no interfaces on which a capture can be done
→ 权限 or 接口问题
sudo iptables -L -n -v
sudo nft list ruleset
ip netns list
如果在 namespace 中:
sudo ip netns exec ns1 tcpdump -i eth0
dmesg | tail
journalctl -xe
sudo tcpdump -i eth0 -vvv
ip link
sudo tcpdump -i any -c 5
| 现象 | 原因 |
|---|---|
| Permission denied | 非 root |
| No such device | 网卡名错 |
| 抓不到包 | 没流量 / 虚拟网卡 |
| Wireshark 无接口 | dumpcap 权限 |
| Docker 抓不到 | 没用 host 网络 |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你针对性的排查命令。