在 Debian 上“调试 sniffer”要看你具体指的是哪一种 sniffer:
下面按最常见情况给你一套通用调试思路。
which tcpdump
which tshark
安装:
sudo apt update
sudo apt install tcpdump wireshark
普通用户抓包常失败:
sudo tcpdump -i eth0
或把用户加入 pcap 组:
sudo usermod -aG pcap $USER
ip link
sudo tcpdump -i any -n
sudo tcpdump -i eth0 -nn -v
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 host 192.168.1.1
sudo tcpdump -i eth0 -w debug.pcap
Wireshark 打开:
wireshark debug.pcap
gcc sniffer.c -o sniffer -lpcap
pcap_open_live("eth0", ...)
错误:
eth0: No such device
解决:
ip link
pcap_activate() failed: Permission denied
解决:
sudo ./sniffer
pcap_compile()
pcap_setfilter()
调试方法:
fprintf(stderr, "%s\n", pcap_geterr(handle));
sudo snort -T -c /etc/snort/snort.conf
sudo snort -A console -q -c /etc/snort/snort.conf
cat /proc/net/dev
sudo iptables -L
sudo nft list ruleset
ip link set eth0 promisc on
你可以补充:
cat /etc/debian_version)我可以直接帮你定位问题。