# shater-collab **Repository Path**: xuekl/shater-collab ## Basic Information - **Project Name**: shater-collab - **Description**: 修改仓库名称,更符合项目功能描述 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-21 - **Last Updated**: 2026-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 沙特抓包 (Shater Collab) 轻量级 HTTP 抓包调试工具,支持定向调试与代理抓包两种模式,帮助移动端开发者快速定位接口问题。 ## 功能特性 ### 定向调试 通过扫描入口码建立设备与服务器的实时连接,精准捕获指定设备的 HTTP 请求/响应报文。 - 入口码二维码,App 端扫码即可接入 - 实时 WebSocket 推送,毫秒级延迟 - 支持多设备同时连接 ### 正向代理 启动系统级代理服务器,拦截所有经过的 HTTP/HTTPS 流量。 - 一键开启/关闭正向代理 - 自动生成 CA 证书,支持 HTTPS 解密 - 代理状态实时显示 ### 反向代理 适用于 App 启用 SSL Pinning 无法直接抓包的场景。App 将请求发送至沙特反向代理地址,代理转发至真实服务器并记录报文。 - 自定义反向代理目标地址 - 扫码自动配置 App 端代理地址 - 完整记录请求与响应 ### 报文分析 - 请求/响应报文树形展示与原始报文切换 - JSON 自动格式化与语法高亮 - 报文对比:选择两条记录并排对比差异 - 暂存记录:标记重要报文,单独查看 - 再次请求:对选中记录重新发起请求 ### 数据操作 - 导出报文(当前记录 / 全部记录),支持 JSON / HAR 格式 - 推送链接:生成分享链接,他人扫码即可查看 - 搜索过滤:按关键字、接口路径筛选记录 - 隐藏静态资源(图片/JS/CSS/字体等) ### 桌面端体验 - 跨平台支持:macOS / Windows - 自定义标题栏,系统菜单集成 - 可拖拽分栏,自由调整布局 - 深色/浅色主题切换 - 偏好设置自定义(字体大小、快捷键等) - 检查更新,一键下载新版本 ## 快捷键 | 功能 | macOS | Windows | |------|-------|---------| | 暂存记录 | ⌘S | Ctrl+S | | 再次请求 | ⌘R | Ctrl+R | | 报文对比 | ⌘D | Ctrl+D | | 偏好设置 | ⌘, | Ctrl+, | | 搜索 | ⌘F | Ctrl+F | | 切换原始报文 | ⌘B | Ctrl+B | | 正向代理 | ⌘P | Ctrl+P | | 反向代理 | ⇧⌘P | Ctrl+Shift+P | ## 技术栈 - **桌面端**: Tauri 2 + Rust - **前端**: Vue 3 + TypeScript + Vite - **服务端**: Koa + WebSocket - **UI**: 自定义组件 + CSS Variables 主题 - **文档**: Rspress ## 开发 ```bash # 安装依赖 npm install # Web 模式开发(前端 + 后端) npm run dev # Tauri 桌面端开发 npm run tauri:dev # 构建前端 npm run build # 打包桌面应用 npm run tauri:build ``` ## 发布 ```bash # 交互式发布脚本:输入版本号 → 输入更新内容 → 自动打包 # macOS / Windows / Linux 通用 node deploy/release.mjs ``` 脚本会自动: 1. 更新 `package.json` / `tauri.conf.json` / `Cargo.toml` 版本号 2. 构建前端并打包桌面应用 3. 将安装包放入 `release/<版本号>/` 目录 4. 生成 `release/latest.json` 供应用检查更新 ## 部署 ```bash # 一键部署到服务器 bash deploy/deploy.sh ``` 服务端运行在 80 端口,提供前端页面、文档站点、版本更新检查和报文数据接口。 ## 项目结构 ``` ├── src/ # Vue 前端 │ ├── components/ # 组件(弹窗、面板等) │ ├── composables/ # 组合式函数(快捷键、偏好设置等) │ ├── utils/ # 工具函数 │ └── types/ # TypeScript 类型定义 ├── src-koa/ # Koa 服务端 │ └── server.ts # API + WebSocket + 静态文件服务 ├── src-tauri/ # Tauri / Rust 后端 │ ├── src/ │ │ ├── lib.rs # 菜单、窗口管理 │ │ ├── proxy.rs # 正向/反向代理 │ │ └── api_server.rs # 内嵌 HTTP 服务 │ └── tauri.conf.json # Tauri 配置 ├── docs/ # Rspress 文档源码 ├── deploy/ # 部署脚本 │ ├── deploy.sh # 部署入口 │ ├── setup-server.sh # 服务器初始化 │ ├── package.sh # 离线打包 │ └── release.mjs # 发布打包 └── release/ # 发布产物(gitignore) ``` ## API 接口 | 路径 | 方法 | 说明 | |------|------|------| | `/shater/config` | GET | 获取服务器配置(sessionId、代理地址) | | `/shater/raw-data` | POST | App 端上报报文数据 | | `/shater/entries` | GET | 获取所有拦截记录 | | `/shater/entries/:id` | DELETE | 删除指定记录 | | `/shater/entries` | DELETE | 清空所有记录 | | `/shater/online` | GET | 查询在线设备 | | `/ws` | WebSocket | 实时报文推送 | | `/release/latest.json` | GET | 获取最新版本信息 |