运维痛点:生产环境抓包文件巨大(GB级),人工分析效率低,需要自动化提取关键指标、生成报告、触发告警。
一、PyShark库实战
PyShark是tshark的Python封装,支持实时捕获和文件分析:
import pyshark
# 读取PCAP文件
cap = pyshark.FileCapture('traffic.pcap', display_filter='http')
# 遍历HTTP请求
for pkt in cap:
if hasattr(pkt, 'http'):
print(f"Host: {pkt.http.host}, URI: {pkt.http.request_uri}")
cap.close()
二、批量指标提取
场景:分析100个PCAP文件,提取TCP重传率:
import subprocess
import os
import pandas as pd
results = []
for pcap in os.listdir('./captures'):
cmd = f'tshark -r {pcap} -q -z io,stat,1,"SUM(tcp.analysis.retransmission)tcp.analysis.retransmission"'
output = subprocess.check_output(cmd, shell=True).decode()
# 解析输出提取重传数
retrans = parse_retrans(output)
total = get_total_packets(pcap)
rate = (retrans/total)*100
results.append({'file': pcap, 'retrans_rate': rate})
df = pd.DataFrame(results)
df.to_csv('network_quality_report.csv')
三、异常检测自动化
基于统计阈值自动标记异常流量:
- 单IP连接数超过基线3倍 → 疑似扫描
- DNS查询熵值过高 → 疑似DNS隧道
- TLS证书有效期异常 → 可疑C2通信
四、CI/CD集成
将抓包分析集成到DevOps流程:
# GitLab CI示例
network_test:
script:
- tcpdump -i eth0 -w test.pcap &
- pytest integration_tests/
- kill %1
- python analyze_traffic.py --pcap test.pcap --threshold 5%
五、可视化报告生成
使用matplotlib生成流量趋势图,结合Jinja2模板生成HTML报告,包含:
- 协议分布饼图
- Top 10通信对
- 异常事件时间线
- 性能指标趋势

