对外开服安全清单


1. 基础环境🔗

  • 官方服务端 JAR:只从 PaperMC / minecraft.net 下载,校验 SHA-256 是否与官网一致。
  • 接受 EULA:阅读并同意 eula.txt,否则服务端无法启动。
  • 正确 Java 版本:1.20.5–1.20.x 使用 Java 21;1.18–1.20 用 Java 17;更老版本用 Java 8;Paper/Folia 26.x 按官方要求使用 Java 25。
  • 专用低权限用户运行:不要用 root 长时间运行 Java,创建 minecraft 用户;程序、世界、备份目录分离,防止更新/误删相互覆盖。

2. 网络与暴露面🔗

  • online-mode=true(默认)。这是最基本的认证防线。
  • 离线模式(cracked)的特殊风险:若必须 online-mode=false(如配合正版代理),要知道——
    • 离线服允许任意客户端冒用任意玩家名/管理员名
    • 离线 UUID 由用户名派生,攻击者可伪造 UUID 冒充管理员,白名单可被 whitelist.json 里的用户名直接绕过
    • 必须安装登录插件(AuthMe / LoginSecurity)做二次密码认证,并把后端服务器绑定 127.0.0.1、用防火墙隔离代理端口之外的所有入口。
  • 防火墙只开必要端口:默认 25565(TCP);SSH、面板等管理端口不要暴露公网或用白名单限制。
  • RCON 绝不暴露公网:RCON 无加密,暴露即爆破;要么只用本机回环,要么强随机密码 + IP 白名单。
  • DDoS 防护:对外开服建议用 TCPShield / 反向代理 / 高防节点,隐藏真实 IP。
  • 域名 + SRV 记录play.example.com 配 A 记录,_minecraft._tcp 配 SRV 记录可省去端口,也减少端口扫描。

3. 账号与权限🔗

  • OP 最小化:用 LuckPerms 替代原生 OP,角色分级(访客→成员→建造→管理→服主),每个角色只授最小权限。

  • 高危节点锁定:以下节点不授予任何组:

    *
    luckperms.*
    minecraft.command.op
    bukkit.command.op
    essentials.stop
    essentials.reload
  • 控制台/面板/数据库强密码 + 2FA:billing、控制台、文件访问使用不同账号,避免单点沦陷。

  • 备份脚本凭据不入库:数据库/对象存储凭据使用环境变量或独立密钥,别写死在可执行文件里。


4. 游戏内防护与反作弊🔗

  • 反作弊插件:安装成熟反作弊(Grim / Vulcan 等),并定期更新。
  • 已知漏洞加固(参考 minecraft-exploits-and-how-to-fix-them ):
    • 书与笔崩溃:paper-global.ymlitem-validation.page-max: 1024
    • 卡服机(盔甲架/碰撞/投射物):限制 max-entity-collisions,关闭 armor stand 碰撞查询
    • 32k 物品、末地水晶类利用:用插件做非法物品清理
  • 防 X-Ray:开启 Paper 内置 anti-xray(paper-world-defaults.ymlanti-xray.enabled: true, engine-mode: 2)。
  • 登录爆破防护:登录插件开启失败限速;anti-bot 插件限制并发进服。
  • 聊天反垃圾/反广告:加装聊天过滤或反广告插件,进服前公示规则。
  • 关闭命令方块enable-command-block=false,公共服务器不需要命令方块。

5. 备份与容灾🔗

  • 自动化定时备份:不要依赖手动。cron 定时任务 + save-all → 备份 world/ 单目录(Paper 26.1+;旧版仍按 world/ + world_nether/ + world_the_end/ 备份)→ 校验压缩包完整性。
  • 异机/异地存储:本地每 6 小时一份 + 每日推送到 S3 / Backblaze / 另一台机器。
  • 测试恢复演练:定期把备份恢复到独立目录,确认能正常加载。“不能恢复的备份只是安慰品”。
  • 更新前备份:任何插件/服务端/世界格式升级前先完整备份,版本升级可能永久改写世界数据。
  • 区分 lag 与崩溃max-tick-time(server.properties)与 Paper 自身的 watchdog 会在单 tick 超时后强制关服;高负载场景按需调大或 -1,但优先排查卡顿根因,而不是关掉兜底。

6. 上线 Checklist(最终勾选)🔗

类别检查项
环境官方 JAR + 校验;正确 Java;专用低权限用户;目录分离
网络online-mode 已确认;防火墙仅放必要端口;RCON 未暴露;有 DDoS 防护
权限OP 列表干净;LuckPerms 角色分级;高危节点未授任何组
反作弊反作弊已装并更新;已知漏洞项已加固;anti-xray 开启
备份定时备份生效;异地有副本;恢复演练通过
验收服务端干净启动无报错;外网可连接;规则已公示;出生点已保护

参考链接🔗