MoeShinX/relay-panel
GitHub: MoeShinX/relay-panel
一款基于 Rust 的自托管 TCP/UDP 端口转发管理面板,通过 Web UI 实现转发规则编排、流量计费、节点监控与多用户分组管理。
Stars: 130 | Forks: 22
RelayPanel
⚡ 自托管 TCP/UDP 端口转发管理面板 ⚡
English | 中文
用 Rust 编写,通过 Web UI 管理转发规则、设备分组、流量配额和实时节点状态。
轻量:Panel ~7 MB + Node ~4 MB。部署方式:Docker Compose。数据库:SQLite / PostgreSQL。
## ✨ 功能亮点
- 🔀 **转发规则** — TCP/UDP 多目标转发,故障转移 / 轮询负载均衡,目标熔断自动恢复,域名目标跟随 DDNS
- 🚦 **连接治理** — 每条规则可设并发连接数上限;支持单条 / 批量 / 定时重启,重启会掐断旧连接并重建监听
- 🛒 **套餐与计费** — 用户自助买套餐、卡密充值余额;按「(上行 + 下行) × 线路倍率」扣额度;一人一个当前套餐,续费叠加、换套餐整体替换
- 📊 **流量可视** — 按规则 / 用户计量,近 1 / 7 / 30 天趋势图按线路分色堆叠,看得出是哪条线路在吃额度
- 🖥️ **节点管理** — 实时 CPU / 内存 / 连接数、地区识别、掉线推送 Telegram 或邮件、面板一键升级节点(免 SSH)
- 👤 **用户与分组** — 管理任意用户的规则与套餐、重置流量密码、封禁;设备分组可隐藏,节点卸载不影响规则
- 🗄️ **部署友好** — SQLite(零配置)或 PostgreSQL;面板与节点均支持 amd64 / arm64
- 🔒 **安全** — 首次登录强制改密码,节点 Bearer Token 鉴权
完整功能说明与使用文档:**[relaypanel.dev](https://relaypanel.dev)**
## 🚀 快速开始
**一条命令部署:**
curl -fsSL https://raw.githubusercontent.com/MoeShinX/relay-panel/main/install.sh | bash
📖 完整指南:**[docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)**
## 🏗️ 架构
浏览器 (React UI) relay-node (Tokio TCP/UDP)
│ ▲
▼ │
relay-panel ◄─── WebSocket 配置推送 + HTTP 状态上报
(Axum API) │
│ ▼
SQLite / PG 转发流量到真实目标
## 🔄 更新
**面板**(更新前请备份 `.env` 和数据库):
cd /opt/relay-panel && git pull --quiet && ./deploy.sh
**节点**:面板 → 节点状态 → 点「升级」,无需 SSH。仅 systemd 节点可用(Docker 节点改为更新镜像);升级会断开该节点上正在进行的转发连接。详见 [转发节点文档](docs/NODE.zh-CN.md#更新)。
## 🛠️ 本地开发
cargo build && cargo run -p relay-panel & # API 在 :18888
cd frontend && npm install && npm run dev # UI 在 :5173
python3 tests/e2e_test.py # 端到端测试
## 📦 技术栈
Rust · Axum · Tokio · sqlx · SQLite/PostgreSQL · JWT · React 19 · TypeScript · Ant Design · Docker Compose
## 📄 许可证与免责声明
AGPL-3.0 —— 详见 [LICENSE](LICENSE)。
开源流量转发工具,**仅供个人学习与研究使用**。请在合法合规前提下使用,风险自负。
完整 **[免责声明](docs/DISCLAIMER.md)**
标签:Docker, Docker 部署, Rust, 可视化界面, 安全防御评估, 流量管理, 测试用例, 版权保护, 端口转发, 网络流量审计, 网络运维, 自托管, 通知系统, 面板系统