当玩家社区不断壮大时,单台 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 对比
| 特性 | Velocity | BungeeCord | Waterfall |
|---|---|---|---|
| 开发状态 | 活跃 | 维护中(旧) | 已弃用(EOL) |
| 性能 | 最高 | 中等 | 中等 |
| 转发安全性 | 现代(加密) | 旧式 | 部分旧式/现代 |
| 最低 Java 版本 | 17(推荐 21) | 8+ | 11+ |
| 插件系统 | Velocity 专用 | Bungee API | Bungee API |
| 2026 年是否推荐 | 是 | 仅限旧系统 | 否 |
Velocity 基础安装
从 PaperMC 官网下载 Velocity 的 jar 文件,先运行一次让它生成配置文件。
- 将
velocity.jar放入一个专用文件夹。 - 使用命令
java -Xms1G -Xmx1G -jar velocity.jar运行它。 - 它会自动生成
velocity.toml和一个forwarding.secret文件。 - 停止程序,然后编辑
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 和端口的人都能直接连接,并以任意用户名进入游戏,包括管理员的名字。这是一个严重漏洞,会让服务器瞬间被接管。
正确的保护方式:
- 切勿把后端暴露到公网。只将它们绑定到
127.0.0.1或内网(private network)IP。 - 配置防火墙,使后端端口(例如 30066-30068)只接受来自代理 IP 的连接。
- 始终使用现代转发,并对
forwarding.secret文件保密。 - 只把代理的 25565 端口暴露到公网。
单台 VPS 还是分散到多台
对于中小型网络,你可以把代理和所有后端都运行在一台 VPS 上,将后端绑定到 127.0.0.1,这天然就是安全的,因为外部无法访问。随着网络扩大,你可以把代理和后端拆分到不同机器上。
如果分散到多台机器,应把它们放在同一数据中心,并使用私有网络(private networking)来降低代理与后端之间的延迟,因为每个玩家的数据包都要经过两跳。延迟越低,游戏越流畅。
拥有多台服务器的网络,随着服务器数量和玩家增加,自然需要更多 RAM 和 CPU。从一开始就选择资源充足的 VPS 有助于避免日后卡顿。像 AsiaGB 这样的服务商提供基于 SSD 的 Linux VPS,每月 500 泰铢起,通过 DirectAdmin 管理并提供 99% 的在线率,很适合用来搭建需要同时运行多个进程的 Minecraft 网络。
插件与跨服功能
Velocity 插件与 Bukkit/Spigot 插件不同;你必须找到专门为代理构建的插件版本。通常需要针对代理进行设置的功能包括:
- 跨服聊天(cross-server chat):使用代理端插件来合并聊天。
- 权限(LuckPerms):配置 network/SQL 模式,让权限在各服务器间保持一致。
- MOTD 与排队系统:主要在代理端管理。
总结
用 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 套餐