首页主机资讯centos sniffer怎样分析捕获的数据

centos sniffer怎样分析捕获的数据

时间2025-12-18 00:44:03发布访客分类主机资讯浏览999
导读:在 CentOS 上分析捕获的数据 一、分析流程与常用命令 明确目标并选择接口:先确定要分析的主机、端口、协议或问题现象,再用tcpdump -D列出接口,选择如eth0/ens33等目标接口。 精确捕获:使用BPF 过滤表达式只抓取感兴...

在 CentOS 上分析捕获的数据

一、分析流程与常用命令

  • 明确目标并选择接口:先确定要分析的主机、端口、协议或问题现象,再用tcpdump -D列出接口,选择如eth0/ens33等目标接口。
  • 精确捕获:使用BPF 过滤表达式只抓取感兴趣流量,配合**-nn**(不解析主机名/端口)、-s(快照长度,必要时用**-s 0抓取全包)、-c**(包数限制)降低开销。
  • 保存到文件:用**-w file.pcap保存原始包,便于反复分析与共享;后续用-r file.pcap**离线读取并继续加过滤条件分析。
  • 快速查看负载:用**-A**(ASCII)或**-X**(十六进制+ASCII)查看应用层内容;高流量时建议先写文件再分析。
  • 性能与丢包控制:长时抓包可用**-G 秒 -C 大小MB进行分段滚动**保存,减少单文件过大与丢包风险。
  • 基本流程示例:
    • 捕获某主机的 80/443 流量到文件:
      sudo tcpdump -i eth0 -nn -s 0 -w web.pcap ‘host 192.168.1.100 and (port 80 or port 443)’
    • 读取文件并只看 HTTP GET/POST:
      tcpdump -nn -r web.pcap -A ‘tcp port 80 and (http.request.method == “GET” or http.request.method == “POST”)’
    • 只抓取前 100 个 SYN 包:
      sudo tcpdump -i eth0 -nn -c 100 ‘tcp[tcpflags] & tcp-syn != 0’。

二、常见分析场景与命令示例

  • TCP 三次握手与连接异常:
    • 查看所有握手过程:
      tcpdump -nn -r web.pcap ‘tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn’
    • 仅看 SYN-ACK(服务器应答):
      tcpdump -nn -r web.pcap ‘tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn|tcp-ack’
  • 重传与丢包定位:
    • 命令行快速筛查重传迹象(如重复 SYN、重复 ACK):
      tcpdump -nn -r web.pcap ‘tcp[tcpflags] & tcp-syn != 0’ | head
    • 图形化分析建议用 Wireshark,显示过滤器:
      • 重传:tcp.analysis.retransmission
      • 丢包:tcp.analysis.lost_segment
      • 乱序:tcp.analysis.out_of_order
        统计:Statistics → Conversations → TCP 查看重传统计、RTT、窗口变化。
  • DNS 查询与响应:
    • 抓取目标 8.8.8.8 的 DNS(UDP/TCP 53):
      sudo tcpdump -nn -i eth0 -s 0 ‘udp or tcp port 53 and dst host 8.8.8.8’ -w dns.pcap
      tcpdump -nn -r dns.pcap -A | egrep -i “query|answer|status:”
  • HTTP 明文内容排查:
    • 抓取 80 端口并输出可读负载:
      sudo tcpdump -i eth0 -nn -A -s 0 ‘tcp port 80 and (((ip[2:2] - ((ip[0]& 0xf)< < 2)) - ((tcp[12]& 0xf0)> > 2)) != 0)’
      提示:HTTPS/TLS 内容加密,需密钥或会话密钥才能解密,tcpdump/tshark 无法直接显示明文。
  • 按主机/网段快速筛选:
    • 某主机进出站:
      tcpdump -nn -r web.pcap ‘host 10.0.0.5’
    • 某网段到本机 443:
      tcpdump -nn -r web.pcap ‘src net 192.168.1.0/24 and dst port 443’。

三、使用 Wireshark 或 tshark 进行深度分析

  • 安装与权限:
    • 安装:sudo yum install -y wireshark wireshark-gnome
    • 非 root 抓包:将用户加入 wireshark 组(sudo usermod -a -G wireshark $USER),重新登录后使用。
  • 图形化分析:
    • 打开 .pcap,用显示过滤器如ip.addr==x.x.x.x & & tcp.port==443聚焦目标;
    • 右键包 → Follow → TCP Stream 重组会话;
    • Statistics → Conversations/TCP 查看重传、RTT、吞吐量、会话分布;
    • Analyze → Expert Info 快速定位异常(重传、乱序、丢包、握手失败等)。
  • 命令行 tshark:
    • 读取文件并按显示过滤:
      tshark -r web.pcap -R ‘http.request.method == “GET” or http.request.method == “POST”’ -V
    • 统计型分析(如会话、HTTP 状态码分布):
      tshark -r web.pcap -q -z conv,tcp
      tshark -r web.pcap -q -z http,stat

四、自动化统计与脚本化处理

  • 统计 Top N 对话或端口:
    • Top 10 源 IP:
      tcpdump -nn -r web.pcap | awk ‘{ print $3} ’ | sort | uniq -c | sort -nr | head
    • Top 10 目的端口:
      tcpdump -nn -r web.pcap | awk ‘{ print $5} ’ | cut -d. -f5 | sort | uniq -c | sort -nr | head
  • 用 Python 与 Scapy 批量解析:
    • 安装:sudo yum install -y python3-scapy(或 pip 安装 scapy)
    • 示例脚本(统计 TCP 会话与重传标志):
      from scapy.all import *
      pkts = rdpcap(‘web.pcap’)
      conv = { }
      for p in pkts:
      if not (IP in p and TCP in p): continue
      key = (p[IP].src, p[TCP].sport, p[IP].dst, p[TCP].dport)
      conv[key] = conv.get(key, 0) + 1
      if p[TCP].flags & 0x04:
      print(“RST”, p.summary())
      print(“Top sessions:”, sorted(conv.items(), key=lambda x: -x[1])[:10])
  • 长时分段抓包便于事后分析:
    sudo tcpdump -i eth0 -w cap.pcap -G 600 -C 10(每10 分钟10 MB切分一个文件)。

五、排错与性能建议

  • 权限与接口:抓包通常需要root或加入wireshark组;用**-D确认接口名,必要时开启混杂模式**以看到经过接口的所有流量。
  • 过滤器优先:先用BPF精准过滤(如host/port/proto),再逐步放宽条件,避免海量无关数据拖慢分析。
  • 快照长度与丢包:默认快照长度通常足够,必要时用**-s 0**;高流量环境用**-G/-C**分段保存,减少丢包与磁盘压力。
  • 解密 HTTPS:仅有 .pcap 无法解密 TLS;需在客户端导出会话密钥(如浏览器 SSLKEYLOGFILE)并在 Wireshark/tshark 中配置后查看明文。
  • 合法合规:仅在授权范围内抓包与分析,避免侵犯隐私或违反策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos sniffer怎样分析捕获的数据
本文地址: https://pptw.com/jishu/774555.html
centos如何回收网络资源 如何在CentOS中压缩Golang日志文件

游客 回复需填写必要信息