一、准备工作:安装必要依赖库
在配置Linux Sniffer前,需先安装编译工具及依赖库,确保后续步骤顺利执行。
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-lfs libssl-dev xz-utils -y
sudo yum groupinstall "Development Tools" -y
sudo yum install ncurses-devel zlib-devel awk flex quilt git-lfs openssl-devel xz -y
二、选择并安装Sniffer工具
常见Linux Sniffer工具包括netsniff(自定义编译安装)、tcpdump(命令行,轻量便捷)、Wireshark(图形界面,功能全面)。以下以netsniff(需从源码编译)和tcpdump(直接通过包管理器安装)为例说明:
git clone https://github.com/netsniff/netsniff.git
cd netsniff
make
sudo make install
sudo apt install tcpdump
sudo yum install tcpdump
三、配置Sniffer核心参数
配置文件是Sniffer的核心设置项,需根据需求调整以下参数:
/etc/netsniff/netsniff.conf
CAPTURE_ENABLED=1
(启用)或CAPTURE_ENABLED=0
(禁用);MODE=promisc
(混杂模式,捕获所有经过接口的流量)或MODE=nonpromisc
(非混杂模式,仅捕获目标为本机的流量);INTERFACE=eth0
(根据实际网卡名称修改,如wlan0
为无线网卡);FILTER="tcp and src host 192.168.1.100"
(仅捕获源IP为192.168.1.100的TCP流量,可根据需求调整,如udp port 53
捕获DNS请求)。eth0
接口的所有HTTP流量,保存到capture.pcap
文件,限制捕获1000个数据包:sudo tcpdump -i eth0 -w capture.pcap -c 1000 'tcp port 80'
四、启动与运行Sniffer
sudo /usr/local/bin/sniff
如需开机自启,需根据发行版创建systemd服务文件(如/etc/systemd/system/sniff.service
),内容示例:[Unit]
Description=Linux Sniffer Service
After=network.target
[Service]
ExecStart=/usr/local/bin/sniff
Restart=always
User=root
[Install]
WantedBy=multi-user.target
然后执行以下命令启用并启动服务:sudo systemctl enable sniff
sudo systemctl start sniff
-D
参数(指定接口)或重定向输出到日志文件。五、查看与分析捕获结果
less
)查看:sudo /usr/local/bin/sniff | less
.pcap
文件可使用以下方式查看:
sudo tcpdump -r capture.pcap
(-r
表示读取文件);capture.pcap
文件(支持更详细的协议分析和过滤)。六、关键注意事项
sudo
或以root用户身份运行Sniffer。-c 1000
)或大小(如-s 96
,设置快照长度为96字节,仅捕获包头);-w capture.pcap
),而非直接输出到控制台,减少内存消耗。