- 版权类型
- 原创
- 插件中文名称
- 麻踢奥斯
- 插件英文名称
- MultiAuth
- 原帖地址
- #
- 支持的核心(代理-服务端)
- Velocity
- Spigot
- PaperSpigot
- Purpur
- Leaves
- 其他核心
- 语言支持
- 多语言
- 前置组件
- packetevent+https://modrinth.com/plugin/packetevents
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
[MD]
# MultiAuth
同时支持正版与离线玩家、单服与跨服双模式的 Minecraft 认证插件。
Spigot + Velocity 支持
---
## 为什么选择 MultiAuth?
| 痛点 | MultiAuth 的答案 |
|---|---|
| 开正版验证,离线朋友进不来 | 正版离线**混合验证**,两者共存 |
| 开离线模式,盗号/熊服防不住 | Argon2id 密码 + 未登录全限制 + 暴力破解防护 |
| 跨服大服,换服就要重新登录 | Velocity 会话中心,**HMAC 签名同步**,跨服免登录 |
| 正版 API 宕机,服务器瘫痪 | 宕机降级策略,离线历史玩家照常放行 |
| 数据分散、备份麻烦 | SQLite/MySQL 双支持,定时备份 + 一键迁移 |
---
## 核心特性
### 正版验证 · 两层保障
- **用户名检查**:官方 API + 可配置备用 API 多源降级
- **加密握手验证**:RSA 2048 + AES/CFB8,完整 hasJoined 流程
- **双 IP 模式**:`proxy=false` 单服独立验证,`proxy=true` 信任 Velocity 验证结果
- **UUID 策略可切换**:正版 UUID / 离线 UUID 一键切换,自动修正数据库记录
### 离线认证 · 全面管控
- **Argon2id 密码哈希**,注册 / 登录 / 改密命令齐全
- **未登录限制**:禁移动、禁聊天、禁交互、免疫伤害、白名单命令
- **超时踢出 + 定时提醒**,未登录玩家强制冒险/生存模式可选
- **会话恢复**:同 IP 限时免密重连,登录成功自动回到下线地点
### 安全加固 · 纵深防御
- **失败计数与冷却**:账户级 + IP 级双重防爆破
- **单 IP 限制**:注册账号数、同时在线数双重上限
- **IP 变更警告**:换 IP 登录自动提醒玩家与管理员
- **异地登录检测**:ip2region 离线地理位置查询,支持跨省/跨国家策略(警告/踢出/强制登录)
- **会话劫持检测**:UUID 不匹配实时告警([SECURITY WARNING])
### 跨服会话同步 · 无缝体验
- Velocity 作为会话中心,登录/登出状态经 **HMAC-SHA256 签名通道**同步到所有子服
- 跨服转移免重复登录,登出状态即时广播,防"幽灵在线"
- 签名密钥两端一致即可启用,留空自动关闭
### 运维便利
- **数据库**:SQLite(单服开箱即用)/ MySQL(HikariCP 连接池、可选 SSL)
- **定时备份** + 旧备份自动清理 + **SQLite ↔ MySQL 双向迁移**
- **bStats 统计 + 更新检查**,GitHub Releases 自动通知新版本
- **多语言**:简体中文 / English 双语言文件,140+ 消息键,`/multiauth reload` 热重载
- **管理面板**:`/multiauth status` 一眼查看版本、数据库、模式、API 状态与玩家统计
---
## 双部署模式
```
┌─ 独立模式(proxy=false)───────────────────────────┐
│ 玩家 ──► Spigot/Paper(MultiAuth 自行完成正版验证) │
│ SQLite / MySQL │
└────────────────────────────────────────────────────┘
┌─ 代理模式(proxy=true)─────────────────────────────┐
│ 玩家 ──► Velocity(MultiAuth 验证 + 会话中心) │
│ │ HMAC 签名会话同步 │
│ ▼ │
│ Spigot 子服 1 / 子服 2 / ...(免重复登录) │
│ 共享 MySQL │
└────────────────────────────────────────────────────┘
```
---
## 快速开始
**独立模式(单服)**
```bash
# 1. 下载 multiauth-spigot-<version>.jar 放入 plugins/
# 2. 安装 PacketEvents(依赖)
# 3. 启动服务器,编辑 plugins/MultiAuth/config.yml,重启
```
```yaml
# config.yml
proxy: false
database:
type: sqlite
```
**代理模式(跨服)**
```bash
# 1. Spigot 子服:multiauth-spigot + PacketEvents
# 2. Velocity:multiauth-velocity
# 3. 两端配置 session-sync-secret 与共享 MySQL,重启
```
```toml
# velocity.toml
online-mode = true
player-info-forwarding-mode = "modern"
```
---
## 命令一览
| 命令 | 说明 |
|---|---|
| `/register <密码> <确认>` | 注册(离线玩家) |
| `/login <密码>` | 登录(离线玩家) |
| `/changepassword <旧> <新>` | 修改密码 |
| `/multiauth status` | 插件状态总览(管理员) |
| `/multiauth info [玩家]` | 账号信息(类型/UUID/登录历史/IP/地理位置) |
| `/multiauth reload` | 热重载配置 |
| `/multiauth backup` | 手动备份 |
| `/multiauth migrate` | SQLite ↔ MySQL 迁移 |
| `/multiauth unregister <玩家>` | 注销账号 |
| `/vmultiauth ...` | Velocity 控制台管理 |
---
## 环境要求
- **Java**:JDK 21+
- **平台**:Spigot / Paper 1.18.2+,或 Velocity 3.4.0+
- **依赖**:PacketEvents(Spigot 端)
---
[/MD]