MCPcopy Index your code
hub / github.com/Internet-Architecture-and-Security/PacketScope

github.com/Internet-Architecture-and-Security/PacketScope @v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0 ↗ · + Follow
3,203 symbols 9,552 edges 248 files 736 documented · 23%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

packetscope-logo

English · 中文

GitHub Release GitHub License

PacketScope:服务器端侧防御的"智能铠甲"

体验 Demo

本次更新: Analyzer 模块已使用 Go + cilium/ebpf 完全重写,取代原有 Python + BCC 实现。轻量化改造移除 BCC 运行时依赖,采用 CO-RE(bpf2go)预编译 eBPF,并为各模块新增 MCP 技能集成,支持 LLM 智能体直接调用。

PacketScope 是一款基于 eBPF 的协议栈通用分析调试工具,集性能优化、异常诊断与安全防御于一体。它致力于在服务器端实现对网络分组(Packet)在协议栈中的细粒度追踪与智能分析,解决开放服务器面临的性能瓶颈难诊断、传输路径不明晰、底层攻击难防御等三大痛点,提供可视化、智能化的端侧安全分析与防护能力。

packetscope

背景

随着社交平台、网银服务、大模型应用、物流出行等互联网服务日益普及,开放服务器作为关键的资源执行环境,必须在可被任何人访问的前提下,兼顾性能和安全。传统 WAF、IDS 等手段在协议栈层面的防护存在盲区,PacketScope 正是为此而生:

🚨 三大核心痛点

  1. 分组穿越协议栈路径不透明,瓶颈及故障点难定位
  2. 分组跨域传输路径缺乏细粒度数据,路由风险不可见
  3. 协议栈底层攻击隐蔽难测,传统防御工具能力有限

通过协议追踪、路径可视化、智能分析,PacketScope 为服务器构建"智能铠甲"。

🚀 核心能力

  • 🧠 智能驱动:结合 eBPF 与大语言模型,提供底层网络行为观测与智能化安全防护
  • 📊 多维度分析:实时追踪网络路径,统计延迟、丢包率、交互频率等指标
  • 🌐 全球网络可视化:测绘全球路径及延迟,并可视化展示在拓扑图中
  • 🔐 协议栈级防护:识别并拦截协议栈层的异常流量,弥补传统 WAF/IDS 空白
  • 🤖 MCP 技能集成:各模块提供 MCP 服务器,支持 LLM 智能体(Trae、Cline 等)直接调用
  • 🖥️ 图形化界面:用户友好的操作界面,便于安全工程师和运维人员快速上手

⚡ 快速开始

前置要求

  • Docker:版本 20.10 或更高
  • Docker Compose:版本 2.0 或更高
docker --version
docker compose version

一键部署

git clone https://github.com/Internet-Architecture-and-Security/PacketScope.git
cd PacketScope
sudo bash starter.sh

脚本将自动检查 Docker 环境、按顺序构建所有容器并启动服务。

访问应用

打开浏览器访问:http://localhost:4173/

服务端点

服务 端点 说明
Web UI http://localhost:4173 前端控制台
Guarder API http://localhost:8080 安全防护 API
Tracer API http://localhost:8000 路由追踪 API
Monitor API http://localhost:8010 数据包捕获与函数调用 API
Calculator WS ws://localhost:8020 跨层指标 WebSocket

管理服务

sudo docker compose ps              # 查看状态
sudo docker compose logs -f         # 查看日志
sudo docker compose down            # 停止所有
sudo docker compose restart <name>  # 重启指定服务

📁 项目结构

PacketScope/
├── modules/                    # 后端服务模块
│   ├── Analyzer/              # 协议栈分析(Go)
│   │   ├── Monitor/           # 数据包捕获与函数调用监控(Go + eBPF)
│   │   ├── Calculator/        # 跨层指标计算器(Go + eBPF)
│   │   ├── README.md          # 英文文档
│   │   └── README-zh.md       # 中文文档
│   ├── Guarder/               # 安全防护(Go + eBPF/XDP)
│   └── Tracer/                # 路由追踪与风险分析(Python + MCP)
├── skills/                     # MCP 技能包,供 LLM 智能体调用
│   ├── monitor/               # Monitor MCP 服务器与客户端
│   ├── tracer/                # Tracer MCP 服务器与客户端
│   └── guarder/               # Guarder MCP 客户端
├── src/                        # 前端源码(React + TypeScript)
├── docker-compose.yml          # Docker Compose 配置
├── starter.sh                  # 一键部署脚本
├── README.md                   # 英文文档
└── README-zh_CN.md             # 中文文档

✨ 功能模块

Analyzer — 协议栈分析

Analyzer 模块已使用 Go + cilium/ebpf 完全重写,取代了原有的 Python + BCC 实现。轻量化改造移除了 BCC 运行时依赖,采用 CO-RE(bpf2go)预编译 eBPF,大幅提升部署可移植性。

Monitor 捕获数据包并追踪内核函数调用:

组件 技术 端口 说明
kbatch eBPF fentry/kprobe - 内核功能调用监控
tcxprober eBPF TC - 网络数据包捕获(ingress/egress)
server Go HTTP 8010 RESTful API 查询服务

Calculator 计算实时跨层指标:

指标 说明
PPS 各层流量速率(链路层、网络层、传输层)
LAT 跨层延迟(链路↔网络、网络↔传输、链路↔传输)
DROP TCP 丢包率

通过 WebSocket(端口 8020)通信,每秒自动推送指标数据。

详见 Analyzer/README-zh.md

Tracer — 路由追踪与风险分析

测绘从主机到全球任一 IP 的路径,提供地理/ASN 信息丰富、异常检测与基于 Spamhaus 的风险评分。

功能 说明
traceroute 支持 ICMP/TCP 实时追踪,逐跳流式输出
GeoIP 基于 MaxMind GeoLite2 的城市与 ASN 信息
异常检测 历史路径对比、路径偏移告警
风险评分 基于 Spamhaus DROP/EDROP 的恶意 IP 检测

HTTP API 端口 8000,提供 MCP 服务器供 LLM 智能体集成。

详见 Tracer/README.md

Guarder — 安全防护

基于 eBPF/XDP 的网络安全模块,提供 AI 驱动的过滤器生成。

功能 说明
连接追踪 通过 eBPF/XDP 监控 TCP/UDP/ICMP
数据包过滤 内核空间规则(IP、端口、协议、TCP 标志、ICMP 类型)
AI 过滤生成 LLM 驱动的流量分析与自动规则生成
PCAP 分析 上传 PCAP 文件进行 AI 驱动的安全检测

HTTP API 端口 8080,支持 OpenAI 兼容与 Anthropic 兼容端点。

详见 Guarder/README-zh.md

🤖 MCP 技能

各后端模块提供 MCP(Model Context Protocol)服务器,使 LLM 智能体可以直接调用模块能力:

技能 MCP 工具 传输方式
monitor get_recent_packetsquery_packetsget_recent_mapget_func_tablequery_func_sendquery_func_recvget_socket_listhealth_check SSE / stdio
tracer trace_targetanalyze_targetget_historycompare_routeshealth_checkserver_capabilities SSE / stdio
guarder get_connectionsget_statscreate_filterai_analyzeai_generatelist_filters HTTP 客户端

MCP 快速接入

{
  "mcpServers": {
    "packetscope-monitor": {
      "transport": "sse",
      "url": "http://localhost:8012/sse"
    },
    "packetscope-tracer": {
      "transport": "sse",
      "url": "http://localhost:8013/sse"
    }
  }
}

详见 skills/ 目录下各技能的配置与使用说明。

🏗️ 技术栈

模块 语言 eBPF 加载 通信方式 数据存储
Analyzer-Monitor Go cilium/ebpf (bpf2go, CO-RE) HTTP REST(8010) PostgreSQL
Analyzer-Calculator Go cilium/ebpf (bpf2go, CO-RE) WebSocket(8020) BPF map 聚合
Guarder Go cilium/ebpf + XDP HTTP REST(8080) 内核 map
Tracer Python nexttrace(外部) HTTP REST(8000) 文件缓存

Analyzer Go 重构亮点: - 移除 BCC 运行时依赖 — 无需 Python、无需安装 BCC - bpf2go 预编译 eBPF(CO-RE)— 跨内核版本可移植 - 单二进制部署 — 无外部脚本依赖 - 更低资源占用 — Go vs Python 运行时开销

🧰 使用场景

  • 网络协议栈性能优化:帮助网络管理员和开发者分析网络协议栈中的流量瓶颈,优化性能
  • 网络安全威胁检测:监控并过滤异常流量,检测潜在的攻击模式(如 DDoS、ARP 欺骗等),增强网络安全性
  • 网络故障诊断:诊断因网络延迟、丢包或跨层交互异常引起的问题,快速定位故障源
  • 网络拓扑分析:在跨地域或跨国网络环境中,分析网络拓扑结构、路径延迟和路由性能,为全球部署提供支持
  • 工业互联网安全:在工业互联网环境中,对工业控制系统的协议栈进行实时监控和安全审计,保障设备和数据的安全性

❤️ 贡献

欢迎提交问题和合并请求!如果你发现任何问题或有改进建议,请在 issues 中提出,或直接提交 pull request。具体贡献指南请参考CONTRIBUTING

许可

该项目遵循 MIT 许可证,详情请见 LICENSE

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,765
Class 860
Method 175
Enum 171
Struct 129
Interface 99
Route 4

Languages

C47%
C++22%
Go11%
TypeScript10%
Python10%

Modules by API surface

modules/Guarder/libbpf/src/libbpf.c588 symbols
modules/Guarder/libbpf/src/btf.c229 symbols
modules/Guarder/libbpf/src/bpf.c92 symbols
modules/Guarder/libbpf/src/linker.c90 symbols
modules/Guarder/libbpf/src/btf_dump.c86 symbols
modules/Guarder/libbpf/include/uapi/linux/bpf.h82 symbols
modules/Guarder/libbpf/src/libbpf.h76 symbols
modules/Guarder/libbpf/src/gen_loader.c67 symbols
modules/Guarder/libbpf/src/btf.h62 symbols
modules/Guarder/libbpf/src/libbpf_internal.h60 symbols
modules/Guarder/libbpf/include/uapi/linux/pkt_sched.h55 symbols
modules/Guarder/libbpf/src/netlink.c54 symbols

Datastores touched

functioninfoDatabase · 1 repos
tcxproberDatabase · 1 repos

For agents

$ claude mcp add PacketScope \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page