🔀
VPS

当玩家社区不断壮大时,单台 Minecraft 服务器往往就不够用了。大多数服主最终都想把游戏模式拆分成多个部分,例如大厅(lobby)、生存服(survival)和小游戏服(minigames),同时让玩家在它们之间平滑切换,而无需断开重连。标准做法是在多台后端服务器前面放置一个代理(proxy)。本文将带你搭建现代代理 Velocity,并诚实地把它与 BungeeCord 和 Waterfall 做对比。

Minecraft 网络代理如何工作

代理是一个程序,它在 25565 端口接受玩家连接,并把每个连接路由到某台后端 Paper/Spigot 服务器。玩家只看到一个 IP 或域名,但幕后可能有多台按职责划分的服务器。当玩家执行命令或踩上传送门时,代理会立即将其转移到另一台服务器,而不会断开连接。

主要优势在于:你可以无限扩展网络、隔离各游戏模式的负载,并且重启某一台子服务器时不会影响其他服务器上的玩家。

什么是 Velocity,为什么推荐它

Velocity 是由 PaperMC 团队打造的高性能代理。它以安全为设计目标,处理大量玩家的能力远胜于旧代理。它采用现代转发(modern forwarding)系统,在代理与后端之间对玩家信息进行加密,使冒充身份变得困难得多。Velocity 需要 Java 17 或更高版本(推荐 Java 21),并拥有独立于 Bukkit/Spigot 插件的自有插件生态。

作为 BungeeCord 的分支,Waterfall 已被 PaperMC 团队正式弃用并停止支持(EOL),团队现在建议所有人迁移到 Velocity。如果你要在 2026 年搭建新网络,应从一开始就选择 Velocity。

Velocity、BungeeCord 与 Waterfall 对比

特性VelocityBungeeCordWaterfall
开发状态活跃维护中(旧)已弃用(EOL)
性能最高中等中等
转发安全性现代(加密)旧式部分旧式/现代
最低 Java 版本17(推荐 21)8+11+
插件系统Velocity 专用Bungee APIBungee API
2026 年是否推荐仅限旧系统

Velocity 基础安装

从 PaperMC 官网下载 Velocity 的 jar 文件,先运行一次让它生成配置文件。

  1. velocity.jar 放入一个专用文件夹。
  2. 使用命令 java -Xms1G -Xmx1G -jar velocity.jar 运行它。
  3. 它会自动生成 velocity.toml 和一个 forwarding.secret 文件。
  4. 停止程序,然后编辑 velocity.toml

velocity.toml 示例

bind = "0.0.0.0:25565"
motd = "&bASIA Network"
show-max-players = 500
online-mode = true
player-info-forwarding-mode = "modern"
forwarding-secret-file = "forwarding.secret"

[servers]
lobby = "127.0.0.1:30066"
survival = "127.0.0.1:30067"
minigames = "127.0.0.1:30068"

try = [
    "lobby"
]

[forced-hosts]
"play.asiagb-example.com" = ["lobby"]

player-info-forwarding-mode = "modern" 是安全的核心:它强制后端在接受玩家数据前先校验密钥。[servers] 列表定义了所有子服务器,而 try 则是代理在玩家首次连接时尝试放置玩家的顺序。

配置后端服务器(Paper)

每台后端都必须关闭 online-mode,因为现在由代理负责验证身份。但如果不加保护地直接关闭会非常危险,所以你还必须在 Paper 上启用 Velocity 转发。

在每台后端的 server.properties 中:

# server.properties (backend)
online-mode=false
server-port=30066
server-ip=127.0.0.1

然后在 config/paper-global.yml 中启用 Velocity 转发:

# paper-global.yml
proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: '在此粘贴与 Velocity 的 forwarding.secret 文件相同的值'

这个密钥必须与 Velocity 的 forwarding.secret 文件内容完全一致。如果不匹配,玩家将无法进入后端。

安全:会毁掉服务器的错误

重要警告:当你在后端设置 online-mode=false,却没有防火墙、也没有有效的转发密钥时,任何知道后端 IP 和端口的人都能直接连接,并以任意用户名进入游戏,包括管理员的名字。这是一个严重漏洞,会让服务器瞬间被接管。

正确的保护方式:

单台 VPS 还是分散到多台

对于中小型网络,你可以把代理和所有后端都运行在一台 VPS 上,将后端绑定到 127.0.0.1,这天然就是安全的,因为外部无法访问。随着网络扩大,你可以把代理和后端拆分到不同机器上。

如果分散到多台机器,应把它们放在同一数据中心,并使用私有网络(private networking)来降低代理与后端之间的延迟,因为每个玩家的数据包都要经过两跳。延迟越低,游戏越流畅。

拥有多台服务器的网络,随着服务器数量和玩家增加,自然需要更多 RAM 和 CPU。从一开始就选择资源充足的 VPS 有助于避免日后卡顿。像 AsiaGB 这样的服务商提供基于 SSD 的 Linux VPS,每月 500 泰铢起,通过 DirectAdmin 管理并提供 99% 的在线率,很适合用来搭建需要同时运行多个进程的 Minecraft 网络。

插件与跨服功能

Velocity 插件与 Bukkit/Spigot 插件不同;你必须找到专门为代理构建的插件版本。通常需要针对代理进行设置的功能包括:

总结

用 Velocity 将多个 Minecraft 服务器连成一个网络,能让你专业地扩展社区、分离游戏模式并无缝转移玩家。最重要的一点是安全:务必在后端关闭 online-mode,同时配合现代转发和防火墙。选择 Velocity 而非已弃用的 Waterfall,并准备一台资源充足的 VPS,以支撑网络的长期增长。

常见问题 (FAQ)

Velocity 与 BungeeCord 有什么区别,我该选哪个?

Velocity 是更快、更安全的现代代理,支持对玩家数据加密的现代转发;而 BungeeCord 较旧,使用旧式转发。对于 2026 年的新网络,你应选择 Velocity,尤其是作为 BungeeCord 分支的 Waterfall 已被弃用并停止支持。

为什么后端必须设置 online-mode=false,这样安全吗?

因为代理代替后端验证玩家身份,所以必须关闭 online-mode。只有在你启用带正确密钥的现代转发,并配置防火墙使后端端口只接受代理 IP 时,它才是安全的。如果后端不加保护地暴露到公网,任何人都能以任意用户名进入。

我能把 Velocity 和子服务器都运行在一台 VPS 上吗?

可以,对于中小型网络,把后端绑定到 127.0.0.1 即可,这很安全,因为外部无法访问。随着玩家增多,你可以把它们拆分到多台机器,最好放在同一数据中心并使用私有网络,以降低代理与后端之间的延迟。

Velocity 需要哪个 Java 版本?

Velocity 最低需要 Java 17,推荐使用 Java 21 以获得最佳性能和兼容性。你还应确保 Paper/Spigot 后端使用与其游戏版本兼容的 Java 版本,以避免启动问题。

准备好开设您的 Minecraft 服务器了吗?

AsiaGB Linux VPS(SSD、DirectAdmin、99% 在线率)每月 500 泰铢起,泰国与新加坡数据中心低延迟,适合任何规模的 Minecraft 服务器。

查看 VPS 套餐

查看泰国VPS主机全部套餐 →