跳到主要内容

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
Java21Paper 1.21.11 与 Velocity 均需要 Java 21
内存(待补充)Velocity 与每个 Paper 子服分别分配
防火墙开放 TCP 25565、UDP 19132子服端口不要对外开放

端口规划​

服务协议端口是否对外配置位置
VelocityTCP25565是velocity.toml 的 bind
GeyserUDP19132是Geyser 配置文件(待补充)
Paper 子服 1TCP(待补充)否server.properties 的 server-port
Paper 子服 2TCP(待补充)否server.properties 的 server-port

资源准备​

文件来源放置位置
paper-1.21.11-<build>.jarPaper 下载页每个子服根目录
velocity-<version>.jarVelocity 下载页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​

  1. 把 Geyser-Velocity.jar 放入 velocity/plugins/。
  2. 启动一次 Velocity,生成 Geyser 配置文件。
  3. 修改配置。

(待补充:配置文件路径)

# 待补充:布吉岛版 Geyser 的关键配置项
# 例如基岩版监听端口、认证方式(floodgate)、网易相关配置
提示

(待补充:Geyser 配置要点)

安装 Floodgate​

Velocity 端​

  1. 把 floodgate-velocity.jar 放入 velocity/plugins/。
  2. 启动一次 Velocity,生成 plugins/floodgate/config.yml 和 key.pem。
  3. (待补充:需要修改的配置项,例如 send-floodgate-data)

Paper 端​

  1. 把 floodgate-spigot.jar 放入每个子服的 plugins/。
  2. 启动一次子服,生成 plugins/floodgate/ 目录。
  3. 把 Velocity 端的 plugins/floodgate/key.pem 复制到每个子服的 plugins/floodgate/,覆盖原文件。
危险

所有服务器上的 key.pem 必须是同一份。key.pem 用于加密基岩版玩家的数据,请勿泄露。

启动与验证​

启动顺序​

  1. 启动所有 Paper 子服。
  2. 启动 Velocity。

验证​

检查项预期结果
Velocity 控制台(待补充:Geyser、Floodgate 加载成功的日志)
端游连接 服务器IP:25565进入 lobby
手游连接 服务器IP:19132(待补充)
跨服 /server survival正常切换

常见问题​

1、(待补充:问题标题)​

(待补充:原因与解决方法)

2、(待补充:问题标题)​

(待补充:原因与解决方法)