Pcap-Analyzer 快速部署指南:从零跑通离线抓包数据分析
【免费下载链接】Pcap-AnalyzerPython编写的可视化的离线数据包分析器项目地址: https://gitcode.com/gh_mirrors/pc/Pcap-Analyzer
Pcap-Analyzer 是一个用 Python 编写的可视化离线数据包分析器:把抓好的 pcap 文件上传到网页,它就能自动完成基础数据展示、协议分析、流量统计、IP 经纬度地图、会话提取和攻击风险检测。典型场景是你拿到一份离线抓包文件后,想快速看清里面跑了哪些协议、谁在传数据、有没有暴力破解或 WEB 攻击,不用打开 Wireshark 一个个包地翻。
准备环境并克隆代码
这个项目是一个 Flask Web 应用,依赖不算重,但有几个系统级工具需要预装。前置依赖如下:
- Python ≥ 3.5(项目已移植到 Python 3,建议用 3.7,Docker 镜像就是基于 3.7 构建的)
- pip3(Debian/Ubuntu 上执行
sudo apt-get install python3-pip) - Linux 系统工具:tcpdump、graphviz、imagemagick(
sudo apt-get install tcpdump graphviz imagemagick) - Python 依赖库:Flask、Flask-WTF、geoip2、pyx、requests、scapy
获取代码并装依赖,一条命令搞定:
git clone https://gitcode.com/gh_mirrors/pc/Pcap-Analyzer.git cd Pcap-Analyzer pip3 install Flask==0.11.1 Flask-WTF==0.12 geoip2==2.4.0 pyx==0.14.1 requests==2.9.1 scapy==2.4.0scapy 的版本要留意:2.4.0 之后的版本有较大变化,可能解析不兼容,所以这里按项目 requires 文件锁了版本。项目自带 Dockerfile,习惯容器化的话也可以直接构建镜像跑起来,不用手工装依赖。
仓库里和咱们跑通相关的结构长这样,其他目录可以先不管:
Pcap-Analyzer/ ├── app/ # 应用主体:静态资源、页面模板、解析工具 │ ├── static/ # 前端静态文件(ECharts、Bootstrap 等) │ ├── templates/ # 各功能页的 HTML 模板 │ └── utils/ # 数据包解码、协议分析、流量分析等核心逻辑 ├── images/ # 官方效果展示图 ├── pcaps/ # 自带的示例数据包,测试时直接拿来用 ├── config.py # 配置文件,下一步要改的就是它 ├── requires # 依赖版本清单 └── run.py # 启动入口跑起来之后,主界面就是下面这样的上传首页,左边菜单挂着基础数据、协议分析、流量分析、IP 地图等功能页:
读懂三个关键配置
config.py 就像项目的仪表盘,真正影响能不能跑起来的只有三个路径配置,其余保持默认即可:
| 配置项 | 作用 | 建议值 |
|---|---|---|
UPLOAD_FOLDER | 上传的 pcap 文件保存位置,必须以/结尾 | /data/pcap/ |
FILE_FOLDER | 提取会话文件的保存位置,下面必须建 All、FTP、Mail、Web 四个子目录 | /data/files/ |
PDF_FOLDER | 分析报告导出 PDF 的保存位置 | /data/files/pdf/ |
把下面这段改成你本机的实际路径(请替换为你本机的实际值),保存:
# config.py DEBUG = True UPLOAD_FOLDER = '/data/pcap/' # 上传的 pcap 存放位置 FILE_FOLDER = '/data/files/' # 提取文件的存放位置 PDF_FOLDER = '/data/files/pdf/' # 报告 PDF 的存放位置 # ...其余配置略...路径只是配置里的字符串,磁盘上的目录还得手动建出来,顺手把 FILE_FOLDER 要求的四个子目录一起建了:
mkdir -p /data/pcap /data/files/{All,FTP,Mail,Web} /data/files/pdf一条命令启动服务
🚀 在仓库根目录执行:
python3 run.py启动成功后,终端会打出* Running on http://0.0.0.0:8000/这样的字样;浏览器打开http://127.0.0.1:8000能看到数据包上传页;终端里再执行curl -I http://127.0.0.1:8000/,返回HTTP/1.1 200 OK就稳了。
接下来上传一个包验证效果。仓库的 pcaps/ 目录里自带了一批示例数据包,挑一个ftp.pcap或attack.pcap传到/upload/页面,提示"恭喜你,上传成功!"后,点左侧菜单依次进基础数据、协议分析页面,就能看到 ECharts 画出的协议分布、流量曲线:
继续点"IP 经纬度地图"页面,会把包里出现的源 IP 标注到世界地图上,一眼看出访问来源分布:
如果 8000 端口被占用,把 run.py 里的port=8000改成别的端口(比如 8001)重启即可。
常见坑与进阶方向
坑一:上传 pcap 时页面报"上传错误"或 500现象:上传页红字提示上传错误,终端抛出 IOError。原因:config.py 里配置的目录在磁盘上不存在,或者运行用户没有写权限。解法:用上面的mkdir -p把三个路径全部建出来,并确认当前用户对这些目录可写。
坑二:协议分析、流量分析页面 500 报错现象:首页上传正常,但点进协议分析页面就报错。原因:scapy 装成了 2.4.0 之后的新版本,或系统缺少 graphviz、imagemagick。解法:pip3 install scapy==2.4.0锁定版本,补齐两个系统工具后重启。
坑三:IP 经纬度地图上点很少或位置不准现象:明明包里有很多 IP,地图上却只有零星几个标注。原因:内置的 GeoLite2-City.mmdb 库较旧,覆盖不到新注册的 IP 段。解法:把 app/utils/GeoIP/ 下的 GeoLite2-City.mmdb 替换成新版数据库文件即可,不用改代码。
跑通之后想上生产环境,直接用项目备好的gunicorn -c deploy_config.py run:app启动,再套一层 Nginx 反向代理对外;想提升分析准确率,可以按 README 提示替换 IP 库并调整 app/utils/protocol/ 下的协议号映射表。
【免费下载链接】Pcap-AnalyzerPython编写的可视化的离线数据包分析器项目地址: https://gitcode.com/gh_mirrors/pc/Pcap-Analyzer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考