Linux Sniffer通过捕获网络数据包,解析其中的协议类型、源/目的IP地址、端口号、MAC地址、数据包长度、时间戳等关键信息,帮助网络管理员实现安全检测、故障排查或网络规划。以下是具体的操作流程与核心要点:
常用的Linux Sniffer工具包括命令行的tcpdump(轻量、高效)和图形化的Wireshark(功能全面)。安装命令如下:
sudo apt-get update && sudo apt-get install tcpdump;sudo yum install tcpdump;sudo apt-get update && sudo apt-get install wireshark(需安装wireshark-common并配置权限)。使用tcpdump捕获指定网卡(如eth0)的原始数据包,基础命令为:
sudo tcpdump -i eth0
若需保存数据包至文件(便于后续分析),可添加-w参数:
sudo tcpdump -i eth0 -w capture.pcap
为避免捕获过多无关流量,建议结合-n参数(不解析主机名和端口名),减少性能消耗。
通过BPF(Berkeley Packet Filter)语法筛选关键流量,常见过滤条件包括:
192.168.1.100)相关的流量,命令:sudo tcpdump -i eth0 host 192.168.1.100;80端口、SSH的22端口)的流量,命令:sudo tcpdump -i eth0 port 80;sudo tcpdump -i eth0 icmp(ICMP流量,用于ping检测);192.168.1.100的80端口TCP流量,命令:sudo tcpdump -i eth0 tcp and host 192.168.1.100 and port 80。捕获的数据包需解析出核心字段,以识别网络活动的来源、目的地和类型:
0x0800、ARP的0x0806);6、UDP的17、ICMP的1)、TTL(生存时间)(判断路由跳数);80)、目的端口(接收方应用端口,如12345)、控制标志(如SYN表示连接请求、ACK表示确认);UDP提取源端口、目的端口、数据长度;tcpdump -A参数显示ASCII内容)。将捕获的数据包保存为.pcap文件(如capture.pcap),可使用Wireshark打开进行可视化分析:
http.request.method == GET筛选GET请求、tcp.analysis.retransmission筛选重传包);tcpdump可能占用大量CPU和内存资源,建议限制捕获速率(如-c 100捕获100个包)或过滤无关流量;.pcap文件可能包含敏感信息(如密码、个人数据),需妥善存储,避免泄露。通过以上步骤,Linux Sniffer可有效提取网络数据包中的关键信息,为网络监控、安全检测和故障排查提供有力支持。