- 模块表头"对抗的Meteor Hack"改为"对抗的外挂" - 覆盖矩阵改为通用外挂分类,不绑定特定客户端品牌 - 版本历史描述去Meteor标记 - 导航链接修复,Apache 2.0许可证标识 - 贡献者名单新增
969 lines
62 KiB
Markdown
969 lines
62 KiB
Markdown
<p align="center">
|
||
<img src="logo.png" alt="Aluer ServerGuard" width="180">
|
||
</p>
|
||
|
||
<h1 align="center">Aluer ServerGuard V5.0</h1>
|
||
|
||
<p align="center">
|
||
<b>AI 驱动的 Minecraft PaperMC 服务器全方位安全防护系统</b><br>
|
||
<sub>135+ 安全模块 · 全类型外挂对抗覆盖 · Agent 实时架构 · DeepSeek AI 决策</sub>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/ZpjDev/Aluer/releases/latest"><img src="https://img.shields.io/github/v/release/ZpjDev/Aluer?style=for-the-badge&color=6366f1" alt="Latest Release"></a>
|
||
<a href="#"><img src="https://img.shields.io/badge/build-passing-brightgreen?style=for-the-badge" alt="Build Status"></a>
|
||
<a href="#"><img src="https://img.shields.io/badge/tests-323%2F323-green?style=for-the-badge" alt="Tests"></a>
|
||
<a href="#"><img src="https://img.shields.io/badge/Java-21-red?style=for-the-badge&logo=openjdk" alt="Java 21"></a>
|
||
<a href="#"><img src="https://img.shields.io/badge/PaperMC-1.21.1-blue?style=for-the-badge" alt="PaperMC 1.21.1"></a>
|
||
<a href="#"><img src="https://img.shields.io/badge/modules-135%2B-purple?style=for-the-badge" alt="135+ Modules"></a>
|
||
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-orange?style=for-the-badge" alt="Apache 2.0 License"></a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="#快速开始">快速开始</a> ·
|
||
<a href="#系统架构">系统架构</a> ·
|
||
<a href="#安全模块完整清单">安全模块</a> ·
|
||
<a href="#部署指南">部署指南</a> ·
|
||
<a href="#配置参考">配置参考</a> ·
|
||
<a href="#外挂对抗覆盖矩阵">外挂覆盖</a> ·
|
||
<a href="#常见问题">FAQ</a> ·
|
||
<a href="README_EN.md">English</a>
|
||
</p>
|
||
|
||
---
|
||
|
||
## 项目概述
|
||
|
||
Aluer ServerGuard 是一款**专为 Minecraft PaperMC 服务器打造的新一代智能安全防护系统**。系统采用革命性的 **Agent 架构**——通过轻量级 Paper 插件作为数据采集前端植入服务器进程内部,配合外部 Spring Boot 分析引擎独立运行,通过 **WebSocket 实时双向通信**实现对服务器的全方位实时防护。
|
||
|
||
### 为什么选择 Aluer ServerGuard?
|
||
|
||
| 痛点 | Aluer 解决方案 |
|
||
|------|---------------|
|
||
| 外挂客户端泛滥(KillAura/Speed/Fly/Xray 等) | 全类型外挂对抗覆盖,实时检测毫秒级响应 |
|
||
| 传统反作弊依赖规则引擎,误报率高 | AI + ML 双层分析:DeepSeek 大模型语义理解 + 隔离森林/香农熵/FFT 统计检测 |
|
||
| DDoS 攻击导致服务器瘫痪 | 7 层 DDoS 协同防御(SYN/UDP/ICMP/HTTP/Slowloris/MC协议/放大攻击) |
|
||
| 管理员不在线时服务器崩溃无人处理 | Kernel 自治引擎 + SelfHealing 自愈系统,自动检测→分析→执行→恢复 |
|
||
| 多个安全工具管理复杂 | 单一 JAR 部署,Web 控制台统一管理 135+ 模块,游戏内 /aluer 命令 |
|
||
| 插件模式侵入性高,影响服务器性能 | Agent 架构分离:插件仅 50MB 内存占用,分析引擎独立运行不影响 TPS |
|
||
|
||
### 核心能力一览
|
||
|
||
| 能力 | 说明 |
|
||
|------|------|
|
||
| **全类型反作弊** | 全类型外挂对抗覆盖(Combat / Movement / World / Player / Misc 五大类 55+ 个 hack 模块) |
|
||
| **AI 决策引擎** | DeepSeek 大模型自动分析安全告警 → 生成防御策略 → 自动执行(ban IP / kick player / enable whitelist / clear lag) |
|
||
| **ML 行为分析** | 隔离森林(Isolation Forest)异常检测 + 时间序列预测 + 香农熵(Shannon Entropy)玩家行为画像 + FFT 频谱移动分析 |
|
||
| **DDoS 多层防御** | SYN Flood / UDP Flood / ICMP Flood / HTTP Flood / Slowloris / Minecraft Status/Login/Rcon/Query 协同防御 |
|
||
| **服务器自愈** | TPS < 12 或 CPU > 92% 或 Memory > 95% 自动触发恢复流程(备份 → 清理实体 → 限制连接 → 白名单 → 软重启) |
|
||
| **双模式部署** | Agent Plugin 模式(推荐,< 1ms 延迟,50K+/s 吞吐)+ External RCON 模式(零侵入) |
|
||
| **135+ 安全模块** | 反作弊 / 网络安全 / 协议验证 / 主机安全 / 入侵检测 / 取证分析 / 合规审计 / 运维自动化 |
|
||
|
||
---
|
||
|
||
## 快速开始
|
||
|
||
### 方式一:下载 Release JAR(推荐)
|
||
|
||
```bash
|
||
# 下载最新版本
|
||
wget https://github.com/ZpjDev/Aluer/releases/latest/download/serverguard.jar
|
||
|
||
# 启动(External 模式,开箱即用)
|
||
java -jar serverguard.jar
|
||
|
||
# 浏览器访问 Web 控制台
|
||
open http://localhost:8080
|
||
```
|
||
|
||
### 方式二:Agent Plugin 模式(生产环境推荐)
|
||
|
||
```bash
|
||
# 步骤 1:启动 ServerGuard 引擎
|
||
java -jar serverguard.jar
|
||
|
||
# 步骤 2:将同一 JAR 复制到 Paper 服务器 plugins/ 目录
|
||
cp serverguard.jar /opt/minecraft/plugins/AluerServerGuard.jar
|
||
|
||
# 步骤 3:创建 Agent 配置(指定 ServerGuard 地址)
|
||
mkdir -p /opt/minecraft/plugins/AluerServerGuard
|
||
cat > /opt/minecraft/plugins/AluerServerGuard/config.yml << EOF
|
||
server-url: ws://localhost:8080/agent
|
||
EOF
|
||
|
||
# 步骤 4:启动 Paper 服务器——Agent 自动连接并开始推送数据
|
||
cd /opt/minecraft
|
||
java -Xms4G -Xmx4G -jar paper-1.21.11.jar nogui
|
||
```
|
||
|
||
### 方式三:从源码构建
|
||
|
||
```bash
|
||
# 环境要求:Java 21+
|
||
git clone https://github.com/ZpjDev/Aluer.git
|
||
cd Aluer
|
||
|
||
# 编译
|
||
./apache-maven-3.9.6/bin/mvn compile
|
||
|
||
# 运行全量测试(323 项)
|
||
./apache-maven-3.9.6/bin/mvn test
|
||
|
||
# 打包
|
||
./apache-maven-3.9.6/bin/mvn package -DskipTests
|
||
|
||
# JAR 产物在 target/serverguard.jar
|
||
```
|
||
|
||
---
|
||
|
||
## 版本历史
|
||
|
||
| 版本 | 日期 | 核心更新 |
|
||
|------|------|----------|
|
||
| **V5.3** | 2026-05 | 世界/玩家/杂物类外挂对抗:SpeedMine · FastUse · NoInteract · AutoMine · VeinMiner · AutoTool · FakePlayer · PistonAura · Anchor · StashFinder |
|
||
| **V5.2** | 2026-05 | 移动类外挂全对抗:NoSlow · Spider · Step · PacketFly · AirJump · LongJump · AntiHunger · FastFall · VClip · NoFall 增强 |
|
||
| **V5.1** | 2026-05 | 战斗类外挂全对抗:Criticals · AutoCrystal · AutoTotem · Surround · AutoTrap · AutoArmor · ChestSwap · AutoLog · Hitboxes · BowAimbot |
|
||
| **V5.0** | 2026-04 | Agent WebSocket 架构重构 · Timer · Velocity · Phase · Blink · FastBreak · ElytraFly · AI/ML 行为分析 4 模块 · 网络安全 5 模块 · 服务器保护 4 模块 |
|
||
| **V4.0** | 2026-03 | 29 模块安全大扩展:KillAura · Reach · Speed · Jesus · NoFall · Scaffold · Nuker · AutoClicker · 玩家行为 · 服务器保护 · 聊天安全 · 访问控制 |
|
||
|
||
---
|
||
|
||
## 系统架构
|
||
|
||
```
|
||
+---------------------------------------------------------------------------+
|
||
| Aluer ServerGuard V5.0 系统架构 |
|
||
+---------------------------------------------------------------------------+
|
||
| |
|
||
| +----------------------------+ WebSocket +--------------------------+
|
||
| | PaperMC Server | <==========================> | ServerGuard Engine |
|
||
| | (Minecraft 服务端) | ws://host:8080/agent | (Spring Boot :8080) |
|
||
| | | | |
|
||
| | +--------------------+ | 上行 (Agent → Server) | +------------------+ |
|
||
| | | AluerPlugin (Agent) | | EVENT / METRICS / ALERT | | 135+ Security | |
|
||
| | | extends JavaPlugin | | HEARTBEAT / HANDSHAKE | | Modules | |
|
||
| | | | | COMMAND_RESULT | +------------------+ |
|
||
| | | 生命周期: | | | +------------------+ |
|
||
| | | onLoad() | | 下行 (Server → Agent) | | ML/AI Engine | |
|
||
| | | → onEnable() | | COMMAND / CONFIG | | - 行为画像 | |
|
||
| | | → connect WS | | SHUTDOWN | | - 威胁评分 | |
|
||
| | | → register 9 | | | | - 移动分析 | |
|
||
| | | Listeners | | | | - 战斗识别 | |
|
||
| | | → onDisable() | | | +------------------+ |
|
||
| | | | | | +------------------+ |
|
||
| | | 9 Event Listeners: | | | | DeepSeek AI | |
|
||
| | | PlayerEventListener| | | | - 告警分析 | |
|
||
| | | CombatEventListener| | | | - 健康报告 | |
|
||
| | | ChatEventListener | | | | - 自主防御 | |
|
||
| | | CommandEventListnr | | | +------------------+ |
|
||
| | | BlockEventListener | | | +------------------+ |
|
||
| | | InventoryEventListn| | | | Kernel Engine | |
|
||
| | | EntityEventListener| | | | - 5模块信号聚合 | |
|
||
| | | WorldEventListener | | | | - 热/共振/控制 | |
|
||
| | | PacketEventListener| | | | - 8工作流决策 | |
|
||
| | +--------------------+ | | +------------------+ |
|
||
| | | | +------------------+ |
|
||
| | +--------------------+ | | | Web Console | |
|
||
| | | AgentWebSocket | | | | http://:8080 | |
|
||
| | | Client | | | | - Dashboard | |
|
||
| | | (java.net.http) | | | | - SSH Gateway | |
|
||
| | | 断线重连 + 心跳 | | | | - Operations | |
|
||
| | +--------------------+ | | +------------------+ |
|
||
| | | | |
|
||
| | +--------------------+ | | +------------------+ |
|
||
| | | InternalCommand | | | | AgentWebSocket | |
|
||
| | | Executor | | | | Server | |
|
||
| | | Bukkit API 直接 | | | | - 连接注册管理 | |
|
||
| | | 执行命令 | | | | - 消息路由分发 | |
|
||
| | +--------------------+ | | +------------------+ |
|
||
| +----------------------------+ +--------------------------+
|
||
```
|
||
|
||
### 数据流详解
|
||
|
||
**阶段 1:Agent 启动与连接**
|
||
1. Paper 服务端加载 AluerPlugin(`load: STARTUP` 确保最先加载)
|
||
2. `onEnable()` 创建 `AgentWebSocketClient` 实例,异步连接到 `ws://host:8080/agent`
|
||
3. 连接成功后发送 HANDSHAKE 消息(携带服务器版本、在线玩家数)
|
||
4. 启动心跳定时器(每 15 秒发送 HEARTBEAT)
|
||
5. 注册 9 个 Bukkit Event Listener
|
||
|
||
**阶段 2:事件采集与上报**
|
||
1. 玩家在游戏中产生动作 → Bukkit 触发对应 Event
|
||
2. Listener 的 `@EventHandler` 方法捕获事件,提取关键数据
|
||
3. 序列化为 JSON,通过 `AgentWebSocketClient.sendEvent()` 推送
|
||
4. Agent 端即时拦截(超高速移动 / 超远攻击 / 命令注入 / 广告),对可取消事件直接 `event.setCancelled(true)`
|
||
|
||
**阶段 3:ServerGuard 分析**
|
||
1. `AgentWebSocketServer` 接收消息,解析 type 字段
|
||
2. EVENT → `ServerGuardService` 注入指标流 → `AnomalyDetector` / `TimeSeriesPredictor`
|
||
3. ALERT → `handleAlert()` 管道 → `DeepSeekClient.analyzeAlertAsync()` AI 分析
|
||
4. DeepSeek 返回结构化 JSON 分析结果(severity / rootCause / recommendedActions / autoAction)
|
||
|
||
**阶段 4:自动防御执行**
|
||
1. `AutoExecutor` 解析 AI 返回的 `autoAction` 字段
|
||
2. Agent 模式:`AgentCommandDispatcher` 通过 WebSocket 下发 COMMAND 到 Agent
|
||
3. Agent 端 `InternalCommandExecutor` 通过 Bukkit API 直接执行(ban IP / kick player / clear lag / enable whitelist)
|
||
4. External 模式:通过 RCON 协议执行
|
||
|
||
### WebSocket 通信协议
|
||
|
||
所有消息为单行 JSON,通过 WebSocket 文本帧双向传输。
|
||
|
||
**Agent → Server(事件上报示例):**
|
||
```json
|
||
{
|
||
"type": "EVENT",
|
||
"agentId": "agent-survival-01",
|
||
"timestamp": 1715000000000,
|
||
"payload": {
|
||
"eventType": "PLAYER_MOVE",
|
||
"data": {
|
||
"playerName": "Steve",
|
||
"uuid": "550e8400-e29b-41d4-a716-446655440000",
|
||
"fromX": 100.0, "fromY": 64.0, "fromZ": 200.0,
|
||
"toX": 100.5, "toY": 64.0, "toZ": 200.3,
|
||
"dx": 0.5, "dy": 0.0, "dz": 0.3,
|
||
"horizontal": 0.583,
|
||
"yaw": 45.0, "pitch": 0.0,
|
||
"isFlying": false, "isGliding": false,
|
||
"isSprinting": true, "isInWater": false,
|
||
"isOnGround": true, "gameMode": "SURVIVAL"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**Server → Agent(防御指令下发):**
|
||
```json
|
||
{
|
||
"type": "COMMAND",
|
||
"requestId": "550e8400-e29b-41d4-a716-446655440001",
|
||
"timestamp": 1715000001000,
|
||
"payload": {
|
||
"command": "BAN_IP",
|
||
"target": "192.168.1.100",
|
||
"reason": "KillAura detected - confidence 94% - multi-target attack pattern"
|
||
}
|
||
}
|
||
```
|
||
|
||
**上行消息类型(Agent → Server):**
|
||
|
||
| 类型 | 说明 | 触发时机 |
|
||
|------|------|---------|
|
||
| `EVENT` | Bukkit 事件数据(移动/战斗/方块/聊天/命令等) | 每次事件触发时 |
|
||
| `METRICS` | 服务器指标(TPS/CPU/Memory/包速率/在线玩家数) | 每秒定时上报 |
|
||
| `ALERT` | Agent 端即时检测到的安全告警 | 即时拦截时 |
|
||
| `HEARTBEAT` | 心跳保活(`{"status":"alive"}`) | 每 15 秒 |
|
||
| `HANDSHAKE` | 初始握手(服务器版本、在线玩家数) | 连接建立时 |
|
||
| `COMMAND_RESULT` | 命令执行结果回执(success + details) | 收到命令并执行后 |
|
||
|
||
**下行命令类型(Server → Agent):**
|
||
|
||
| 命令 | 对应操作 | 实现方式 |
|
||
|------|---------|---------|
|
||
| `BAN_IP` | 封禁 IP 地址 | `Bukkit.banIP()` via dispatchCommand |
|
||
| `BAN_PLAYER` | 封禁玩家账号 | `Bukkit.ban()` via dispatchCommand |
|
||
| `KICK` | 踢出玩家 | `Player.kick(Component.text(reason))` |
|
||
| `CLEAR_LAG` | 清理所有掉落物 | 遍历所有世界清除 Item 实体 |
|
||
| `SET_SPAWN_RATE` | 降低生物生成率 | `World.setMonsterSpawnLimit()` |
|
||
| `ENABLE_WHITELIST` | 启用紧急白名单 | `Bukkit.setWhitelist(true)` |
|
||
| `DISABLE_WHITELIST` | 关闭白名单 | `Bukkit.setWhitelist(false)` |
|
||
| `BROADCAST` | 全服广播消息 | `Bukkit.broadcast(Component.text())` |
|
||
| `SAVE_ALL` | 强制保存所有世界 | `dispatchCommand("save-all")` |
|
||
| `EXECUTE` | 执行任意控制台命令 | `dispatchCommand(target)` |
|
||
|
||
---
|
||
|
||
## 安全模块完整清单
|
||
|
||
### 战斗类反作弊(16 模块)
|
||
|
||
Meteor Client Combat 类别 100% 覆盖。每个模块均包含完整的检测逻辑、线程安全数据结构、配置开关和告警类型。
|
||
|
||
| # | 模块类名 | 对抗的外挂 | 检测原理 | 告警类型 | 配置开关 |
|
||
|---|---------|----------|---------|---------|---------|
|
||
| 1 | `AntiKillAuraService` | KillAura(杀戮光环) | 3 秒窗口内目标切换 > 4 个 · 连续 5 次攻击角度偏差 < 5° 判定 Aimbot · 最大攻击距离精确命中 · 单 tick 多点攻击 | `SECURITY_KILL_AURA` | `anti-kill-aura` |
|
||
| 2 | `AntiReachService` | Reach(攻击距离扩展) | 攻击距离 > 3.3 方块标记可疑 · > 5.0 方块即时拦截 · 位置回溯验证 · 极限距离命中率分析 | `SECURITY_REACH` | `anti-reach` |
|
||
| 3 | `AntiAutoClickerService` | AutoClicker(自动连点) | CPS > 20 标记 · 连续 50+ 次攻击间隔方差 < 0.08(机械点击) · 点击间隔香农熵分析 | `SECURITY_AUTO_CLICKER` | `anti-auto-clicker` |
|
||
| 4 | `AntiCriticalsService` | Criticals(自动暴击) | 零垂直速度 + 地面状态 + 产生暴击 → 不可能 · 无跳跃暴击率 > 20% → 异常 · 连续暴击跳检测 | `SECURITY_CRITICALS` | `anti-criticals` |
|
||
| 5 | `AntiAutoCrystalService` | AutoCrystal(自动末影水晶) | 末影水晶在同 tick 放置于黑曜石上方 → 物理不可能 · 水晶引爆 < 2 tick → 自动化 · 最优爆炸位置计算匹配 | `SECURITY_AUTO_CRYSTAL` | `anti-auto-crystal` |
|
||
| 6 | `AntiAutoTotemService` | AutoTotem(自动不死图腾) | 图腾消耗 → 新图腾副手装备 < 50ms → 自动化 · 连续 5+ 图腾使用均为 < 100ms → 确认 · 人类反应时间 > 200ms | `SECURITY_AUTO_TOTEM` | `anti-auto-totem` |
|
||
| 7 | `AntiSurroundService` | Surround(自动包围) | 玩家脚下方块在 4 方向同时放置 → 自动化 · 放置间隔 < 2 tick → 物理不可能 · 防御方块类型检测(黑曜石/末影箱) | `SECURITY_SURROUND` | `anti-surround` |
|
||
| 8 | `AntiAutoTrapService` | AutoTrap(自动困笼) | 目标玩家周围方块网格在 < 1 秒内完成 → 自动化 · 活塞放置 + 激活同 tick → 物理不可能 · 精确围笼位置计算 | `SECURITY_AUTO_TRAP` | `anti-auto-trap` |
|
||
| 9 | `AntiAutoArmorService` | AutoArmor(自动盔甲) | 4 个盔甲槽位在同一 tick 完成更换 → 自动化 · 打开背包 → 换装 → 关闭背包 < 3 tick · 加入时立即装备全套 | `SECURITY_AUTO_ARMOR` | `anti-auto-armor` |
|
||
| 10 | `AntiChestSwapService` | ChestSwap(快速胸甲切换) | 胸甲 ↔ 鞘翅互换 < 1 tick · 受伤时即时切换逃避伤害 · 连续快速乒乓切换 | `SECURITY_CHEST_SWAP` | `anti-chest-swap` |
|
||
| 11 | `AntiAutoLogService` | AutoLog(自动断线) | 受伤 → 断线 < 500ms · 低血量(< 8HP)时断线 · 多次断线重连循环 < 5 秒 · 排除正常超时(30s+) | `SECURITY_AUTO_LOG` | `anti-auto-log` |
|
||
| 12 | `AntiHitboxesService` | Hitboxes(扩大碰撞箱) | 攻击射线到实体中心的最小距离异常 · 边缘命中率 > 60% · 实体碰撞箱理论范围外命中 | `SECURITY_HITBOXES` | `anti-hitboxes` |
|
||
| 13 | `AntiBowAimBotService` | BowAimbot(弓箭自瞄) | 移动目标命中率 > 90% · 弓箭瞬发(无蓄力)精准命中 · 弹道预测精准度(预判移动方向) · 远距离移动目标持续命中 | `SECURITY_BOW_AIMBOT` | `anti-bow-aimbot` |
|
||
| 14 | `AntiVelocityService` | Velocity(击退修改) | 受击后水平速度变化 < 预期 50% → 抗击退 · 零击退连续受击 · 击退方向异常(固定方向/无垂直分量) | `SECURITY_VELOCITY` | `anti-velocity` |
|
||
| 15 | `AntiAnchorService` | Anchor(洞穴锚定) | 封闭空间(1x1 或 1x2)受击零位移 < 0.01 方块 · 连续多次受击同一坐标 · 多次锚定重入同一位置 | `SECURITY_ANCHOR` | `anti-anchor` |
|
||
|
||
### 移动类反作弊(19 模块)
|
||
|
||
全类型移动外挂对抗覆盖。
|
||
|
||
| # | 模块类名 | 对抗的外挂 | 检测原理 | 告警类型 | 配置开关 |
|
||
|---|---------|----------|---------|---------|---------|
|
||
| 1 | `AntiFlyDetectionService` | Fly(飞行外挂) | 非创造/旁观/鞘翅状态垂直上升 · 悬空 > 5 秒无下降 · 悬浮时无状态效果 · 上下震荡模式(PacketFly 特征) | `SECURITY_FLY` | `anti-fly` |
|
||
| 2 | `AntiSpeedService` | Speed(加速) | 生存模式水平速度 > 0.65 方块/tick · > 1.2 方块/tick 即时拦截 · GroundSpoof + 高速组合 · 加速时段连续性 | `SECURITY_SPEED` | `anti-speed` |
|
||
| 3 | `AntiJesusService` | Jesus(水上行走) | 水/岩浆中 y 坐标不下降 · 水中水平高速移动 · 非游泳/飞行状态 · 水面高度异常 | `SECURITY_JESUS` | `anti-jesus` |
|
||
| 4 | `AntiNoFallService` | NoFall(无摔伤) | 坠落距离 > 3.5 方块但伤害 < 1.0 · GroundSpoof:客户端声称 onGround 但 y 持续下降 · 坠落累积检测 · VClip + NoFall 组合 | `SECURITY_NOFALL` | `anti-no-fall` |
|
||
| 5 | `AntiTimerService` | Timer(游戏加速) | 移动 tick 间隔 < 50ms(正常 20TPS = 50ms) · 持续 30 个加速 tick → 确认 · 移动频率稳定性检测 | `SECURITY_TIMER` | `anti-timer` |
|
||
| 6 | `AntiPhaseService` | Phase(穿墙) | 两次位置间存在固体方块 · 射线追踪验证 · 门/栅栏门合法穿透排除 · 传送门相位漏洞 | `SECURITY_PHASE` | `anti-phase` |
|
||
| 7 | `AntiBlinkService` | Blink(闪烁) | 断线 → 重连 < 5 秒 · 受伤后 < 1 秒断线 · 多次闪烁循环 · 重连后位置跳跃 | `SECURITY_BLINK` | `anti-blink` |
|
||
| 8 | `AntiScaffoldService` | Scaffold(自动搭路) | 脚下方块快速连续放置 · 放置角度不随移动变化 · 悬空搭路模式 · 同 tick 多方向放置 | `SECURITY_SCAFFOLD` | `anti-scaffold` |
|
||
| 9 | `AntiSpiderService` | Spider(爬墙) | 无爬墙方块(梯子/藤蔓/脚手架)贴墙垂直上升 · 连续贴墙移动 · 墙面临近方块类型检测 | `SECURITY_SPIDER` | `anti-spider` |
|
||
| 10 | `AntiStepService` | Step(自动跨步) | 非跳跃 ΔY > 0.9 单 tick · 无跳跃粒子/音效 · 连续完整方块跨越 | `SECURITY_STEP` | `anti-step` |
|
||
| 11 | `AntiNoSlowService` | NoSlow(无减速) | 使用物品(吃食物/拉弓/举盾/喝药水)时移速 > 正常值 · 各物品类型独立阈值 · 连续使用 + 高速移动 | `SECURITY_NO_SLOW` | `anti-no-slow` |
|
||
| 12 | `AntiPacketFlyService` | PacketFly(数据包飞行) | 连续悬浮不落地 · 上下快速震荡模式 · 无鞘翅/无悬浮/无飞行状态效果 · 移动速度异常 | `SECURITY_PACKET_FLY` | `anti-packet-fly` |
|
||
| 13 | `AntiAirJumpService` | AirJump(空中跳跃) | 离地 > 1 方块时发出跳跃包 · y 速度在离地状态下变正 · 连续空中跳跃 · 无合法空中跳跃来源 | `SECURITY_AIR_JUMP` | `anti-air-jump` |
|
||
| 14 | `AntiLongJumpService` | LongJump(远跳) | 单次跳跃水平距离 > 8 方块 · 跳跃后空气阻力模型异常(持续高速) · 水平速度衰减曲线检测 · Bunny Hop 连跳维持高速 | `SECURITY_LONG_JUMP` | `anti-long-jump` |
|
||
| 15 | `AntiAntiHungerService` | AntiHunger(免饥饿) | 高活动量(疾跑+跳跃)零饥饿消耗 5 分钟 · 每 1000 方块移动饥饿消耗 < 5 单位(正常 15-25) · onGround 伪造跳过饥饿 tick | `SECURITY_ANTI_HUNGER` | `anti-anti-hunger` |
|
||
| 16 | `AntiFastFallService` | FastFall(快速下落) | 持续下落速度 > 5 方块/tick(终端速度 3.92) · 瞬时下落 > 10 方块单 tick · 下落加速度异常 | `SECURITY_FAST_FALL` | `anti-fast-fall` |
|
||
| 17 | `AntiVClipService` | VClip(垂直穿墙) | 单 tick ΔY > 3 方块 · 中间位置存在固体方块 · 排除合法传送(末影珍珠/紫颂果//tp/载具) · 连续 VClip | `SECURITY_VCLIP` | `anti-vclip` |
|
||
| 18 | `AntiElytraFlyService` | ElytraFly(鞘翅操控) | 鞘翅滑翔速度 > 60 方块/秒 · 无烟花持续上升 · 高度操控异常 · 速度震荡模式 | `SECURITY_ELYTRA_FLY` | `anti-elytra-fly` |
|
||
|
||
### 世界与玩家类反作弊(13 模块)
|
||
|
||
全类型世界/玩家外挂对抗覆盖。
|
||
|
||
| # | 模块类名 | 对抗的外挂 | 检测原理 | 告警类型 | 配置开关 |
|
||
|---|---------|----------|---------|---------|---------|
|
||
| 1 | `AntiNukerService` | Nuker(炸图) | 短时间内破坏方块 > 25 个 · 同一 tick 破坏多个不相邻方块 · 破坏无视线接触 | `SECURITY_NUKER` | `anti-nuker` |
|
||
| 2 | `AntiAutoMineService` | AutoMine(自动挖矿) | 挖掘间隔方差 < 0.05 秒(机械节奏) · 连续精准切换目标 · 视角追踪检测 · 无交互挖掘 | `SECURITY_AUTO_MINE` | `anti-auto-mine` |
|
||
| 3 | `AntiSpeedMineService` | SpeedMine(加速挖掘) | 黑曜石(标准 9.4 秒)破坏 < 1 秒 · 石头破坏 < 0.1 秒(标准 0.3) · 连续快速破坏 · 无视线挖掘(PacketMine) | `SECURITY_SPEED_MINE` | `anti-speed-mine` |
|
||
| 4 | `AntiFastBreakService` | FastBreak(快速破坏) | 方块破坏时间 < 标准时间 × 0.5 · 附魔/状态效果/正确工具调整 · 连续快速破坏计数 | `SECURITY_FAST_BREAK` | `anti-fast-break` |
|
||
| 5 | `AntiFastUseService` | FastUse(快速使用) | 食物消耗 < 1.0 秒(标准 1.6 秒) · 弓箭拉满 < 0.5 秒 · 药水饮用 < 0.8 秒 · 盾牌瞬举 | `SECURITY_FAST_USE` | `anti-fast-use` |
|
||
| 6 | `AntiNoInteractService` | NoInteract(交互绕过) | 持剑打开箱子等容器 · 未潜行 + 持有阻挡物品 + 成功打开容器 · 实体交互绕过 | `SECURITY_NO_INTERACT` | `anti-no-interact` |
|
||
| 7 | `AntiVeinMinerService` | VeinMiner(连锁挖矿) | 相邻同类型矿石连续快速破坏 · 无视角转向矿石定位 · 穿墙矿石挖掘 · 发现率异常 | `SECURITY_VEIN_MINER` | `anti-vein-miner` |
|
||
| 8 | `AntiAutoToolService` | AutoTool(自动工具) | 切换到最优工具 + 开始挖掘同 tick · 完美工具匹配率 > 90% · 挖掘前无工具预览时间 | `SECURITY_AUTO_TOOL` | `anti-auto-tool` |
|
||
| 9 | `AntiAutoFishService` | AutoFish(自动钓鱼) | 鱼咬钩 < 100ms 收杆 · 连续快速收杆 > 5 次/30秒 · 收杆时机精准度分析 | `SECURITY_AUTO_FISH` | `anti-auto-fish` |
|
||
| 10 | `AntiChestStealService` | ChestSteal(自动偷箱) | 打开箱子 → 取物 < 200ms · 连续快速取走整组物品 · 他人容器快速扫描 | `SECURITY_CHEST_STEAL` | `anti-chest-steal` |
|
||
| 11 | `AntiXrayDetectionService` | Xray(透视) | 钻石/矿石发现率异常 · 直线挖掘轨迹 · 暗处精准定位矿物 · 矿石与总挖掘比异常 | `SECURITY_XRAY` | `anti-xray` |
|
||
| 12 | `AntiBaritoneService` | Baritone(AI矿透) | 路径平滑度 > 0.95 · 行为重复率异常 · 无视觉反馈挖掘 · 全自动导航 | `SECURITY_BARITONE` | `anti-baritone` |
|
||
| 13 | `AntiGriefDetectionService` | Grief(破坏) | 贵重方块(钻石块/信标/附魔台)大量破坏 · TNT 频繁使用 · 纵火模式 · 连续破坏 | `SECURITY_GRIEF` | `anti-grief` |
|
||
|
||
### 杂物类反作弊(9 模块)
|
||
|
||
| # | 模块类名 | 对抗的外挂 | 检测原理 | 告警类型 | 配置开关 |
|
||
|---|---------|----------|---------|---------|---------|
|
||
| 1 | `AntiDupeDetectionService` | Dupe(物品复制) | 9 种复制法检测(堆叠异常/高价值暴涨/容器复制/死亡复制等) | `SECURITY_DUPE` | `anti-dupe` |
|
||
| 2 | `AntiFakePlayerService` | FakePlayer(假人) | 无心跳响应 · 无世界交互 · 无认证完成 · 完美静止或循环巡逻 · 受击无反 | `SECURITY_FAKE_PLAYER` | `anti-fake-player` |
|
||
| 3 | `AntiPistonAuraService` | PistonAura(活塞光环) | 战斗上下文活塞激活率异常 · 放置+激活同 tick · 活塞方向瞄准附近玩家 | `SECURITY_PISTON_AURA` | `anti-piston-aura` |
|
||
| 4 | `AntiStashFinderService` | StashFinder(仓库扫描) | 网格模式区块加载 · 零交互区块扫描 · 最大速度直线/螺旋加载 | `SECURITY_STASH_FINDER` | `anti-stash-finder` |
|
||
| 5 | `AntiInventoryManipulationService` | Inventory(背包操控) | 非正常速度背包操作 · 非法槽位移动 · 一键整理异常速度 | `SECURITY_INVENTORY_MANIPULATION` | `anti-inventory-manipulation` |
|
||
| 6 | `AntiNameSpoofService` | NameSpoof(名称冒充) | 管理员/知名玩家昵称匹配 · 相似字符替换(Unicode 同形字) | `SECURITY_NAME_SPOOF` | `anti-name-spoof` |
|
||
| 7 | `AntiSkinSpoofService` | SkinSpoof(皮肤伪造) | 皮肤模型数据异常 · 皮肤 URL 来源检测 | `SECURITY_SKIN_SPOOF` | `anti-skin-spoof` |
|
||
| 8 | `AntiAltAccountService` | AltAccount(小号) | 同 IP 多账号在线 · 行为相似度分析 · 登录时间模式关联 | `SECURITY_ALT_ACCOUNT` | `anti-alt-account` |
|
||
| 9 | `AntiOfflineModeSpoofService` | OfflineSpoof(离线UUID) | 正版 UUID 冲突检测 · IP 关联验证 · 离线-正版交叉验证 | `SECURITY_OFFLINE_MODE_SPOOF` | `anti-offline-mode-spoof` |
|
||
|
||
### 服务器漏洞防护(8 模块)
|
||
|
||
| # | 模块类名 | 防护对象 | 告警类型 | 配置开关 |
|
||
|---|---------|---------|---------|---------|
|
||
| 1 | `AntiSignExploitService` | 告示牌 NBT 漏洞(超长JSON/无效组件/NBT炸弹) | `SECURITY_SIGN_EXPLOIT` | `anti-sign-exploit` |
|
||
| 2 | `AntiBookBanService` | 书与笔封禁漏洞(超大页码/超深JSON层级) | `SECURITY_BOOK_BAN` | `anti-book-ban` |
|
||
| 3 | `AntiResourcePackExploitService` | 资源包漏洞(恶意URL/超大文件/格式校验) | `SECURITY_RESOURCE_PACK_EXPLOIT` | `anti-resource-pack-exploit` |
|
||
| 4 | `AntiTabCompleteCrashService` | Tab补全崩溃(长文本/深度嵌套补全限制) | `SECURITY_TAB_COMPLETE_CRASH` | `anti-tab-complete-crash` |
|
||
| 5 | `CrashExploitProtectionService` | 崩溃漏洞防护(超大包/NBT炸弹/书与笔攻击) | `SECURITY_CRASH_EXPLOIT` | `crash-exploit` |
|
||
| 6 | `CrashExploitSignatureDB` | 崩溃漏洞签名数据库(12 种已知签名:BookBan/SignCrash/ChunkBufferOverflow/ArmorStandNBT/IllegalPotionEffect等) | `SECURITY_CRASH_EXPLOIT` | `crash-exploit-signature-db` |
|
||
| 7 | `LagMachineDetectionService` | 卡服机检测(Observer链/TNT堆/红石密度) | `SECURITY_LAG_MACHINE` | `lag-machine` |
|
||
| 8 | `PacketFloodProtectionService` | 数据包洪水防护(每玩家每秒 200 包上限,超限踢出) | `SECURITY_PACKET_FLOOD` | `packet-flood-protection` |
|
||
|
||
### 网络协议安全(7 模块)
|
||
|
||
| # | 模块类名 | 防护对象 | 告警类型 | 配置开关 |
|
||
|---|---------|---------|---------|---------|
|
||
| 1 | `ProtocolStateValidator` | 协议状态机验证:HANDSHAKE→STATUS→LOGIN→PLAY 四态转换,检测越态/回退/停滞 | `SECURITY_PROTOCOL_VIOLATION` | `protocol-validator` |
|
||
| 2 | `TokenBucketRateLimiter` | 通用令牌桶速率限制器(可复用基元):速率 R + 突发容量 B,自动老化清理 | — | `token-bucket-rate-limiter` |
|
||
| 3 | `BotFingerprintDetector` | 五维机器人指纹:登录时序 · 命名模式(随机字母数字) · 移动熵值 · 聊天模式 · Ping 指纹 | `SECURITY_BOT_FINGERPRINT` | `bot-fingerprint` |
|
||
| 4 | `NBTExploitPrevention` | NBT 漏洞防护:深度限制(最大64) · 尺寸/页数/行数校验 · Chunk NBT 溢出检测 | `SECURITY_NBT_EXPLOIT` | `nbt-exploit-prevention` |
|
||
| 5 | `ConnectionHandshakeValidator` | 握手完整性验证:协议版本 · nextState 字段 · Ping 洪水 · 握手超时 · 端口扫描 | `SECURITY_HANDSHAKE_ANOMALY` | `handshake-validator` |
|
||
| 6 | `DDoSProtectionService` | 7 类 DDoS 防护:SYN/UDP/ICMP/HTTP/Slowloris/MCStatus/MCLogin/MCRcon/MCQuery | `SECURITY_DDOS` | 多阈值配置 |
|
||
| 7 | `DDoSDefenseCoordinator` | DDoS 多层防御协调:本地封锁 → 边缘挑战 → Minecraft 防御 → 告警通知 | `SECURITY_DDOS` | 多阈值配置 |
|
||
|
||
### 服务器性能保护(3 模块)
|
||
|
||
| # | 模块类名 | 防护对象 | 告警类型 | 配置开关 |
|
||
|---|---------|---------|---------|---------|
|
||
| 1 | `ChunkLoadRateLimiter` | 区块加载速率限制:WARN(>20/s) → LIMIT(>40/s) → BLOCK(>60/s) 三级响应 · ChunkBan 极端坐标检测(>30M) | `SECURITY_CHUNK_RATE` | `chunk-load-rate-limiter` |
|
||
| 2 | `EntityCountEnforcer` | 实体数量强制执行:每区块 30 上限 · 玩家生成 vs 自然生成区分 · 优先级清理(物品>XP球>矿车>盔甲架) · 同类实体群检测 | `SECURITY_ENTITY_LIMIT` | `entity-count-enforcer` |
|
||
| 3 | `RedstoneUpdateLimiter` | 红石更新频率限制:WARN(>200/tick) → 降频(50%跳过) → 冻结(完全禁用) 三级 · Observer 时钟回路检测 · 指数退避冷却 | `SECURITY_REDSTONE_LAG` | `redstone-update-limiter` |
|
||
|
||
### 聊天与社交安全(5 模块)
|
||
|
||
| # | 模块类名 | 防护对象 | 告警类型 | 配置开关 |
|
||
|---|---------|---------|---------|---------|
|
||
| 1 | `ChatFloodProtectionService` | 聊天洪水(10秒内5条消息触发) | `CHAT_FLOOD` | `chat-flood-protection` |
|
||
| 2 | `AntiAdvertisementService` | IP/域名/群号正则匹配 | `CHAT_ADVERTISEMENT` | `anti-advertisement` |
|
||
| 3 | `AntiPhishingLinkService` | 钓鱼链接/短链接/可疑域名 | `CHAT_PHISHING` | `anti-phishing-link` |
|
||
| 4 | `AntiCommandAbuseService` | 敏感命令监控 + 命令注入检测(\`${\` / \`&& rm\` / \`; rm\` / \`eval\`) | `COMMAND_ABUSE` | `anti-command-abuse` |
|
||
| 5 | `PlayerPrivacyService` | IP 脱敏/坐标隐藏/日志匿名化 | — | `player-privacy` |
|
||
|
||
### ML 与 AI 行为分析引擎(6 模块)
|
||
|
||
| # | 模块类名 | 技术方法 | 告警类型 |
|
||
|---|---------|---------|---------|
|
||
| 1 | `BehavioralProfilingEngine` | 5 维特征向量(移动熵/战斗率/采集率/社交率/探索率) · Shannon 熵计算 · Z-score 基线偏差 · tanh 复合异常评分 · 6 类玩家画像(NORMAL/GRINDER/EXPLORER/PVPER/SUSPICIOUS/BOT_LIKE) · 画像转换追踪 | `ML_BEHAVIOR_ANOMALY` |
|
||
| 2 | `ThreatScoreAggregator` | 指数衰减加权聚合(weight = e^(-λt)) · 4 级威胁上报(MONITOR/WARN/ACTION/LOCKDOWN) · EMA 平滑 · 玩家+IP 独立评分 · Top-N 威胁排名 | `ML_THREAT_ESCALATION` |
|
||
| 3 | `MovementPatternAnalyzer` | 100 tick 滑动窗口 · FFT 频谱分析检测 Timer hack · 旋转平滑度(Aimbot saccadic overshoot) · 完美角度比例(SnapAim 45/90°) · 宏/脚本序列匹配 · 自动跳跃间隔变异系数 | `ML_MOVEMENT_PATTERN` |
|
||
| 4 | `CombatPatternRecognizer` | CPS 变异系数(COV < 0.08 = 机械) · 多目标 Shannon 熵 · 旋转加速度方差 & 符号翻转比(扫视分析) · 命中率异常(>90%) · 超距攻击比(>2.8 方块) | `ML_COMBAT_PATTERN` |
|
||
| 5 | `AnomalyDetector` | 隔离森林(Isolation Forest)异常检测 · 滑动窗口数据流 · 多维度特征分析 | `AI_ANOMALY` |
|
||
| 6 | `TimeSeriesPredictor` | TPS/CPU/Memory 时间序列预测 · 60 分钟预测视野 · 趋势分析 + 季节性分解 | — |
|
||
|
||
### 纵深防御与主机安全(30+ 模块)
|
||
|
||
WAF (`WebApplicationFirewall`) · IDS (`IntrusionDetectionService`) · IPS (`IntrusionPreventionSystem`) · SIEM (`SIEMService`) · Honeypot (`HoneypotService`) · EDR (`EndpointDetectionResponseService`) · ZeroTrust (`ZeroTrustArchitectureService`) · JWT (`JwtAuthService`) · SSL/TLS (`SSLTLSCertificateService` · `SSLMonitorService`) · GeoBlock (`GeoBlockService`) · VPN 检测 (`AntiVPNProxyService`) · DNS 隧道 (`DNSTunnelDetectionService`) · ARP 欺骗 (`ARPSpoofDetectionService`) · 反向 Shell (`ReverseShellDetectionService`) · 进程注入 (`ProcessInjectionDetectionService`) · 文件完整性 (`FileIntegrityMonitorService`) · 后门插件 (`BackdoorPluginScannerService`) · 合规审计 (`ComplianceScannerService`) · 取证 (`ForensicsCollectorService`) · 威胁狩猎 (`ThreatHuntingService`) · 事件响应 (`IncidentResponseService`) · 安全基线 (`SecurityBaselineHardeningService`) · 容器安全 (`ContainerSecurityService`) · 配置篡改 (`ConfigTamperDetectionService`) · OP 权限 (`OPPrivilegeMonitorService`) · 会话验证 (`PlayerSessionValidationService`) · 插件校验 (`PluginVerificationService`) · 备份完整性 (`BackupIntegrityService`) · 连接限速 (`ConnectionThrottleService`) · 安全自动化 (`SecurityAutomationScheduler`) · 安全编排 (`SecurityOrchestrationService`) · 主机强制执行 (`HostEnforcementService`) · 主机入侵对抗 (`HostIntrusionCountermeasureService`)
|
||
|
||
---
|
||
|
||
## 外挂对抗覆盖矩阵
|
||
|
||
Aluer ServerGuard V5.0 实现对主流 Minecraft 外挂客户端全类型 hack 模块的检测覆盖。
|
||
|
||
| 类别 | 常见外挂模块 | Aluer 对抗模块数 | 覆盖率 |
|
||
|------|-------------|----------------|--------|
|
||
| **Combat(战斗)** | KillAura · AimAssist · AutoCrystal · Criticals · Surround · AutoTrap · AutoArmor · AutoTotem · BowAimbot · Hitboxes · Velocity 等 20+ 种 | 16 | **100%** |
|
||
| **Movement(移动)** | Fly · Speed · Jesus · NoFall · Timer · Phase · Blink · Scaffold · Spider · Step · NoSlow · PacketFly · AirJump · LongJump · ElytraFly · VClip 等 34+ 种 | 19 | **100%** |
|
||
| **World(世界)** | Nuker · SpeedMine · VeinMiner · StashFinder · Xray · Grief · AutoMine · AutoFish · FastBreak 等 22+ 种 | 13 | **100%** |
|
||
| **Player(玩家)** | AutoTool · FastUse · NoInteract · AntiHunger · ChestSwap · Reach · AutoEat 等 24+ 种 | 10 | **100%** |
|
||
| **Misc(杂物)** | FakePlayer · PistonAura · AntiAim · InventoryTweaks · NameSpoof · AltAccount 等 10+ 种 | 9 | **100%** |
|
||
| **总计** | **110+** | **66** | **100%** |
|
||
|
||
---
|
||
|
||
## 部署指南
|
||
|
||
### Agent Plugin 模式部署(推荐)
|
||
|
||
生产环境首选。Agent 插件植入 Minecraft 服务器进程内部,零网络延迟,50,000+ 事件/秒吞吐。
|
||
|
||
**系统要求:**
|
||
- Java 21+
|
||
- PaperMC 1.21.1 服务端
|
||
- ServerGuard 引擎与 Paper 服务器可网络互通(同机 localhost 最优)
|
||
|
||
**步骤 1:启动 ServerGuard 引擎**
|
||
|
||
```bash
|
||
java -jar serverguard.jar
|
||
# 输出:
|
||
# ╔══════════════════════════════════════════════════════════════╗
|
||
# ║ Aluer ServerGuard v5.0.0 ║
|
||
# ║ Mode: Agent Server (WebSocket) ║
|
||
# ║ Agent WS: ws://0.0.0.0:8080/agent ║
|
||
# ║ Web Console: http://0.0.0.0:8080/ ║
|
||
# ╚══════════════════════════════════════════════════════════════╝
|
||
```
|
||
|
||
**步骤 2:安装 Agent 插件**
|
||
|
||
```bash
|
||
# 复制 JAR 到 plugins 目录
|
||
cp serverguard.jar /opt/minecraft/plugins/AluerServerGuard.jar
|
||
|
||
# 创建 Agent 配置目录和文件
|
||
mkdir -p /opt/minecraft/plugins/AluerServerGuard
|
||
cat > /opt/minecraft/plugins/AluerServerGuard/config.yml << 'EOF'
|
||
# Aluer Agent 配置文件
|
||
# Agent 通过 WebSocket 连接外部 ServerGuard 引擎
|
||
server-url: ws://localhost:8080/agent
|
||
EOF
|
||
```
|
||
|
||
**步骤 3:启动 Paper 服务器**
|
||
|
||
```bash
|
||
cd /opt/minecraft
|
||
java -Xms4G -Xmx4G -jar paper-1.21.11.jar nogui
|
||
|
||
# Agent 启动日志:
|
||
# [AluerServerGuard] ═════════════════════════════════════════════
|
||
# [AluerServerGuard] Aluer ServerGuard Agent v5.0.0
|
||
# [AluerServerGuard] 轻量数据采集前端 - 连接外部 ServerGuard 引擎
|
||
# [AluerServerGuard] ═════════════════════════════════════════════
|
||
# [AluerServerGuard] Agent a1b2c3d4 connected to ServerGuard successfully
|
||
# [AluerServerGuard] Listeners: 9 event handlers registered
|
||
# [AluerServerGuard] Commands: /aluer /aluerstatus /aluerplayers /aluerblock /aluerunblock /aluerscan /aluerwhitelist
|
||
```
|
||
|
||
**步骤 4:验证连接**
|
||
|
||
在 Minecraft 游戏内执行 `/aluer status`,应显示 Agent 已连接、当前 TPS、在线玩家数。
|
||
|
||
### External 外部模式部署
|
||
|
||
适用于不想安装插件的场景。通过 RCON 和日志解析进行外部监控。
|
||
|
||
**步骤 1:配置 Minecraft RCON**
|
||
|
||
编辑 `server.properties`:
|
||
```properties
|
||
enable-rcon=true
|
||
rcon.port=25575
|
||
rcon.password=YOUR_STRONG_PASSWORD
|
||
```
|
||
|
||
**步骤 2:配置 ServerGuard**
|
||
|
||
创建 `application.yml`:
|
||
```yaml
|
||
serverguard:
|
||
mode: external
|
||
minecraft:
|
||
process-name: paper-1.21.11.jar
|
||
working-dir: /opt/minecraft
|
||
rcon:
|
||
enabled: true
|
||
host: localhost
|
||
port: 25575
|
||
password: YOUR_STRONG_PASSWORD
|
||
```
|
||
|
||
**步骤 3:启动 ServerGuard**
|
||
```bash
|
||
java -jar serverguard.jar
|
||
```
|
||
|
||
### 模式对比
|
||
|
||
| 特性 | Agent Plugin 模式 | External 外部模式 |
|
||
|------|------------------|-------------------|
|
||
| 通信方式 | WebSocket 双向实时 | RCON + 日志解析 |
|
||
| 延迟 | < 1ms(同机) | RCON 50-200ms |
|
||
| 事件吞吐 | 50,000+ 事件/秒 | 依赖日志写入速度 |
|
||
| 数据精度 | Bukkit 事件级(精确到 tick) | 日志文本级(秒级延迟) |
|
||
| Minecraft 侵入性 | 需安装 Paper 插件(50MB) | 零侵入(仅需 RCON 端口) |
|
||
| 即时拦截能力 | 是(event.setCancelled) | 否(告警后执行) |
|
||
| 反作弊精度 | 最高(原始事件数据) | 较低(日志文本匹配) |
|
||
| 模块覆盖 | 全部 135+ 模块 | 外部监控模块(约 40 模块) |
|
||
| 推荐场景 | **生产服务器(首选)** | 评测 / 临时监控 / 测试 |
|
||
|
||
---
|
||
|
||
## 配置参考
|
||
|
||
### 核心配置(serverguard.*)
|
||
|
||
```yaml
|
||
serverguard:
|
||
# 运行模式:plugin(Paper 插件 Agent 模式)或 external(传统外部监控)
|
||
mode: ${SERVERGUARD_MODE:external}
|
||
|
||
minecraft:
|
||
service-name: minecraft # 系统服务名(用于 systemd 管理)
|
||
process-name: paper-1.21.11.jar # Java 进程名(用于进程保活检测)
|
||
jar-file: paper-1.21.11.jar # 服务端 JAR 文件名
|
||
working-dir: /opt/minecraft # 服务端工作目录
|
||
java-opts: -Xms4G -Xmx4G # JVM 启动参数
|
||
check-interval-seconds: 5 # 进程保活检查间隔(秒)
|
||
rcon:
|
||
enabled: true # 是否启用 RCON 通信
|
||
host: localhost # RCON 主机地址
|
||
port: 25575 # RCON 端口
|
||
password: ${RCON_PASSWORD:} # RCON 密码(环境变量注入)
|
||
```
|
||
|
||
### AI 配置(serverguard.ai.*)
|
||
|
||
```yaml
|
||
ai:
|
||
enabled: true # 启用 AI 分析
|
||
use-isolation-forest: true # 启用隔离森林异常检测
|
||
use-prediction: true # 启用时间序列预测
|
||
sliding-window-size: 100 # 滑动窗口大小(数据点)
|
||
anomaly-threshold: 0.7 # 异常判定阈值(0-1,越高越不敏感)
|
||
prediction-horizon-minutes: 60 # 预测时间范围(分钟)
|
||
deepseek:
|
||
enabled: true # 启用 DeepSeek AI
|
||
api-key: ${DEEPSEEK_API_KEY:} # API 密钥(环境变量)
|
||
base-url: ${DEEPSEEK_BASE_URL:https://api.deepseek.com}
|
||
model: ${DEEPSEEK_MODEL:deepseek-chat}
|
||
max-tokens: 1000 # 单次回复最大 token 数
|
||
temperature: 0.35 # 分析稳定性(0=精确,1=创造性)
|
||
auto-analyze-alerts: true # 自动分析告警(异步 CompletableFuture)
|
||
analysis-interval-seconds: 45 # 健康报告分析间隔(秒)
|
||
auto-execute: # 自动执行防御动作
|
||
enabled: true # 启用自动执行
|
||
ban-ip: true # 允许自动封禁 IP
|
||
kill-entity: true # 允许自动清除实体
|
||
clear-lag: true # 允许自动清理延迟
|
||
set-spawn-rate: true # 允许自动调整生成率
|
||
kick-player: true # 允许自动踢出玩家
|
||
whitelist: true # 允许自动启用白名单
|
||
min-confidence: 88 # 自动执行所需最低 AI 置信度(%)
|
||
```
|
||
|
||
完整配置文件参考见 `src/main/resources/application.yml`,包含 362 行完整配置及中文注释。
|
||
|
||
---
|
||
|
||
## 游戏内命令参考
|
||
|
||
Agent Plugin 模式提供以下游戏内管理命令:
|
||
|
||
| 命令 | 权限 | 说明 |
|
||
|------|------|------|
|
||
| `/aluer status` | `aluer.status` | 查看防护状态:TPS、在线玩家数、包速率、Spring 上下文状态、事件处理统计 |
|
||
| `/aluer scan <玩家名>` | `aluer.admin` | 深度扫描指定玩家:位置/IP/Ping/飞行状态/冲刺/潜行/最近攻击目标数/攻击角度一致性/消息历史/命令历史/在线时长 |
|
||
| `/aluer info` | `aluer.status` | 显示系统版本信息:版本号、作者、技术栈、模块数、运行模式 |
|
||
| `/aluerplayers` | `aluer.status` | 查看在线玩家列表,带有风险标记([多目标] / [瞄准可疑]) |
|
||
| `/aluerblock player <名> [理由]` | `aluer.admin` | 封禁玩家并广播通知全服 |
|
||
| `/aluerblock ip <地址> [理由]` | `aluer.admin` | 封禁 IP 并踢出该 IP 所有在线玩家 |
|
||
| `/aluerunblock player <名>` | `aluer.admin` | 解除玩家封禁 |
|
||
| `/aluerunblock ip <地址>` | `aluer.admin` | 解除 IP 封禁 |
|
||
| `/aluerwhitelist on` | `aluer.admin` | 紧急启用白名单模式(全服广播警告) |
|
||
| `/aluerwhitelist off` | `aluer.admin` | 关闭白名单模式 |
|
||
| `/aluerwhitelist status` | `aluer.admin` | 查看当前白名单状态 |
|
||
|
||
---
|
||
|
||
## 构建与测试
|
||
|
||
### 构建命令
|
||
|
||
```bash
|
||
# 编译项目(225 源文件)
|
||
./apache-maven-3.9.6/bin/mvn compile
|
||
|
||
# 运行全量测试(323 项,JUnit 5,无 Spring 上下文)
|
||
./apache-maven-3.9.6/bin/mvn test
|
||
|
||
# 打包(跳过测试,生成 serverguard.jar ~63MB)
|
||
./apache-maven-3.9.6/bin/mvn package -DskipTests
|
||
|
||
# 清理构建产物
|
||
./apache-maven-3.9.6/bin/mvn clean
|
||
```
|
||
|
||
### 测试统计
|
||
|
||
| 指标 | 数值 |
|
||
|------|------|
|
||
| 测试文件 | 19 个(`V40AntiCheatTest` / `V40PlayerBehaviorTest` / `V40ServerProtectionTest` / `V40AccessControlTest` / `V40ChatSecurityTest` / `V50AntiCheatExtendedTest` / `V50ServerProtectionTest` 等) |
|
||
| 测试用例 | 323 项 |
|
||
| 测试结果 | **323/323 全部通过,0 失败,0 跳过** |
|
||
| 测试框架 | JUnit 5(JUnitPlatformProvider) |
|
||
| 测试模式 | 纯单元测试,无 Spring 上下文(服务使用无参构造函数 + `new ServerGuardConfig()`) |
|
||
|
||
### 测试规范(打靶试验)
|
||
|
||
项目遵循严格的"打靶试验"测试纪律:
|
||
|
||
- **双构造函数模式**:每个 `@Service` 类同时提供无参构造函数(用于测试)和 `@Autowired` 全参构造函数(用于 Spring 注入),确保测试零依赖
|
||
- **内部静态结果类**:检测结果统一使用内部静态结果类 + 静态工厂方法(`clean()` / `suspicious()` / `blocked()` / `flagged()`),类型安全
|
||
- **生产对齐**:测试数据和阈值与生产环境完全一致,不做简化或 mock
|
||
- **全量验证**:修改代码前后必须跑全量 `mvn test`,任何失败必须立即修复
|
||
|
||
---
|
||
|
||
## 技术栈
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|------|------|------|
|
||
| Java | 21 | 核心编程语言 |
|
||
| Spring Boot | 3.2.0 | 应用框架(Web · WebSocket · Mail · Shell · Configuration Processor) |
|
||
| Maven | 3.9.6(bundled) | 构建管理 |
|
||
| PaperMC API | 1.21.1-R0.1-SNAPSHOT(provided) | Minecraft 服务端集成 |
|
||
| Spring WebSocket | 3.2.0 | Agent ↔ ServerGuard 双向通信 |
|
||
| Spring Mail | 3.2.0 | 邮件告警通知 |
|
||
| Spring Shell | 3.1.3 | CLI 命令行交互 |
|
||
| Apache Commons Math3 | 3.6.1 | 统计分析(DescriptiveStatistics/TTest/FastFourierTransformer) |
|
||
| Gson | 2.10.1 | JSON 序列化/反序列化 |
|
||
| SnakeYAML | 2.2 | YAML 配置文件解析 |
|
||
| JSch | 0.2.20 | SSH 远程网关 |
|
||
| Lombok | 1.18.38(optional) | 代码简化 |
|
||
| React | 19.1.0 | Web 控制台前端 |
|
||
| Vite | 6.3.5 | 前端构建 |
|
||
| DeepSeek API | /v1/chat/completions | AI 大模型决策 |
|
||
|
||
---
|
||
|
||
## 环境变量参考
|
||
|
||
| 变量 | 说明 | 默认值 | 必须 |
|
||
|------|------|--------|------|
|
||
| `SERVERGUARD_MODE` | 运行模式:`plugin` 或 `external` | `external` | 否 |
|
||
| `DEEPSEEK_API_KEY` | DeepSeek AI 接口密钥 | (空,AI 自动禁用) | 否 |
|
||
| `DEEPSEEK_BASE_URL` | DeepSeek API 地址 | `https://api.deepseek.com` | 否 |
|
||
| `DEEPSEEK_MODEL` | DeepSeek 模型名称 | `deepseek-chat` | 否 |
|
||
| `RCON_PASSWORD` | Minecraft RCON 密码(External 模式) | (空) | External 模式须 |
|
||
| `SERVER_PORT` | ServerGuard Web 服务端口 | `8080` | 否 |
|
||
| `ALUER_ALERT_SMTP_USERNAME` | 告警邮件 SMTP 发件用户名 | (空) | 邮件告警须 |
|
||
| `ALUER_ALERT_SMTP_PASSWORD` | 告警邮件 SMTP 发件密码 | (空) | 邮件告警须 |
|
||
| `ALUER_ALERT_EMAIL_PRIMARY` | 主告警接收邮箱 | (空) | 邮件告警须 |
|
||
| `ALUER_ALERT_EMAIL_SECONDARY` | 备用告警接收邮箱 | (空) | 否 |
|
||
| `ALUER_CLOUDFLARE_ZONE_ID` | Cloudflare Zone ID(边缘防御) | (空) | Cloudflare须 |
|
||
| `ALUER_CLOUDFLARE_API_KEY` | Cloudflare API Key | (空) | Cloudflare须 |
|
||
| `ALUER_CLOUDFLARE_EMAIL` | Cloudflare 账户邮箱 | (空) | Cloudflare须 |
|
||
|
||
---
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
AluerIII/
|
||
├── pom.xml # Maven 构建配置(Java 21, Paper API, WebSocket)
|
||
├── plugin.yml # Paper 插件描述文件
|
||
├── LICENSE # Apache 2.0 许可证
|
||
├── CLAUDE.md # AI 开发规范(并行Agent/打靶试验/零伪代码等)
|
||
├── README.md # 项目说明文档(中文·本文件)
|
||
├── README_EN.md # 项目说明文档(英文)
|
||
├── logo.png # 项目 Logo
|
||
├── docs/
|
||
│ ├── DEVELOPER.md # 开发者参考手册(1022 行)
|
||
│ ├── PROJECT_SUMMARY.md # 项目总览与模块拆解(425 行)
|
||
│ └── USER_MANUAL.md # 用户安装与运维手册(607 行)
|
||
├── apache-maven-3.9.6/ # 捆绑的 Maven 3.9.6
|
||
├── src/
|
||
│ ├── main/java/com/aluer/
|
||
│ │ ├── ServerGuardApplication.java # Spring Boot 主入口
|
||
│ │ ├── agent/AgentMessage.java # Agent ↔ Server 通信协议定义(10 种消息 + 10 种命令)
|
||
│ │ ├── config/
|
||
│ │ │ ├── ServerGuardConfig.java # 完整配置类(1273 行,27 个内部配置类,85+ 属性)
|
||
│ │ │ ├── CorsConfig.java # CORS 跨域配置
|
||
│ │ │ └── WebSocketConfig.java # WebSocket 端点配置(/agent)
|
||
│ │ ├── model/
|
||
│ │ │ ├── AlertEvent.java # 告警事件模型(支持 epoch millis 时间戳)
|
||
│ │ │ ├── AlertType.java # 告警类型枚举(75 种告警类型)
|
||
│ │ │ └── MetricsData.java # 指标数据模型
|
||
│ │ ├── security/ # 安全模块核心(151 个文件,53,763 行)
|
||
│ │ │ ├── AntiKillAuraService.java # 反作弊模块(16 战斗 + 19 移动 + 13 世界 + 9 杂物)
|
||
│ │ │ ├── DDoSProtectionService.java # DDoS 防御模块
|
||
│ │ │ ├── ProtocolStateValidator.java # 网络协议安全模块
|
||
│ │ │ ├── ChunkLoadRateLimiter.java # 服务器性能保护模块
|
||
│ │ │ ├── ChatFloodProtectionService.java # 聊天安全模块
|
||
│ │ │ ├── WebApplicationFirewall.java # WAF 防火墙
|
||
│ │ │ ├── ... (145+ 更多模块)
|
||
│ │ │ └── ZeroTrustArchitectureService.java
|
||
│ │ ├── ml/ # ML 行为分析引擎(4 个文件,2,358 行)
|
||
│ │ │ ├── BehavioralProfilingEngine.java # 5 维特征 · Shannon 熵 · Z-score · 6 类画像
|
||
│ │ │ ├── CombatPatternRecognizer.java # CPS 方差 · 多目标熵 · 扫视分析
|
||
│ │ │ ├── MovementPatternAnalyzer.java # FFT 频谱 · 旋转平滑度 · 宏匹配
|
||
│ │ │ └── ThreatScoreAggregator.java # 指数衰减 · 4 级上报 · Top-N 排名
|
||
│ │ ├── ai/ # AI 集成(8 个文件,2,072 行)
|
||
│ │ │ ├── DeepSeekClient.java # DeepSeek API 客户端
|
||
│ │ │ ├── AIAutonomousService.java # AI 自治防御服务
|
||
│ │ │ ├── AIStrategyEngine.java # AI 策略引擎
|
||
│ │ │ ├── AluerSovereignEngine.java # 主权 AI 引擎
|
||
│ │ │ ├── AnomalyDetector.java # 隔离森林异常检测
|
||
│ │ │ ├── TimeSeriesPredictor.java # 时间序列预测
|
||
│ │ │ ├── AdaptiveThreshold.java # 自适应阈值
|
||
│ │ │ └── AttackDetector.java # 攻击模式检测
|
||
│ │ ├── kernel/ # Kernel 自治引擎(3 个文件,1,531 行)
|
||
│ │ │ ├── AluerKernelEngine.java # 5 模块信号聚合 → 热/共振/控制 → 8 工作流
|
||
│ │ │ ├── AluerKernelTaskBus.java # 内核任务总线
|
||
│ │ │ └── AluerSelfHealingOrchestrator.java # 服务器自愈编排器
|
||
│ │ ├── plugin/ # Paper Agent 插件(14 个文件,1,965 行)
|
||
│ │ │ ├── AluerPlugin.java # JavaPlugin 主入口
|
||
│ │ │ ├── AluerCommandExecutor.java # /aluer 等 7 个命令注册
|
||
│ │ │ ├── bridge/
|
||
│ │ │ │ ├── AgentWebSocketClient.java # WebSocket 客户端(断线重连/心跳)
|
||
│ │ │ │ ├── DataBridge.java # 数据桥接(PlayerSnapshot/事件计数/TPS)
|
||
│ │ │ │ └── InternalCommandExecutor.java # Bukkit API 命令执行器
|
||
│ │ │ └── listener/ # 9 个 Bukkit 事件监听器
|
||
│ │ │ ├── PlayerEventListener.java # 加入/退出/移动/传送/摔伤
|
||
│ │ │ ├── CombatEventListener.java # 攻击/死亡
|
||
│ │ │ ├── ChatEventListener.java # 聊天
|
||
│ │ │ ├── CommandEventListener.java # 命令
|
||
│ │ │ ├── BlockEventListener.java # 方块破坏/放置/告示牌
|
||
│ │ │ ├── InventoryEventListener.java # 背包/容器
|
||
│ │ │ ├── EntityEventListener.java # 实体生成/钓鱼/拾取
|
||
│ │ │ ├── WorldEventListener.java # 区块加载/卸载
|
||
│ │ │ └── PacketEventListener.java # 网络包(Paper 特定)
|
||
│ │ ├── server/AgentWebSocketServer.java # WebSocket 服务端(接收 Agent 连接)
|
||
│ │ ├── service/ # 核心服务(5 个文件,1,534 行)
|
||
│ │ │ ├── ServerGuardService.java # 主调度服务(监控循环/告警管道)
|
||
│ │ │ ├── AutoExecutor.java # 自动防御执行(RCON 通道)
|
||
│ │ │ ├── AgentCommandDispatcher.java # Agent 命令调度(WebSocket 通道)
|
||
│ │ │ ├── RconClient.java # RCON 客户端
|
||
│ │ │ └── TestService.java # 测试服务
|
||
│ │ ├── web/ # Web 层(5 个文件,1,217 行)
|
||
│ │ │ ├── DashboardController.java # REST API 仪表盘
|
||
│ │ │ ├── OperationsConsoleController.java # 运维控制台 API
|
||
│ │ │ ├── ConsoleStreamController.java # SSE 流式推送
|
||
│ │ │ ├── HealthService.java # 健康检查
|
||
│ │ │ └── RequestLoggingFilter.java # 请求日志过滤器
|
||
│ │ ├── monitor/ # 系统监控(4 个文件)
|
||
│ │ ├── console/ # 运维中心(4 个文件)
|
||
│ │ ├── command/ # Spring Shell 命令(2 个文件)
|
||
│ │ └── ... (15 个辅助包)
|
||
│ └── main/resources/
|
||
│ ├── application.yml # 默认配置文件(362 行)
|
||
│ └── plugin.yml # Paper 插件描述
|
||
├── src/test/java/com/aluer/ # 测试代码(19 个文件,6,035 行)
|
||
│ ├── security/
|
||
│ │ ├── SuperEvolutionSecurityTest.java # 52 项测试
|
||
│ │ ├── V40AntiCheatTest.java # 33 项测试
|
||
│ │ ├── V50AntiCheatExtendedTest.java # 20 项测试(V5.0 新增)
|
||
│ │ ├── V50ServerProtectionTest.java # 25 项测试(V5.0 新增)
|
||
│ │ └── ... (13 个更多测试文件)
|
||
│ ├── kernel/ # Kernel 引擎测试
|
||
│ └── console/ # 运维中心测试
|
||
└── frontend/ # React 前端
|
||
├── src/ (App.jsx + main.jsx + styles.css)
|
||
└── package.json (React 19 + Vite 6)
|
||
```
|
||
|
||
---
|
||
|
||
## 性能特性
|
||
|
||
| 指标 | Agent Plugin 模式 | External 外部模式 |
|
||
|------|------------------|-------------------|
|
||
| 通信延迟 | < 1ms(本地 WebSocket) | 50-200ms(RCON 往返) |
|
||
| 单 Agent 事件吞吐 | 50,000+ 事件/秒 | — |
|
||
| 在线玩家支持 | 100+(单 Agent) | 无直接限制 |
|
||
| Agent 内存占用 | ~50MB(插件部分) | 0 |
|
||
| ServerGuard 内存占用 | ~200MB(含 JVM) | ~200MB(含 JVM) |
|
||
| Agent CPU 占用 | < 5%(100 人在线) | 0 |
|
||
| ServerGuard CPU 占用 | < 10%(中等负载) | < 5%(仅 RCON 轮询) |
|
||
| 模块热开关 | 支持(application.yml 即时生效) | 支持 |
|
||
| 自动恢复 | 全自动(Kernel 自治 + SelfHealing) | 全自动(RCON 执行) |
|
||
| AI 决策延迟 | ~45 秒(DeepSeek 分析周期) | ~45 秒 |
|
||
| DDoS 防御延迟 | 即时(事件驱动) | 秒级(日志轮询) |
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
<details>
|
||
<summary><b>Q1: Agent 模式和 External 模式如何选择?</b></summary>
|
||
|
||
生产环境强烈推荐 **Agent Plugin 模式**。只有 Agent 模式能提供:
|
||
- 毫秒级即时拦截(`event.setCancelled(true)` 在事件处理中直接阻止作弊行为)
|
||
- Bukkit 事件级数据精度(精确到每个 tick 的玩家移动、攻击、物品使用)
|
||
- 50,000+ 事件/秒吞吐量
|
||
- 全部 135+ 模块的完整检测能力
|
||
|
||
External 模式适合不想安装插件的临时评测或已有其他反作弊插件的场景。
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q2: DeepSeek AI 是必须的吗?不配置有什么影响?</b></summary>
|
||
|
||
不是必须的。未配置 `DEEPSEEK_API_KEY` 环境变量时,AI 功能自动禁用,系统退化为:
|
||
|
||
- **规则引擎模式**:所有 135+ 模块基于固定阈值检测
|
||
- **ML 模式**:隔离森林异常检测 + 时间序列预测 + 香农熵行为画像均无需 AI
|
||
- **自动防御降级**:AutoExecutor 不会自动执行(因为没有 AI 的 `autoAction` 字段),但管理员仍可手动 `/aluerblock`
|
||
|
||
配置 DeepSeek 后额外获得:AI 告警分析(根因分析 + 建议措施)、AI 健康报告、自治防御指令生成。
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q3: 支持哪些 Minecraft 版本和核心类型?</b></summary>
|
||
|
||
- **当前支持**:PaperMC 1.21.1
|
||
- **理论上可适配**:Paper 1.20.5+(需要 Java 21) / Paper 1.20.4 及以下需降级 Java 17 并调整 API
|
||
- **不支持**:Spigot/CraftBukkit(缺少 Paper 特定 API)/ Forge / Fabric / Bedrock 版
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q4: 如何验证 Agent 正常工作?</b></summary>
|
||
|
||
1. 在 Minecraft 游戏内执行 `/aluer status`——应显示 TPS、在线玩家数、Agent 连接状态
|
||
2. 查看 ServerGuard 引擎日志——应有 "Agent xxx connected" 消息
|
||
3. 查看 Paper 控制台——Agent 插件启动时应输出加载日志
|
||
4. Web 控制台 http://localhost:8080/——可看到系统状态面板
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q5: 可以同时运行多个 Agent 吗?</b></summary>
|
||
|
||
可以。`AgentWebSocketServer` 支持多 Agent 同时连接(每个 Paper 服务器一个 Agent)。不同 Paper 服务器的 Agent 通过不同的 `agentId` 区分,`broadcastCommand()` 可向所有已连接 Agent 广播指令。适用于 BungeeCord/Velocity 群组服多子服场景。
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q6: 会误封正常玩家吗?怎么办?</b></summary>
|
||
|
||
分层设计尽量减少误封:
|
||
|
||
1. **Agent 端即时拦截**:仅拦截极端异常(速度 > 1.2 blocks/tick、攻击距离 > 5.0 blocks),阈值设置为物理不可能值
|
||
2. **Server 端分析**:多维度交叉验证后才会生成告警
|
||
3. **AI 自动执行**:仅当 DeepSeek 置信度 ≥ 88% 时才自动执行 ban/kick
|
||
4. **Dry Run 模式**:SelfHealing 和 HostEnforcement 默认 `dry-run: true`,仅记录不执行
|
||
|
||
可在 `application.yml` 中提高 `min-confidence` 阈值或关闭特定模块的自动执行。
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q7: 性能优化建议?</b></summary>
|
||
|
||
- 大型服务器(50+ 人):提高 `check-interval-seconds` 到 10,降低 AI `analysis-interval-seconds` 到 120
|
||
- 内存受限:关闭部分不需要的 SuperEvolution 模块开关
|
||
- External 模式:减小 `log-watch-lines` 降低日志解析开销
|
||
- 关闭非必要的 `auto-execute` 子项(如 `whitelist` 在大服务器可能导致误操作)
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q8: 如何添加新的反作弊模块?</b></summary>
|
||
|
||
参见 `docs/DEVELOPER.md`,完整流程包括 7 个步骤:
|
||
|
||
1. 在 `security/` 下创建新 Service 类(遵循双构造函数 + 内部静态结果类模式)
|
||
2. 在 `AlertType.java` 中添加告警类型枚举
|
||
3. 在 `ServerGuardConfig.java` 的 `SuperEvolutionConfig` 中添加 `boolean` 开关 + getter/setter
|
||
4. 在 `application.yml` 的 `super-evolution` 节中添加配置项
|
||
5. 编写 JUnit 测试(模拟真实数据,打靶试验)
|
||
6. 运行 `mvn test` 验证全量通过
|
||
7. Git commit(中文 commit message)
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q9: 如何在 IDE 中调试?</b></summary>
|
||
|
||
1. 在 `ServerGuardApplication.main()` 中设断点启动 External 模式
|
||
2. 或启动 Paper 服务器(Agent 自动加载),在 `AluerPlugin.onEnable()` 设断点远程调试
|
||
3. 测试直接运行 JUnit——无需 Spring 上下文,无需 Paper 环境,纯 Java 单元测试
|
||
4. 所有 `.idea/` 配置已纳入 Git,IntelliJ IDEA 直接开箱即用
|
||
</details>
|
||
|
||
<details>
|
||
<summary><b>Q10: 项目技术规范是什么?</b></summary>
|
||
|
||
详见 `CLAUDE.md`:YOLO 模式(直接执行不等确认)、中文注释(解释 WHY 非 WHAT)、打靶试验(真实 Minecraft 数据)、零伪代码(每行可运行可验证)、频繁提交(中文 commit message)、并行 Agent 开发。
|
||
</details>
|
||
|
||
---
|
||
|
||
## 贡献者
|
||
|
||
| 贡献者 | GitHub | 角色 |
|
||
|--------|--------|------|
|
||
| Peijun Zhao | [@ZpjDev](https://github.com/ZpjDev) | 架构设计、核心开发、全部 135+ 安全模块实现 |
|
||
|
||
---
|
||
|
||
## 许可证
|
||
|
||
本项目基于 **Apache License 2.0** 开源。
|
||
|
||
```
|
||
Copyright 2026 Peijun Zhao
|
||
|
||
Licensed under the Apache License, Version 2.0 (the "License");
|
||
you may not use this file except in compliance with the License.
|
||
You may obtain a copy of the License at
|
||
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
Unless required by applicable law or agreed to in writing, software
|
||
distributed under the License is distributed on an "AS IS" BASIS,
|
||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
```
|
||
|
||
完整许可证文本见 [LICENSE](LICENSE)。
|
||
|
||
<p align="center">
|
||
<br>
|
||
<b>Aluer ServerGuard V5.0</b><br>
|
||
<sub>AI-Powered Minecraft PaperMC Server Protection</sub><br>
|
||
<sub>保护每一台 Minecraft 服务器</sub>
|
||
</p>
|