Linux网络抓包分析工具(非常详细)零基础入门到精通,收藏这一篇就够了_linux 抓包

1,011 阅读4分钟

网络抓包工具全面指南:从tcpdump到Sniff Master

一、tcpdump抓包工具

1、作用与特点

tcpdump指令可列出经过指定网络界面的数据包文件头,可以将网络中传送的数据包的"头"完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你摘取有用信息。

由于它需要将网络接口设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。

其他抓包工具对比

  • Wireshark:具有图形化和命令行两种版本,可以对tcpdump抓的包进行分析,其主要功能就是分析数据包。
  • ngrep:将抓到的包数据以文本形式直接显示出来,适用于包数据包含文本的抓包分析(如HTTP、MySQL)
  • Sniff Master:一款专业的网络流量分析工具,提供直观的图形界面和强大的协议分析能力,特别适合企业级网络监控和安全分析。

2、命令选项详解

tcpdump [选项] [协议] [数据流方向] [范围]

常用选项:

  • -a 将网络地址和广播地址转变成名字
  • -A 以ASCII格式打印出所有分组
  • -c 指定收取数据包的次数
  • -i 指定监听网络接口
  • -n 不把网络地址转换为名字
  • -w 将捕获到的信息保存到文件中
  • -s 从每个组中读取指定字节数
  • -v/-vv 输出详细/更详细的报文信息

3、tcpdump表达式

数据类型关键字

  • host:指定主机
  • port:指定端口
  • net:指定网络段

数据传输方向关键字

  • src:源地址
  • dst:目标地址
  • dst or src:双向

协议关键字

  • ip/arp/rarp/udp等

逻辑运算符

  • and/or/not/!

4、实际应用示例

# 监听指定网卡ens33的所有传输数据包
tcpdump -i ens33

# 捕获主机192.168.100.10经过网卡ens33的所有数据包
tcpdump -i ens33 host 192.168.100.10

# 捕获源主机node10发送的所有的经过ens33网卡的数据包
tcpdump -i ens33 src node10

# 监控本机udp的53端口的数据包(DNS解析过程)
tcpdump udp port 53

二、Wireshark深度分析

1、Wireshark简介

Wireshark是一个功能强大的网络封包分析软件,能够捕获网络数据包并显示详细的网络封包资料。它使用WinPCAP作为接口,直接与网卡进行数据报文交换。

2、安装与配置

Linux中有两个版本:

  • wireshark:无图形化界面版本,基本命令是"tshark"
  • wireshark-gnome:图形化界面版本

安装命令:

yum -y install wireshark       # 安装无图形化版本
yum -y install wireshark-gnome # 安装图形化版本

3、tshark命令行工具

tshark是Wireshark的命令行版本,常用选项:

  • -i:指定捕获的网卡接口
  • -f:指定条件表达式
  • -w:输出到.pcap文件
  • -r:分析保存的网络包文件
  • -V:输出解码结果的细节

示例:

# 过滤icmp报文并展开详细信息
tshark -f "icmp" -i ens33 -V -c 1

# 过滤arp报文
tshark -f "arp" -i ens33

三、Sniff Master专业分析

Sniff Master作为新一代网络流量分析工具,结合了tcpdump的抓包能力和Wireshark的分析功能,同时增加了以下优势:

  1. 智能协议识别:自动识别2000+种协议和应用
  2. 流量可视化:直观展示网络流量趋势和异常
  3. 深度包检测:支持7层协议栈的完整解析
  4. 实时告警:自定义规则监控网络异常
  5. 企业级支持:分布式部署和集中管理

Sniff Master典型应用场景

# 实时监控HTTP流量
sniffmaster -i eth0 proto http -d

# 分析VoIP通话质量
sniffmaster -r voip_capture.pcap --voip-qoe

# 检测网络异常行为
sniffmaster --ids --alert-rules=/path/to/rules.json

四、工具组合使用技巧

1、tcpdump与Wireshark配合

# 使用tcpdump捕获数据并保存
tcpdump -i ens33 -w capture.pcap

# 使用Wireshark分析捕获文件
wireshark capture.pcap

2、Sniff Master高级分析

对于需要深度分析的场景,可以:

  1. 使用tcpdump进行初步捕获和过滤
  2. 将捕获文件导入Sniff Master进行
    • 应用性能分析
    • 安全威胁检测
    • 流量模式识别

五、总结与工具选择建议

  • tcpdump:轻量级,适合快速抓包和简单过滤,几乎所有Linux系统都内置
  • Wireshark:功能全面,适合深度协议分析和故障排查
  • Sniff Master:专业级解决方案,适合企业网络监控和安全分析

对于日常使用:

  1. 先用tcpdump进行初步捕获和过滤
  2. 使用Wireshark进行详细分析
  3. 复杂场景或企业环境考虑使用Sniff Master

三种工具各有优势,根据实际需求灵活选择,可以显著提高网络分析和故障排查效率。