Liam造物集

CHAPTER 01 · 公开阅读

认识群组服与选择学习路线

Liam

本系列整理自 LiamCraft 教程第二版(2026-08-28)。配置、版本与项目结构按原教程快照保留,实际搭建前请核对上游文档。

教程封面

这是一套面向第一次开服者的实战教程,也是一份对当前 LiamCraft 项目的结构说明。第二版增加了白底演示图、思维导图、完整三后端搭建实验、配置逐项说明、数据库实战和上线变更流程。它不包含世界存档、玩家数据、商业插件 JAR、密码或密钥;读者会从官方来源下载程序,再按模板自行配置。

你最终会得到什么

  • 一个可以先在本机验证的 Paper 单服。
  • 一个只有 Velocity 对玩家开放、后端服不直接暴露的群组服。
  • Lobby、小游戏、生存服等彼此隔离但能切换的结构。
  • Windows 启动脚本、Linux systemd 服务、备份和排障方法。
  • 路由器端口转发、第三方隧道、自建阿里云 FRP 三种公网方案。
  • 正版验证路线,以及确有需要时的离线账号认证路线。

认识单服与群组服

单服

玩家直接连接 Paper。Paper 同时负责网络接入、世界、实体、插件和玩家数据。

单服拓扑

优点是简单;缺点是不同玩法互相影响,崩溃和维护都会影响全服。

群组服

Velocity 是入口代理,每个 Paper 是一个后端。代理不运行世界,Paper 后端也不应该让公网玩家直接连接。

群组服拓扑

各组件职责

组件 做什么 不做什么
Velocity 接收玩家、验证身份、转发 IP/UUID、切服 不加载世界,不运行 Bukkit 插件
Lobby Paper 默认入口、菜单、NPC、引导 不应保存重要生存进度
游戏 Paper 运行 BedWars/UHC/Arena 等玩法 不直接暴露公网
生存 Paper 保存长期世界和玩家进度 不与小游戏背包混用
MySQL/MariaDB 共享权限、封禁、统计等结构化数据 不替代世界文件备份

请求实际怎么走

  1. 玩家连接 play.example.com:25565。
  2. DNS 把域名解析到路由器、隧道服务或云主机。
  3. TCP 流量抵达 Velocity。
  4. Velocity 完成正版验证,或进入额外的离线认证流程。
  5. Velocity 根据 try 列表把玩家送进 Lobby。
  6. 玩家通过 /server bedwars 或菜单触发切服。
  7. Velocity 使用 forwarding.secret 向后端证明自己并转发玩家信息。

端口规则

同一 IP 上每个进程必须占用不同端口。教程示例:

服务 监听地址 端口 对公网开放?
Velocity 0.0.0.0 25565 是
Lobby 127.0.0.1 25566 否
Survival 127.0.0.1 25567 否
Minigame 127.0.0.1 25568 否
MySQL 127.0.0.1 或管理内网 3306 否

0.0.0.0 表示所有网卡,127.0.0.1 只允许本机。多机部署时后端监听内网 IP,并通过防火墙只允许代理 IP。

数据是否会自动跨服

不会。不同 Paper 的背包、经验、末影箱、位置、世界和大多数插件数据默认独立。LuckPerms 共库只能共享权限,不能自动共享背包。需要共享什么就为对应数据选择明确插件或数据库设计;小游戏和生存服通常应故意隔离。


先选路线,再动手

三种常见目标

A. 朋友单服

一台 Paper、一个世界、少量插件。最低复杂度,适合 2–20 人。完成 01–03、07、09,并选择一种公网方式即可。

B. 同机群组服

一台机器同时运行 Velocity 和多个 Paper。玩家只连接 25565,代理把人送到 Lobby、小游戏或生存服。适合先验证玩法,也是本项目在 Windows 上的本地结构。

C. 多机群组服

Velocity 与后端分布在不同主机,常配合 MySQL、内网 VPN、防火墙和独立备份。管理成本最高,稳定后再迁移。

推荐的实施顺序

开服学习路线思维导图

本机 Paper 单服
  ↓
加入第二个 Paper,确认端口互不冲突
  ↓
加入 Velocity,改用 Modern Forwarding
  ↓
只允许本机或代理 IP 访问后端
  ↓
安装基础插件并做备份恢复
  ↓
选择公网方案,小范围白名单测试
  ↓
域名、监控、自动备份与长期维护

每一步都先验证再继续。一次性安装二十个插件、同时开公网、同时改认证,出错时几乎无法定位。

开工前决策表

问题 推荐起点 影响
只让正版 Java 版玩家加入? 是 代理 online-mode=true,安全和 UUID 最简单
必须兼容离线账号? 否 若必须兼容,需要代理层认证、密码保护和额外测试
所有服务在同一机器? 先是 后端可绑定 127.0.0.1,安全最直观
家宽有公网 IPv4 且能改路由器? 检查后决定 有则直转发;没有则隧道或云 FRP
是否用商业插件? 尽量先用开源/免费方案 商业 JAR 不得随便转发,更新和授权要单独管理
预计同时在线多少人? 用真实压测决定 决定 CPU、内存、带宽和地图预生成策略

你需要准备

  • 一台 64 位 Windows 或 Linux 主机,SSD 强烈推荐。
  • 稳定网络;开服机器不要依赖休眠。
  • Java JDK/JRE,版本按 Paper 版本匹配。
  • Minecraft Java 版客户端和至少两个不同账号/测试者。
  • 文本编辑器,推荐 VS Code;不要用会破坏 UTF-8 的旧编辑器。
  • 备份目标盘或对象存储,不能只备份在服务器同一块硬盘。

不在这个压缩包里的内容

  • Mojang/Microsoft 游戏客户端。
  • Paper、Velocity 和插件 JAR。
  • 当前项目的世界、玩家数据库与自研插件成品。
  • 任何授权不明或付费插件。
  • 真实 IP、口令、数据库密码、认证数据和 forwarding secret。