Paper + Velocity + Geyser + Floodgate 部署
目的
- 本章节介绍如何使用 Paper 1.21.11 + Velocity + Geyser + Floodgate 搭建一套双端互通的服务器。
- 阅读本章前,请先完成上一章《项目构建》,准备好 Geyser 和 Floodgate 的插件 jar。
架构总览
- Velocity:群组服代理,端游和手游玩家都从这里进入。
- Geyser:以插件形式运行在 Velocity 上,把基岩版协议转换为 Java 版协议。
- Floodgate:同时安装在 Velocity 和每个 Paper 子服上,让基岩版玩家不需要 Java 版账号也能进入在线模式的服务器。
- Paper:实际运行游戏内容的子服,只允许 Velocity 连接,不直接对外开放。
(待补充:架构说明,例如为什么 Geyser 装在 Velocity 上而不是独立运行)
环境准备
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | (待补充) | Linux / Windows |
| Java | 21 | Paper 1.21.11 与 Velocity 均需要 Java 21 |
| 内存 | (待补充) | Velocity 与每个 Paper 子服分别分配 |
| 防火墙 | 开放 TCP 25565、UDP 19132 | 子服端口不要对外开放 |
端口规划
| 服务 | 协议 | 端口 | 是否对外 | 配置位置 |
|---|---|---|---|---|
| Velocity | TCP | 25565 | 是 | velocity.toml 的 bind |
| Geyser | UDP | 19132 | 是 | Geyser 配置文件(待补充) |
| Paper 子服 1 | TCP | (待补充) | 否 | server.properties 的 server-port |
| Paper 子服 2 | TCP | (待补充) | 否 | server.properties 的 server-port |
资源准备
| 文件 | 来源 | 放置位置 |
|---|---|---|
paper-1.21.11-<build>.jar | Paper 下载页 | 每个子服根目录 |
velocity-<version>.jar | Velocity 下载页 | Velocity 根目录 |
Geyser-Velocity.jar | 上一章构建产物 | velocity/plugins/ |
floodgate-velocity.jar | 上一章构建产物 | velocity/plugins/ |
floodgate-spigot.jar | 上一章构建产物 | 每个子服的 plugins/ |
目录结构
server/
├── velocity/
│ ├── velocity-<version>.jar
│ ├── velocity.toml
│ ├── forwarding.secret
│ └── plugins/
│ ├── Geyser-Velocity.jar
│ └── floodgate-velocity.jar
├── lobby/
│ ├── paper-1.21.11-<build>.jar
│ ├── server.properties
│ ├── config/paper-global.yml
│ └── plugins/
│ └── floodgate-spigot.jar
└── survival/
└── (与 lobby 相同)
部署 Paper 子服
首次启动
首次启动会生成配置文件,并要求同意 EULA。
# Linux / macOS
java -Xms2G -Xmx2G -jar paper-1.21.11-<build>.jar --nogui
# Windows(PowerShell / CMD)
java -Xms2G -Xmx2G -jar paper-1.21.11-<build>.jar --nogui
启动后关闭服务器,把 eula.txt 中的 eula=false 改为 eula=true。
de
(待补充:启动脚本、内存参数建议)
修改 server.properties
# 由 Velocity 负责正版验证,子服必须关闭
online-mode=false
# 每个子服使用不同端口
server-port=30001
修改 paper-global.yml
打开 config/paper-global.yml,启用 Velocity 转发:
proxies:
velocity:
enabled: true
online-mode: true
secret: '这里填写 Velocity 目录下 forwarding.secret 的内容'
注意
secret 必须和 Velocity 的 forwarding.secret 完全一致,否则玩家会无法进入子服。
部署 Velocity
首次启动
# Linux / macOS
java -Xms1G -Xmx1G -jar velocity-<version>.jar
# Windows(PowerShell / CMD)
java -Xms1G -Xmx1G -jar velocity-<version>.jar
首次启动后会生成 velocity.toml 和 forwarding.secret,关闭后进行配置。
修改 velocity.toml
bind = "0.0.0.0:25565"
online-mode = true
player-info-forwarding-mode = "modern"
forwarding-secret-file = "forwarding.secret"
[servers]
lobby = "127.0.0.1:30001"
survival = "127.0.0.1:30002"
try = ["lobby"]
(待补充:[forced-hosts] 等其他配置项说明)
安装 Geyser
- 把
Geyser-Velocity.jar放入velocity/plugins/。 - 启动一次 Velocity,生成 Geyser 配置文件。
- 修改配置。
(待补充:配置文件路径)
# 待补充:布吉岛版 Geyser 的关键配置项
# 例如基岩版监听端口、认证方式(floodgate)、网易相关配置
提示
(待补充:Geyser 配置要点)
安装 Floodgate
Velocity 端
- 把
floodgate-velocity.jar放入velocity/plugins/。 - 启动一次 Velocity,生成
plugins/floodgate/config.yml和key.pem。 - (待补充:需要修改的配置项,例如
send-floodgate-data)
Paper 端
- 把
floodgate-spigot.jar放入每个子服的plugins/。 - 启动一次子服,生成
plugins/floodgate/目录。 - 把 Velocity 端的
plugins/floodgate/key.pem复制到每个子服的plugins/floodgate/,覆盖原文件。
危险
所有服务器上的 key.pem 必须是同一份。key.pem 用于加密基岩版玩家的数据,请勿泄露。
启动与验证
启动顺序
- 启动所有 Paper 子服。
- 启动 Velocity。
验证
| 检查项 | 预期结果 |
|---|---|
| Velocity 控制台 | (待补充:Geyser、Floodgate 加载成功的日志) |
端游连接 服务器IP:25565 | 进入 lobby |
手游连接 服务器IP:19132 | (待补充) |
跨服 /server survival | 正常切换 |
常见问题
1、(待补充:问题标题)
(待补充:原因与解决方法)
2、(待补充:问题标题)
(待补充:原因与解决方法)