Files
FunConnect/server
..

FunConnect Server

Minecraft 联机中继服务端,包含 TCP 中继引擎、REST API、WebSocket 实时通信、Web 管理面板。

功能

  • TCP 中继引擎 - 转发 Minecraft 客户端与服务端之间的流量
  • 多节点集群 - 支持主节点 + 工作节点架构,水平扩展
  • 房间管理 - 创建、加入、密码验证、过期清理
  • 玩家管理 - 玩家列表、踢出玩家
  • 流量监控 - 实时统计各房间流量
  • Token 认证 - 保护写操作 API
  • Web 管理面板 - React + Vite + TailwindCSS 构建的可视化管理界面

快速开始

安装依赖

# 服务端
npm install

# Web 管理面板
cd web && npm install

配置

复制 .env.example.env 并修改:

cp .env.example .env

关键配置项:

  • API_PORT - HTTP API 端口(默认 3000
  • RELAY_PORT - TCP 中继端口(默认 25565
  • IS_MASTER - 是否为主节点
  • SECRET - API 认证密钥(留空则不启用认证)

启动

# 开发模式
npm run dev

# 生产模式
npm run build
npm start

启动 Web 管理面板

cd web
npm run dev
# 访问 http://localhost:5173

Ubuntu 一键部署

chmod +x deploy/install.sh
sudo ./deploy/install.sh

详细部署教程主节点、工作节点、Nginx、SSL、多节点集群请查看 DEPLOY.md

项目结构

server/
├── src/
│   ├── index.ts          # 主入口
│   ├── config.ts         # 配置管理
│   ├── logger.ts         # 日志系统
│   ├── relay.ts          # TCP 中继引擎
│   ├── room.ts           # 房间管理
│   ├── node-manager.ts   # 多节点管理
│   ├── api.ts            # REST API
│   └── websocket.ts      # WebSocket 实时通信
├── web/                  # Web 管理面板
│   ├── src/
│   │   ├── App.tsx       # 主组件
│   │   ├── api.ts        # API 客户端
│   │   └── pages/        # 页面组件
│   └── package.json
├── deploy/
│   └── install.sh        # Ubuntu 部署脚本
├── .env.example
├── package.json
└── tsconfig.json

API 文档

方法 路径 说明 认证
GET /api/health 健康检查
GET /api/stats 服务器统计
GET /api/rooms 房间列表
POST /api/rooms 创建房间
GET /api/rooms/:id 房间详情 + 玩家列表
POST /api/rooms/:id/join 加入验证(密码校验)
POST /api/rooms/:id/kick/:pid 踢出玩家
DELETE /api/rooms/:id 删除房间
GET /api/traffic 流量统计
GET /api/nodes 节点列表(主节点)
POST /api/nodes/register 注册节点
DELETE /api/nodes/:id 移除节点

技术栈

  • Node.js + TypeScript
  • Express - HTTP API
  • ws - WebSocket
  • Winston - 日志
  • React 18 + Vite + TailwindCSS - Web 管理面板