如何为 Minecraft 服务器网络搭建 Velocity 代理
本页内容
Minecraft 服务器网络就是一个地址背后的多台服务器:玩家连接 play.yourserver.com,进入大厅,然后切换到生存、小游戏或创造服务器,全程无需输入其他 IP。让这一切成为可能的前端组件就是代理,而 Velocity 正是 PaperMC 目前开发并推荐的代理。
本指南将搭建 Velocity,并在其后接入 Paper 服务器,使用 modern forwarding——通过代理传递玩家名称和皮肤的安全方式。
为什么要搭建 Minecraft 服务器网络,以及 Velocity 如何工作
服务器网络让你可以在同一个地址下并行运行不同的游戏模式,为每个模式配置独立的插件和资源,并且重启其中一台服务器时不会把其他服务器上的玩家踢下线。
玩家始终只连接代理。代理通过 Mojang 完成登录验证,然后把玩家转交给某一台后端服务器——也就是存放世界的普通 Paper 服务器。当玩家输入 /server survival 时,Velocity 会把他转移到另一台后端,而不会断开连接。
- 代理非常轻量:它不承载任何世界,所需内存远少于游戏服务器。
- 后端服务器以离线模式运行,依赖代理告诉它们每位玩家的身份。你需要保护的正是这种信任。
- Velocity 4 是当前版本,需要 Java 25,支持从 1.7.2 到最新版本的 Minecraft。
安装 Velocity
- 从 papermc.io 下载 Velocity 到一个空文件夹。
- 使用 Java 25 启动一次:
java -Xms512M -Xmx512M -jar velocity.jar
首次启动会生成 velocity.toml 和一个包含随机密钥的 forwarding.secret 文件。用 end 停止代理,然后打开配置文件。
配置 velocity.toml
搭建第一个网络时需要关注的设置:
bind = "0.0.0.0:25565" motd = "<#09add3>My Network" online-mode = true player-info-forwarding-mode = "modern" forwarding-secret-file = "forwarding.secret" [servers] lobby = "203.0.113.10:25566" survival = "203.0.113.11:25567" try = ["lobby"]
bind——玩家连接的地址和端口。player-info-forwarding-mode——设为modern。默认值是none,会给每位玩家分配离线 UUID;legacy是旧的 BungeeCord 格式,只适用于 1.12 及更早版本的服务器。[servers]——每台后端的名称和地址。玩家使用/server时输入的就是这个名称。try——玩家登录时进入的服务器,以及被某台后端踢出时转往的服务器。
[forced-hosts] 下的 Forced hosts 可以根据玩家输入的地址把他们送到指定后端——例如 survival.yourserver.com 直接进入生存服。
为 modern forwarding 配置 Paper 后端
在每台 Paper 后端上做三处修改,然后重启:
- server.properties:
online-mode=false——现在由代理负责 Mojang 登录验证。 - spigot.yml:
settings.bungeecord: false。 - config/paper-global.yml:
proxies:
velocity:
enabled: true
online-mode: true
secret: 'paste the contents of forwarding.secret here'
这里的 online-mode 必须与 velocity.toml 一致,secret 必须与代理的 forwarding.secret 中的文本完全相同。Modern forwarding 适用于 Minecraft 1.13 及更新版本;Spigot 服务器不支持它,所以请使用 Paper 或 Paper 的分支。
其他后端:Fabric 服务器使用 FabricProxy-Lite 模组并配置相同的密钥,1.20.2 以上的 Forge 服务器需要 ProxyCompatibleForge。BungeeCord 插件无法在 Velocity 上运行。
一个网络就是一个代理加几台 Paper 服务器。HytHost 的 Minecraft 服务器可在 Version 选项卡中切换为 Velocity 或 Paper——€2.59/月起。
查看 Minecraft 套餐保护好后端服务器
离线模式的服务器会接受任何玩家名称。只有当玩家无法绕过代理直接访问后端时,这才是安全的。
- Modern forwarding 是你的主要防护。启用了 Velocity forwarding 的 Paper 后端会拒绝任何直接连接的人:没有来自代理的签名数据,登录会被拒绝,并显示 This server requires you to connect with Velocity。
- 妥善保管密钥。任何拿到
forwarding.secret的人都可以冒充你的代理。切勿公开它;一旦泄露,请在所有地方更换。 - 尽可能为后端配置防火墙。Velocity 官方文档明确指出,modern forwarding 不能替代防火墙。如果代理和后端在同一台机器上,请把每台后端绑定到
127.0.0.1,并以127.0.0.1:port的形式列出。 - 切勿让后端在关闭 forwarding 的情况下以离线模式运行。那样任何人都能以任何身份加入,包括以管理员身份。
在 HytHost 上运行 Velocity 网络
网络中的每个部分都是一台独立的服务器:一台用作代理,每个后端各一台。代理所需内存很少,最小的套餐就够用;后端则根据其世界和玩家数量在 Minecraft 主机 页面选择规格。
- 把一台服务器变成代理。在它的 Version 选项卡中选择 Velocity。面板会自动安装,并把
bind设置为该服务器自己的端口。请在 Startup 选项卡中确认已选择 Java 25。 - 自行设置 modern forwarding。面板会写入一个基础的
velocity.toml,其中服务器列表为空。在文件管理器中设置player-info-forwarding-mode = "modern",并在[servers]下添加你的后端,填写每台后端在其面板中显示的地址和端口。 - 按照上面 Paper 一节的说明配置每台后端,使用代理的
forwarding.secret。 - 将域名指向代理,只把这个地址提供给玩家。
每台后端都有自己的公网地址,因此阻止直接加入靠的正是 modern forwarding——不要让后端在关闭 forwarding 的情况下以离线模式运行。若要在整个网络中统一权限,请在每台服务器上运行 LuckPerms,并共用一个 MySQL 数据库;每个套餐都包含数据库。
一个代理,加上网络所需的任意数量 Paper 服务器,自动备份——HytHost Minecraft 主机 €2.59/月起。
查看 Minecraft 套餐常见问题解答
Velocity 是 PaperMC 团队开发的代理。玩家连接到它,它再在同一地址背后的多台 Minecraft 服务器之间(大厅、生存、小游戏)转移玩家,而不会断开连接。
新建网络请选 Velocity:它由 PaperMC 积极开发,并提供 modern forwarding,一种向后端传递玩家数据的签名方式。BungeeCord 插件无法在 Velocity 上运行,所以如果你在迁移旧网络,请先检查插件列表。
Modern,适用于任何使用 Paper 或 Fabric 后端、版本为 Minecraft 1.13 或更新的网络。Legacy 仅适用于 1.12 及更早版本的服务器,而 none 会给玩家分配离线 UUID。
他们试图直接加入某台后端,而不是通过代理。这说明 modern forwarding 正在按预期工作。只把代理地址提供给玩家即可。
当前版本 Velocity 4 需要 Java 25。较早的 Velocity 3 版本运行在 Java 21 上。
搭建你的 Minecraft 服务器网络
在 Version 选项卡中点几下即可使用 Velocity 和 Paper,每个套餐都含自动备份和 MySQL 数据库——HytHost Minecraft 主机 €2.59/月起。
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours这篇指南对你有帮助吗?