Files
Meshray-Manager/README.md
T
zkcoi e9ca2f7d70 fix: rename manager module to git.zkcoi.com/zkcoi/Meshray-Manager
- go.mod module path matches repo zkcoi/Meshray-Manager (case-distinct from zkcoi/Meshray/core)
- rewrite internal imports meshray/{internal,web,pkg} -> Meshray-Manager/... (core refs kept)
- sync README.md / install.sh repo URLs; add CHANGELOG entry
2026-07-15 16:25:46 +08:00

200 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MeshRay
> 去中心化 P2P 组网平台
> **💤 项目状态:个人练手的 Vibecoding 项目,目前已暂时搁置,后续有时间再继续完善。**
[![Version](https://img.shields.io/badge/version-2.3.x-blue.svg)](https://git.zkcoi.com/zkcoi/Meshray-Manager)
[![Status](https://img.shields.io/badge/status-paused-lightgrey.svg)](https://git.zkcoi.com/zkcoi/Meshray-Manager)
[![Go Version](https://img.shields.io/badge/go-1.21+-green.svg)](https://golang.org)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
---
## 🌟 核心特性
-**去中心化架构** — 无中心服务器,设备间直接 P2P 通信
-**智能穿透** — STUN + TURN 自动打洞,支持多种 NAT 类型
-**9 层降级传输** — 从 Direct-UDP 到 WS/WSS,链路不通自动切换
-**Mesh 中继** — 设备间中继转发,突破网络限制
-**安全加密** — WireGuard 官方库 + Ed25519 签名 + AES-256-GCM
-**DDNS 动态域名** — Cloudflare / 腾讯云 DNS 自动同步
-**Web 管理面板** — Go embed 内嵌静态资源,单文件部署
-**完整通知系统** — WebSocket 实时推送 + 持久化存储
---
## 🚀 快速开始
**Windows**:
```bash
start.bat
```
**Linux/Mac**:
```bash
chmod +x start.sh
./start.sh
```
**手动编译运行**:
```bash
go build -o meshray.exe ./cmd/meshray
./meshray.exe
```
访问:http://localhost:9531
> 前端已内嵌到 Go 二进制中,无需安装 Node.js 或单独编译前端。
---
## 📋 功能清单
### ✅ 已实现
| 功能模块 | 说明 |
|---------|------|
| 设备管理 | WG 设备增删改查、配置生成 |
| 组网管理 | 组网创建/加入/启停、MeshSeed 凭证 |
| 传输策略 | 9 层降级策略、自动/自定义/手动三种模式 |
| DDNS | Cloudflare + 腾讯云、IP 自动检测、TXT 记录 |
| 通知推送 | WebSocket 实时推送 + SQLite 持久化 |
| 备份恢复 | 创建/列表/恢复/删除/下载 |
| 系统设置 | 修改密码、重启核心、版本更新 |
| 仪表盘 | 网络状态、链路分布、系统信息 |
### ⏳ 待完善
| 功能模块 | 说明 |
|---------|------|
| 阿里云 DNS Provider | 依赖 libdns/aliyun 安装 |
| 备份恢复(完整实现) | 数据库导出 + 文件打包 |
| WebSocket 中间件 | 已有轮询,可增加实时推送 |
---
## 🛠️ 技术栈
### 后端
| 组件 | 技术 | 用途 |
|------|------|------|
| 语言 | Go 1.21+ | 主要编程语言 |
| Web 框架 | Gin | HTTP 服务器和路由 |
| ORM | GORM | 数据库操作 |
| 数据库 | SQLite (glebarez) | 嵌入式数据库 |
| 日志 | Zap | 结构化日志 |
| 配置 | Viper | 配置管理 |
| WireGuard | golang.zx2c4.com/wireguard | 用户态 WG 实现 |
| 认证 | bcrypt + golang-jwt | 密码加密 + JWT |
| NAT 穿透 | pion/turn, pion/webrtc | STUN/TURN/ICE |
### 前端
| 组件 | 技术 | 用途 |
|------|------|------|
| UI | 纯 JavaScript (ES6+) | 管理面板 |
| 静态资源 | Go embed | 内嵌到二进制 |
---
## 📖 文档
- 📗 [项目架构与详细介绍](docs/README.md)
- 📙 [完整功能开发总览](docs/README_开发完成总览.md)
- 📕 [功能验证与测试报告](docs/功能验证与测试报告.md)
---
## 🎯 使用场景
### 家庭组网
- 远程访问家中 NAS
- 搭建私有云服务
- 连接多个智能设备
### 企业办公
- 分支机构互联
- 远程办公接入
- 安全数据传输
### 开发测试
- 本地环境暴露公网
- 多设备联调测试
- Demo 演示环境
---
## 📊 项目结构
```
meshray/
├── cmd/ # 可执行文件入口
├── core/ # MeshRay-Core 建连层(9 层传输策略)
│ ├── connect/ # Direct-UDP / FakeTCP / TURN / STUN / ICE / WS
│ ├── transport/ # ConnManager + Relay 转发
│ └── plugins/wg/ # WireGuard 插件
├── internal/ # 内部实现
│ ├── api/ # REST APIGin Handler + Middleware
│ ├── ctr/ # 调度中心(WG 设备管理)
│ ├── dnsprovider/ # DNS Provider 抽象层
│ ├── service/ # 业务逻辑层
│ └── store/sqlite/ # 数据库访问层
├── pkg/ # 公共工具库
├── web/ # 前端静态资源(Go embed 内嵌)
├── deploy/ # Docker / Systemd 部署
├── docs/ # 技术文档
└── config.yaml # 运行配置
```
---
## 🔒 安全性
-**bcrypt 密码加密** — DefaultCost 强度
-**JWT 身份验证** — Token 过期机制
-**CORS 跨域控制** — 仅允许特定来源
-**SQL 参数化查询** — GORM 防注入
-**操作日志记录** — AuditLog 审计追踪
---
## 📈 性能指标
- **启动时间**: < 2 秒
- **API 响应**: < 100ms (本地)
- **数据库查询**: < 50ms
- **并发连接**: 支持 100+ 客户端
- **二进制体积**: 前端内嵌,单文件部署
---
## 🤝 开发
```bash
# 克隆项目
git clone https://git.zkcoi.com/zkcoi/Meshray-Manager.git
cd meshray
# 安装依赖
go mod download
# 运行
go run cmd/meshray/main.go
# 访问 http://localhost:9531
```
---
## 📄 许可证
MIT License
---
## 🙏 致谢
- [WireGuard](https://www.wireguard.com/) — 安全的 VPN 技术
- [Gin](https://gin-gonic.com/) — Go Web 框架
- [libdns](https://github.com/libdns/libdns) — DNS Provider 库
- [pion](https://github.com/pion) — WebRTC / TURN / STUN 实现