Align architecture, protocol, API, storage, security and deployment documentation with default mutual measurements and the Agent link board.
71 lines
3.1 KiB
Markdown
71 lines
3.1 KiB
Markdown
# MoShiro
|
|
|
|
MoShiro 旨在解决跨网络线路质量难以量化的问题:
|
|
|
|
- 家宽到海外 VPS 的延迟、丢包、抖动随时段波动,单点 ping 无法反映真实体验;
|
|
- 不同代理、游戏、流媒体服务对线路的敏感度各异,缺少统一的评价口径。
|
|
|
|
它通过 Agent 之间的主动测量采集原始数据,由 Backend 推算指标,并按服务模型(REALITY、Hysteria2、Minecraft 等)对线路评分与排序。
|
|
|
|
## 组件
|
|
|
|
| 组件 | 职责 |
|
|
| --- | --- |
|
|
| Agent | 统一采集节点,默认同时监听和拨号;可部署在 VPS、家宽或 NAT 后 |
|
|
| Backend | 注册、线路编排、存储、分析和 REST / SSE |
|
|
| Web | 匿名只读展示端 `display` 与管理端 `admin` |
|
|
|
|
```text
|
|
Backend ---- REST / SSE ---- Web
|
|
^ ^
|
|
| | 每个 Agent 独立建立 wss,汇报自身及线路状态
|
|
| |
|
|
Agent A <=====> Agent B
|
|
直连测量
|
|
```
|
|
|
|
Agent 默认向其他可拨号 Agent 建立测量线路,A→B 和 B→A 分别记录;节点不连接自身。
|
|
管理端统一展示 Agent,在线路画板中按方向开关测量、查看连接状态和立即重试。
|
|
家宽或 NAT 后的 Agent 仍可拨出;入站测量需要其他节点能够访问其监听地址和端口。
|
|
可在本地 `agent.json` 中显式设置 `listen.enabled: false` 关闭监听,节点身份和程序保持统一。
|
|
|
|
## 快速开始
|
|
|
|
环境:.NET SDK 10(版本见 `global.json`)、Node.js 与 npm。
|
|
|
|
```sh
|
|
cd backend && dotnet run --project src/MoShiro.Backend -- --urls http://localhost:5000 # Backend
|
|
npm ci --prefix web && npm run dev --prefix web # Web(另开终端,仓库根目录)
|
|
```
|
|
|
|
展示端 <http://localhost:5173/>,管理端 <http://localhost:5173/admin/>。首次访问管理端进入认领向导,认领码输出在后端日志。
|
|
|
|
构建与测试:
|
|
|
|
```sh
|
|
dotnet build MoShiro.slnx -c Release
|
|
dotnet test --solution MoShiro.slnx
|
|
npm run build --prefix web
|
|
```
|
|
|
|
## 文档
|
|
|
|
| 主题 | 文档 |
|
|
| --- | --- |
|
|
| 架构与数据链路 | [architecture](docs/design/architecture.md) |
|
|
| 线协议与方法 | [protocol](docs/design/protocol.md) |
|
|
| 采集引擎与任务 | [measurement](docs/design/measurement.md) |
|
|
| 分析、存储、查询 | [analysis](docs/design/analysis.md) · [storage](docs/design/storage.md) · [query](docs/design/query.md) |
|
|
| 安全:威胁模型、访问控制、注册与身份 | [security](docs/security/security.md) · [access](docs/security/access.md) · [enrollment](docs/security/enrollment.md) |
|
|
| REST / SSE 接口 | [api](docs/api/api.md) |
|
|
| 构建、发布、CI、部署与更新 | [deployment](docs/ops/deployment.md) |
|
|
| 仓库结构与代码风格 | [project-layout](docs/dev/project-layout.md) · [coding-style](docs/dev/coding-style.md) |
|
|
| 路线图 | [roadmap](docs/roadmap.md) |
|
|
| 子项目 | [backend](backend/README.md) · [fleet](backend/fleet/README.md) · [agent](backend/agent/README.md) · [web](web/README.md) |
|
|
|
|
贡献与自动化代理的工作约定见 [`AGENTS.md`](AGENTS.md)。
|
|
|
|
## 许可证
|
|
|
|
[Apache License 2.0](LICENSE)
|