CentOS Sniffer网络监控技巧
Sniffer(嗅探器)是一种网络协议分析工具,通过捕获网络接口上的数据包,帮助管理员监控网络流量、诊断故障、检测安全威胁。在CentOS中,tcpdump是最常用的Sniffer工具(系统自带),此外还有netsniff(第三方高性能工具)等可选。
sudo yum install tcpdump获取。sudo tcpdump -i eth0(eth0为目标网卡,可通过ip link查看可用接口);sudo tcpdump -i eth0 port 80(仅捕获HTTP协议的80端口流量);sudo tcpdump -i eth0 -w output.pcap(将捕获的数据包保存为output.pcap,便于后续分析);tcpdump -r output.pcap(用tcpdump读取本地文件)或用Wireshark图形化分析。sudo yum groupinstall "Development Tools" -y && sudo yum install ncurses-devel zlib-devel awk flex quilt git-lfs openssl-devel xz -y;git clone https://github.com/netsniff/netsniff.git && cd netsniff;make && sudo make install;/etc/netsniff/netsniff.conf(可修改接口、过滤条件、捕获模式等参数);sudo /usr/local/bin/sniff(支持前台运行或添加为系统服务)。过滤条件是Sniffer的核心功能,可减少无关数据包,提高监控效率。常见过滤语法:
tcp(TCP协议)、udp(UDP协议)、icmp(ICMP协议,如ping);port 80(HTTP端口)、portrange 20-21(FTP端口范围);src 192.168.1.100(源IP为192.168.1.100)、dst 10.0.0.1(目的IP为10.0.0.1);tcp and src 192.168.1.100 and port 22(捕获源IP为192.168.1.100、目的端口为22的TCP流量,如SSH连接)。使用sudo tcpdump -i eth0 -n(-n表示禁用DNS解析,加快显示速度),可实时查看网卡上的IP地址、端口、数据包数量等信息,快速识别带宽占用高的连接(如某个IP的大量流出流量可能意味着数据泄露)。
ping -c 4 baidu.com测试目标主机连通性,再用tcpdump -i eth0 icmp捕获ICMP数据包,若未收到回复,可能是网络中断或防火墙拦截;tcpdump -i eth0 port 80捕获HTTP流量,若无SYN包到达目标端口,可能是中间设备(如路由器)阻止了该端口。sudo tcpdump -i eth0 -n | grep -E 'port 22|port 3306'监控SSH(22端口)、MySQL(3306端口)的连接,若短时间内出现大量来自陌生IP的连接尝试,可能是暴力破解;ICMP echo request(ping请求)或UDP碎片数据包,可能是DDoS攻击的迹象。.pcap文件导入Wireshark(图形化工具),可深入分析数据包的协议细节(如TCP三次握手、HTTP请求响应头)、流量趋势(如带宽占用曲线);ngrep工具快速搜索数据包中的特定内容(如ngrep -d eth0 "password"捕获包含“password”的HTTP POST请求,排查敏感信息泄露)。port 80 and host 192.168.1.100)减少不必要的数据包捕获,降低系统负载;net.core.rmem_max(接收缓冲区大小)、net.core.wmem_max(发送缓冲区大小)等参数(如sudo sysctl -w net.core.rmem_max=4194304)。chmod 600 output.pcap);