Administrator
Published on 2024-10-24 / 1,370 Visits
0
1

配置 Velocity 群组服务器

引言

Velocity 是比 BungeeCord 更新和更先进的 Minecraft 代理服务器。它由 PaperMC 开发,以 GPLv3 协议授权给用户使用。现在,许多 Minecraft 群组服务器已经从 BungeeCord 转移至 Velocity,也有很多新的服务器一开始就选择了 Velocity。那么,如何为一个群组服配置好 Velocity 呢?

要求

  • 至少一台 Minecraft 后端服务器。

  • 良好的网络。

  • 优秀的耐心。

开始

首先,作为一个群组服务器,您至少需要拥有一个后端服务器以供玩家连接。其次,您最好选择 Paper 或它的分支,它们通常内建对于 Velocity 的支持,为什么不选择更简单的方式呢?以及,如果您不知道如何搭建后端服务器,我们推荐您看看笨蛋开服教程,其中也有 Velocity 的教程。

您需要知道,Velocity 至少有四种转发模式(以下是翻译过的部分配置文件):

# 我们应该将玩家的 IP 地址和其它数据转发到后端服务器吗?
# 可用的选项:
# - "none":        不会进行转发。所有玩家的 IP 都来自代理,
#                  并且都会具有离线模式的 UUID。
# - "legacy":      使用 BungeeCord 兼容模式转发玩家的 IP 和 UUID。
#                  如果您正在运行 1.12.2 或更低版本的后端服务器,请使用这个模式。
# - "bungeeguard": 使用 BungeeGuard 插件所支持的协议转发玩家的 IP 和 UUID,
#                  如果您正在运行 1.12.2 或更低版本的后端服务器,
#                  并且无法实现网络级防火墙(在共享主机上),请使用这个模式。
# - "modern":      使用 Velocity 的原生转发功能在登录过程中转发玩家 IP 和 UUID。
#                  仅适用于 Minecraft 1.13 或更高版本。
player-info-forwarding-mode = "NONE"

由此可见, modern 模式是您应该优先考虑的方案,为了保证后端服务器的安全,您至少也应该选择 BungeeGuard 方案。以下向您介绍各个服务端的配置方法。


Paper

若您将 Velocity 上的 player-info-forwarding-mode 设置成了 modern ,您也必须在 Paper 中的 config/paper-global.yml 里,将 proxies 项下的 velocity 项的 enable 设置为 true,不仅如此,您还需要将 Velocity 的 forwarding.secret 文件中的内容复制到 velocity 项下的 secret 项中(该文件内容也可以自定义,确保一致即可),以便让 Velocity 和 Paper 能够正确连接。注意,一旦您启用了 Paper 的代理相关功能,您就必须通过代理连接了。Folia 也可以使用相同的方法来配置。

Forge / NeoForge

安装 Proxy Compatible Forge,该模组为 Forge 服务器提供 Velocity 兼容。要为 Forge(和 NeoForge)服务器配置 Velocity,请在 server.properties 中配置 online-mode=false,然后在 Forge 服务端根目录下找到 config 文件夹,找到 pcf-common.toml,将 forwardingSecret 项配置为您 Velocity 的 secret,文件位置请看上文所述。您至少需要启动一次服务器并加载一次模组后才能找到这个配置文件,在配置完成后您还需再重启一次以确保生效。

Fabric

安装 FabricProxy-Lite。随后,在 config/FabricProxy-Lite.toml 中,配置 secret 与 Velocity 的 secret 相同即可。重新启动您的服务器以生效。该模组可能支持 Quilt,但不能确定。


仅介绍 modern 模式的配置方法。

插件

Velocity 群组网络可能需要一些插件来优化玩家的体验。

ViaVersion

如果您正在后端服务器使用 ViaVersion 系列插件,请确保它已经在所有后端服务器上安装,或者直接把它们安装到 Velocity 上。如果群组服务器中有需要模组客户端才能加入的服务器,请不要安装 ViaVersion 在这些服务器上,在其它后端服务器上安装即可。

Geyser

Geyser 是一个代理,它将基岩版的 UDP 连接传递的数据包翻译成 Java 版服务器能够理解的 TCP 连接及 Java 版的数据包。这样,基岩版的玩家就可以和您服务器里的其他玩家一起游戏了。要在 Velocity 网络中安装 Geyser,只需将它安装在 Velocity 上即可,请不要在后端服务器上安装它,但您需要在 Velocity 和后端服务器上同时安装 floodgate。在 Geyser 官方网站上下载这两个插件!

AuthMe

您最好使用 MySQL 或 MariaDB 等外置数据库连接子服务器上的 AuthMe 以存储玩家的密码和其它登录数据。这么做不仅可以增强性能,而且整个群组服务器只需要使用这一个数据库就够了,您不需要很多 SQLite 数据库来增加您的维护成本。

除开在后端服务器上安装 AuthMeReloaded 外,您还需要在 Velocity 上安装 AuthMeVelocity,它能够起到类似 AuthMeBungee 的作用。如果您的后端服务器中有 Folia 服务器,请试试 AuthMeReReloaded,这是一个 AuthMeReloaded 的分支,支持 Folia。实际上,就算您不使用 Folia 作为后端,这也是一个很不错的选择。在安装完这些插件后,请将所有后端服务器上的 AuthMe 配置为使用同一个 MySQL 服务器。

这样,玩家在切换服务器时不再需要反复登录验证了。

Velocitab

这是一个 TAB 插件,它还提供了自定义服务器链接的功能。请参见 https://modrinth.com/plugin/velocitab 更进一步了解。

VCustomBrand

自定义您玩家看到的服务器类型(通常是 F3 调试界面的 "vanilla" server 一样的字符串)。这只是一个小细节,不过如果您想要自定义它,试试 https://modrinth.com/plugin/vcustombrand

完成

通过配置以上的项目,相信您现在已经拥有了一个不错的 Velocity 群组网络服务器。由于有些仓促,这篇文章并不完善,但应该有些参考价值。

参考资料

  • https://nitwikit.yizhan.wiki/Java/velocity/

  • https://geysermc.org/wiki/geyser/

  • https://docs.papermc.io/velocity/player-information-forwarding

最后

感谢您可以看到这里。


Comment