OpenVelocity:实现正版与离线并存的Minecraft代理

引言

在当今的Minecraft服务器生态中,如何平衡正版玩家验证与离线玩家访问一直是一个棘手的挑战。传统方案要么完全依赖正版验证,要么彻底开放离线模式,这往往限制了服务器社区的多样性和包容性。今天,我们要介绍的是一个突破性的解决方案——OpenVelocity,这是一个基于流行的高性能Minecraft代理Velocity的改进版本,专为解决这一矛盾而生。

什么是OpenVelocity?

OpenVelocity是一个经过精心修改的Velocity分支,它在保持原版Velocity所有高性能特性的基础上,引入了创新的登录逻辑,实现了正版验证与离线访问的完美共存。这意味着服务器管理员可以同时接纳拥有正版账户的玩家和选择离线模式的玩家,而无需在两者之间做出取舍。

核心特性亮点

  1. 双模式无缝共存:正版玩家通过标准Mojang验证,离线玩家则使用自定义验证流程,两者在同一服务器环境中和谐共存。

  2. 前沿版本支持:目前支持Minecraft 1.21.11版本,跟进了Velocity的最新开发进展,确保兼容性和稳定性。

  3. 保持高性能优势:继承了Velocity的高并发处理能力,理论上支持数千玩家同时在线,资源消耗低,响应速度快。

  4. 开源与透明:基于GPLv3开源协议,代码开放可审查,社区驱动持续改进。

技术架构解析

登录流程创新

OpenVelocity最核心的改进在于其登录处理逻辑。传统代理只能选择单一验证模式,而OpenVelocity通过巧妙的转发机制和插件协作,实现了双重验证路径:

  • 正版玩家:请求被重定向到配置了正版验证的Velocity实例
  • 离线玩家:通过混合验证插件处理,绕过正版验证环节

部署指南

快速入门(适合新手)

对于希望快速上手的用户,推荐以下步骤:

  1. 加入QQ群946864759获取懒人包
  2. 根据提示修改服务器配置文件
  3. 注意默认端口设置为30067
  4. 启动服务并测试连接

详细配置(适合有经验的服主)

环境准备

1
2
3
4
5
6
# 1. 下载OpenVelocity核心
java -jar velocity-proxy-3.4.0-SNAPSHOT-all.jar

# 2. 配置velocity.toml
# 修改bind="0.0.0.0:25565"(推荐端口)
# 配置服务器转发列表

正版Velocity配置

1
2
3
4
5
6
# 单独配置正版验证实例
端口: 30066
转发模式: modern
在线模式: true
启动命令:
java -Dmojang.sessionserver="http://127.0.0.1:26749/api/yggdrasil/sessionserver/session/minecraft/hasJoined" -jar velocity-3.4.0-SNAPSHOT-520.jar

登录大厅设置

1
2
3
4
5
服务器类型: Paper(任意版本)
端口: 25578
必要插件:
- AuthMe(身份验证)
- ViaVersion(版本兼容)

后端游戏服务器

1
2
3
推荐: 原版服务器(模组服也可)
端口: 30067
建议插件: ViaVersion

网络拓扑结构

典型的OpenVelocity部署包含三个主要组件:

  1. OpenVelocity代理(25565端口):主入口点,分流玩家请求
  2. 正版Velocity实例(30066端口):处理正版玩家验证
  3. 离线玩家登录大厅(25578端口):对离线玩家进行密码验证
  4. 游戏服务器集群(30067等端口):实际游戏逻辑服务器

社区与支持

OpenVelocity是一个由社区驱动的项目:

在github上访问:GitHub - CuberAHZ/OpenVelocity


免责声明:使用OpenVelocity时请确保遵守Mojang最终用户许可协议(EULA)和当地法律法规。