- README.md/EN: 架构图、模块清单、双模式部署、WebSocket协议、75种告警类型 - docs/DEVELOPER.md: 五核心设计模式、七步添加新模块模板、事件监听器、Agent协议 - docs/PROJECT_SUMMARY.md: 模块统计、100% Meteor Client覆盖矩阵、竞品对比 - docs/USER_MANUAL.md: 安装、配置详解、CLI命令、Web控制台、性能调优、故障排查
18 KiB
Aluer ServerGuard V5.0 -- 用户手册
目录
系统简介
Aluer ServerGuard 是一款 AI 驱动的 Minecraft PaperMC 服务器全方位安全防护系统。它提供两种运行模式:
- Plugin 内嵌模式(推荐):以 Paper 插件形式直接在 Minecraft 进程内运行,通过 WebSocket 与外部分析引擎通信。延迟 < 1ms,性能最高。
- External 外部监控模式:以独立进程运行,通过 RCON 和日志监控进行外部防护。
本系统包含 135+ 安全模块,覆盖反作弊、DDoS 防御、入侵检测、漏洞防护、聊天安全、主机安全、ML/AI 行为分析等领域。
功能特性概览
核心功能
| 功能 | 说明 |
|---|---|
| AI 行为分析 | 基于 Isolation Forest 的异常检测,自动识别异常玩家行为 |
| DeepSeek 集成 | 大模型自动分析安全告警,生成防御策略并自主执行 |
| 全量反作弊 | 100% 覆盖 Meteor Client 全部 50 个 hack 模块 |
| DDoS 防御 | 多层协同防御(SYN/UDP/ICMP/HTTP/Minecraft 专属) |
| 自愈系统 | TPS/CPU/内存异常自动恢复,自动白名单、自动备份 |
| Web 控制台 | Nebula Console 实时仪表盘,SSH 远程管理 |
| 邮件告警 | SMTP 邮件通知,支持速率限制和多收件人 |
| 备份管理 | 定时全量/增量备份,完整性校验(SHA-256) |
| 定时任务 | 每日重启/清 lag/周备份,全自动调度 |
| 聊天过滤 | 广告/钓鱼/洪水/敏感词检测,自动禁言/踢出 |
安装部署
环境要求
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Java JDK | 21 | 编译和运行 |
| PaperMC | 1.21.1 | Minecraft 服务端(Plugin 模式) |
| 操作系统 | Linux (推荐) / Windows | 64 位 |
| 内存 | 512 MB 可用 | 引擎占用 ~200MB |
| 磁盘 | 100 MB | 不含日志和备份 |
方式一:Plugin 内嵌模式(推荐)
步骤 1:编译项目
cd /opt/AluerIII
./apache-maven-3.9.6/bin/mvn package -DskipTests
步骤 2:安装插件
cp target/serverguard-4.0.0.jar /opt/minecraft/plugins/AluerServerGuard.jar
步骤 3:创建插件配置 /opt/minecraft/plugins/AluerServerGuard/config.yml:
server-url: ws://localhost:8080/agent
步骤 4:配置环境变量(可选但推荐)
export DEEPSEEK_API_KEY="sk-your-api-key"
export ALUER_ALERT_SMTP_USERNAME="your-email@qq.com"
export ALUER_ALERT_SMTP_PASSWORD="your-smtp-password"
export ALUER_ALERT_EMAIL_PRIMARY="admin@example.com"
export RCON_PASSWORD="your-rcon-password"
步骤 5:启动 ServerGuard 引擎
java -jar target/serverguard-4.0.0.jar
步骤 6:启动 Minecraft 服务器
cd /opt/minecraft
java -Xms4G -Xmx4G -jar paper-1.21.11.jar
验证安装成功:
查看 Minecraft 控制台输出,应该看到:
[AluerServerGuard] Aluer ServerGuard Agent v5.0.0
[AluerServerGuard] 轻量数据采集前端 - 连接外部 ServerGuard 引擎
[AluerServerGuard] WebSocket connected to ws://localhost:8080/agent
查看 ServerGuard 控制台输出,应该看到:
Agent connected: agent-xxxx
Agent handshake completed: agent-xxxx
方式二:External 外部监控模式
步骤 1:编译
./apache-maven-3.9.6/bin/mvn package -DskipTests
步骤 2:配置 application.yml
serverguard:
mode: external
minecraft:
working-dir: /opt/minecraft
rcon:
enabled: true
host: localhost
port: 25575
password: "${RCON_PASSWORD}"
process-name: paper-1.21.11.jar
步骤 3:在 Minecraft server.properties 中启用 RCON
enable-rcon=true
rcon.port=25575
rcon.password=your-rcon-password-here
步骤 4:启动 ServerGuard
java -jar target/serverguard-4.0.0.jar
配置说明
配置文件位置
- ServerGuard 引擎配置:
application.yml(与 JAR 同目录或 classpath) - Plugin 插件配置:
plugins/AluerServerGuard/config.yml - 环境变量:通过
${ENV_VAR:default}语法覆盖
配置节导航
application.yml 包含以下顶配配置节:
| 配置节 | 说明 | 关键参数 |
|---|---|---|
serverguard.mode |
运行模式 | plugin / external |
serverguard.minecraft |
Minecraft 进程管理 | working-dir, process-name, rcon |
serverguard.monitor |
监控阈值 | tps-threshold, cpu-threshold, memory-threshold |
serverguard.alert |
邮件告警 | smtp 配置, 收件人, 速率限制 |
serverguard.ai |
AI/ML + DeepSeek | 隔离森林, 预测, 自动执行 |
serverguard.security |
安全防御总配置 | 含 15 个子配置节 |
serverguard.dashboard |
Web 控制台 | SSH 网关, 刷新间隔 |
serverguard.backup |
自动备份 | 备份目录, 压缩, 保留数量 |
serverguard.schedule |
定时任务 | 每日重启, 周备份, 清 lag |
serverguard.chat-filter |
聊天过滤 | 广告/钓鱼/洪水/禁言 |
serverguard.afk |
AFK 管理 | 超时时间, AFK 区域, 自动踢出 |
快速配置示例
最小化生产配置:
serverguard:
mode: plugin
minecraft:
working-dir: /opt/minecraft
rcon:
password: "${RCON_PASSWORD}"
monitor:
tps-threshold: 15
cpu-threshold: 80.0
memory-threshold: 85.0
security:
enabled: true
super-evolution:
anti-kill-aura: true
anti-reach: true
anti-speed: true
anti-fly: true
anti-xray: true
anti-dupe: true
# ... 按需启用其他模块
启用全部反作弊模块:
在 super-evolution 节中将所有 anti-* 开关设置为 true。默认配置中全部模块已默认启用。
环境变量参考
| 变量名 | 说明 | 必需 |
|---|---|---|
SERVERGUARD_MODE |
运行模式(覆盖 mode 配置) | 否 |
DEEPSEEK_API_KEY |
DeepSeek API 密钥 | 建议(AI 功能) |
DEEPSEEK_BASE_URL |
DeepSeek API 地址 | 否 |
DEEPSEEK_MODEL |
模型名称 | 否 |
RCON_PASSWORD |
Minecraft RCON 密码 | 是(External 模式) |
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 | 否 |
ALUER_CLOUDFLARE_API_KEY |
Cloudflare API Key | 否 |
ALUER_CLOUDFLARE_EMAIL |
Cloudflare 账号邮箱 | 否 |
ALUER_WEBHOOK_DISCORD |
Discord Webhook URL | 否 |
ALUER_WEBHOOK_SLACK |
Slack Webhook URL | 否 |
命令参考
Spring Shell CLI 命令
ServerGuard 引擎启动后提供交互式命令行(Spring Shell),支持以下命令:
系统状态
| 命令 | 说明 |
|---|---|
status |
显示系统运行状态(运行时间、内存、活跃线程) |
tps |
显示当前 TPS 和 MSPT |
players |
列出在线玩家 |
metrics |
显示完整性能指标 |
安全管理
| 命令 | 说明 |
|---|---|
ban <player> |
封禁玩家 |
ban-ip <ip> |
封禁 IP |
kick <player> [reason] |
踢出玩家 |
unban <player> |
解封玩家 |
whitelist on|off |
启用/关闭白名单 |
whitelist add <player> |
添加白名单 |
whitelist remove <player> |
移除白名单 |
模块管理
| 命令 | 说明 |
|---|---|
modules list |
列出所有安全模块及状态 |
modules enable <name> |
启用指定模块 |
modules disable <name> |
禁用指定模块 |
modules status <name> |
查看模块详细状态 |
AI 控制
| 命令 | 说明 |
|---|---|
ai status |
查看 AI 引擎状态 |
ai analyze <player> |
对指定玩家进行 AI 行为分析 |
ai report |
生成当前安全态势报告 |
系统控制
| 命令 | 说明 |
|---|---|
save-all |
强制保存所有世界 |
clear-lag |
清理所有非玩家实体 |
backup now |
立即执行一次备份 |
restart [delay] |
计划重启服务器 |
reload-config |
重新加载配置文件 |
Minecraft 游戏内命令(Plugin 模式)
当使用 Plugin 模式时,具有 OP 权限的玩家可以在游戏内使用以下命令:
| 命令 | 权限 | 说明 |
|---|---|---|
/aluer status |
aluer.status | 显示防护状态 |
/aluer tps |
aluer.status | 显示 TPS 信息 |
/aluer alerts |
aluer.alerts | 查看最近告警 |
/aluer check <player> |
aluer.check | 对玩家执行安全检查 |
/aluer report <player> |
aluer.report | 举报可疑玩家 |
/aluer reload |
aluer.admin | 重新加载配置 |
Web 控制台使用
Nebula Console
ServerGuard 内置 Web 控制台(Nebula Console),提供实时仪表盘和远程管理功能。
访问地址:http://<host>:8080
主要功能:
- 实时仪表盘 — TPS、CPU、内存、在线玩家、告警数实时图表
- 玩家列表 — 在线玩家详情、威胁评分、行为日志
- 告警中心 — 历史告警查询、筛选、DeepSeek 分析结果
- 模块管理 — 查看/启用/禁用各安全模块
- SSH 网关 — 通过 Web 终端直接操作服务器
- 配置管理 — 在线修改配置(需重启生效)
SSH 网关配置
serverguard:
dashboard:
ssh-gateway:
enabled: true
session-timeout-minutes: 30
max-sessions: 6
command-timeout-seconds: 25
strict-host-key-checking: false
allow-private-key-paste: true
require-engine-handshake: true
handshake-ttl-seconds: 30
使用 SSH 网关:
- 打开 Nebula Console
- 点击 "SSH Terminal"
- 输入目标主机、端口、用户名
- 粘贴 SSH 私钥或输入密码
- 执行引擎握手验证
- 获得交互式 Shell
告警与通知
告警渠道
| 渠道 | 配置 | 说明 |
|---|---|---|
| 邮件 | serverguard.alert.email.* |
SMTP 邮件通知 |
| Discord | serverguard.webhook.discord-url |
Discord Webhook |
| Slack | serverguard.webhook.slack-url |
Slack Webhook |
| 控制台 | 默认启用 | Spring Shell/日志输出 |
| Web 控制台 | serverguard.dashboard.enabled |
Nebula Console 实时推送 |
告警级别
| 级别 | 说明 | 自动响应 |
|---|---|---|
| INFO | 信息性通知 | 无 |
| WARNING | 潜在威胁 | 记录日志 |
| CRITICAL | 严重威胁 | 自动防御(如配置) |
| EMERGENCY | 紧急情况 | 全自动响应 + 通知 |
邮件告警配置
serverguard:
alert:
enabled: true
email:
smtp-host: smtp.qq.com # QQ邮箱
smtp-port: 587
username: "your-email@qq.com"
password: "授权码(非密码)"
to:
- "admin@example.com"
- "backup-admin@example.com"
rate-limit:
per-type-seconds: 300 # 同类型告警 5 分钟内只发一次
max-emails-per-minute: 10 # 每分钟最多 10 封
QQ 邮箱 SMTP 配置步骤:
- 登录 QQ 邮箱
- 设置 -> 账户 -> POP3/IMAP/SMTP 服务
- 开启 SMTP 服务
- 获取授权码(不是 QQ 密码)
- 将授权码填入
password字段
故障排查
常见问题与解决方案
1. Plugin 无法连接到 ServerGuard
症状:Minecraft 控制台显示 "Failed to connect to ServerGuard"
排查步骤:
- 确认 ServerGuard 引擎已启动:
ps aux | grep serverguard - 确认端口 8080 未被占用:
netstat -tlnp | grep 8080 - 检查
config.yml中的server-url是否正确 - 检查防火墙是否阻止了 localhost 连接
- 查看 ServerGuard 日志:
tail -f /var/log/serverguard.log
2. DeepSeek API 连接失败
症状:日志显示 "DeepSeek API error"
排查步骤:
- 确认 API Key 正确设置:
echo $DEEPSEEK_API_KEY - 测试 API 连通性:
curl -H "Authorization: Bearer $DEEPSEEK_API_KEY" https://api.deepseek.com/v1/models - 检查 API 额度是否用尽
- 检查网络是否需要代理
3. TPS 持续偏低
症状:告警 "Low TPS" 频繁触发
排查步骤:
- 使用
/aluer tps查看实时 TPS - 检查实体数量:
/aluer status中的 Entity Count - 手动清理实体:
clear-lag命令 - 调整
entity-count-enforcer阈值 - 检查
redstone-update-limiter是否启用
4. 误判/误封
症状:正常玩家被标记为作弊
排查步骤:
- 使用
ai analyze <player>查看 AI 分析结果 - 检查该玩家触发了哪些检测模块
- 调整对应模块的检测阈值
- 将玩家加入白名单(临时方案)
- 查看 DeepSeek 告警分析以了解误判原因
5. 构建失败
症状:mvn compile 或 mvn test 失败
排查步骤:
- 确认 Java 版本:
java -version(需要 Java 21) - 清理构建缓存:
./apache-maven-3.9.6/bin/mvn clean - 检查 PaperMC API 仓库是否可访问
- 查看完整错误日志:
./apache-maven-3.9.6/bin/mvn compile -e
性能调优
TPS 优化
serverguard:
monitor:
tps-threshold: 15 # 根据服务器性能调整
security:
super-evolution:
# 在低性能服务器上可选择性禁用高开销模块
entity-count-enforcer: true # 自动清理过多实体
redstone-update-limiter: true # 限制红石更新
chunk-load-rate-limiter: true # 限制区块加载
内存优化
serverguard:
minecraft:
java-opts: -Xms4G -Xmx4G # 根据实际内存调整
monitor:
memory-threshold: 85.0 # 内存告警阈值
ai:
sliding-window-size: 100 # 减小窗口降低内存占用
AI 性能调优
serverguard:
ai:
use-isolation-forest: true # 隔离森林(轻量)
use-prediction: false # 在低配服务器上关闭预测
sliding-window-size: 50 # 减小窗口提高响应速度
anomaly-threshold: 0.8 # 提高阈值减少误报
security:
autonomy:
loop-interval-seconds: 60 # 增大间隔降低 CPU 占用
max-actions-per-hour: 5 # 限制自动操作频率
大型服务器推荐配置(100+ 玩家)
serverguard:
monitor:
tps-threshold: 18 # 更严格的 TPS 阈值
connection-threshold: 200 # 更高的连接阈值
security:
minecraft-defense:
login-burst-threshold: 30 # 允许更高的登录突发
bot-swarm-threshold: 30
ddos-defense:
syn-flood-threshold: 300
minecraft-status-threshold: 50
ai:
sliding-window-size: 200 # 更大的分析窗口
deepseek:
analysis-interval-seconds: 120 # 降低分析频率
self-healing:
tps-emergency-threshold: 15 # 更早触发自动恢复
小型服务器推荐配置(< 20 玩家)
serverguard:
monitor:
tps-threshold: 12
cpu-threshold: 90.0
ai:
use-prediction: false # 关闭预测功能节省资源
sliding-window-size: 50
security:
super-evolution:
# 低资源消耗模块全部启用
anti-kill-aura: true
anti-reach: true
anti-speed: true
anti-fly: true
anti-xray: true
# ... 按需开启
常见问题
Q1: Plugin 模式和 External 模式如何选择?
A: 如果服务器的 PaperMC 版本 >= 1.21.1 且你可以安装插件,强烈推荐 Plugin 模式。Plugin 模式延迟 < 1ms,能够获取完整的 Bukkit 事件数据,检测精度和实时性远超 External 模式。External 模式适用于你无法安装插件或仅需要基础监控的场景。
Q2: DeepSeek API 是必需的吗?
A: 不是必需的,但强烈推荐。没有 DeepSeek,AI 自主分析和自动防御功能将不可用,但所有 135+ 安全模块仍然正常工作。你可以在 ai.deepseek.enabled: false 关闭。
Q3: 如何只启用反作弊功能?
A: 在 application.yml 的 super-evolution 节中,将不需要的模块开关设置为 false,仅保留 anti-* 相关的反作弊开关。
Q4: 误封了玩家怎么办?
A:
- 使用
unban <player>命令立即解封 - 使用
ai analyze <player>查看 AI 分析结果 - 调整对应模块的检测阈值或暂时禁用
- 确保
self-healing.dry-run: true在测试阶段启用(干燥运行不会实际执行封锁)
Q5: 系统对服务器性能影响有多大?
A: 在 Plugin 模式下,插件部分内存占用约 50MB,外部引擎约 200MB。在 50 人服务器上,CPU 额外开销约 5-10%。External 模式下对 Minecraft 进程零影响,但检测能力有限。
Q6: 如何更新到最新版本?
A:
- 备份当前配置
cp application.yml application.yml.bak - 拉取最新代码
git pull - 重新编译
./apache-maven-3.9.6/bin/mvn package -DskipTests - 重新部署 JAR
- 对比新旧
application.yml合并新增配置项
Q7: 日志文件在哪里?
A:
- ServerGuard 引擎日志:
/var/log/serverguard.log(可在logging.file.name配置) - Minecraft 服务器日志:
/opt/minecraft/logs/latest.log - 告警报告:
./reports/(可在serverguard.report.dir配置)
Q8: 支持哪些 Minecraft 版本?
A: 当前基于 PaperMC API 1.21.1-R0.1-SNAPSHOT,理论上兼容 PaperMC 1.21.x 全系列。其他版本需要调整 API 依赖。
技术支持
- 项目文档:
docs/目录 - 开发规范:
CLAUDE.md - 项目结构:
README.md - API 协议:见
AgentMessage.java源码注释