
新速度
一个兼容层,允许在模组化neoforge服务器上进行velocity代理现代转发。
查看大图NeoVelocity
NeoVelocity 为运行在 Velocity 代理后端的 NeoForge 服务器启用 Modern Forwarding(现代转发) 支持。
如果没有此模组,位于代理后端的 NeoForge 服务器通常会看到所有玩家都从 127.0.0.1 连接,或者无法正确验证 UUID/皮肤。此模组实现了 Velocity 的原生转发协议,以确保 IP 地址、UUID 和游戏档案能正确传递给服务器。
功能特性
- Modern Forwarding(现代转发): 完整支持 Velocity 的安全转发协议。
- 自动重载: 配置更改(例如更新密钥)会立即生效,无需重启服务器。
- Sinytra/Fabric 兼容性: 会自动检测
fabric_networking_api_v1。如果你运行的是 Forgified Fabric API 并遇到登录断开连接的问题,此模组内置了一个变通方案(请参阅配置中的login-custom-packet-catchall)。
安装
安装模组 将 jar 文件放入服务器的
mods文件夹中。服务器属性 你 不需要 在
server.properties中设置online-mode=false,因为此模组会直接介入登录流程。但是,如果你遇到验证循环问题,将其设置为false也是安全的,因为代理会处理验证。首次运行 启动一次服务器,以在
config/neovelocity-common.toml生成配置文件。配置密钥 在你的 Velocity 代理 根目录中找到
forwarding.secret文件。复制其内容并粘贴到你的 NeoForge 服务器上的config/neovelocity-common.toml中。- 选项 A: 直接将字符串粘贴到配置中。
- 选项 B: 将配置指向包含该密钥的文件路径。
配置与兼容性
大型整合包(Velocity 配置)
Velocity 默认将已知整合包(known packs)的数量限制为 64。如果你的整合包超过此限制,玩家将被断开连接,并且 Velocity 控制台会显示 QuietDecoderException: too many known packs。
要解决此问题,请将以下标志添加到你的 Velocity 代理 启动参数中,并将数值设置为高于 64:
-Dvelocity.max-known-packs=64 # 调高此数值(可以尝试 128 或更高)
模组兼容性(“Catch-All” 设置)
默认情况下,NeoVelocity 假定 所有 自定义登录数据包都是 Velocity 验证尝试。
然而,Fabric Networking API 允许模组发送它们自己的自定义登录数据包。为了让这些模组正常工作,你必须在配置中将 login-custom-packet-catchall = false。
工作原理:
当设置为 false 时,NeoVelocity 会首先检查数据包的签名。
- 如果密钥匹配: NeoVelocity 会认领该数据包并处理登录。
- 如果密钥不匹配: 该数据包将被忽略并传递给其他模组。
警告: 如果在此设置为 false 时你的转发密钥不正确,NeoVelocity 将忽略 Velocity 数据包。服务器会将其视为未知的垃圾数据,并在日志中显示 “Incompatible mod detected” 错误并断开你的连接。
安全警告
不要将你的 NeoForge 服务器端口直接暴露到互联网。 你必须配置防火墙(iptables/UFW),使其仅接受来自你的 Velocity 代理 IP 地址的连接。如果后端端口开放,恶意用户可以通过知道转发密钥来绕过验证。
故障排除
如果玩家在登录过程中被踢出,请检查断开连接消息并与下方内容进行比较。
“NeoVelocity configuration error. Check server logs.” 模组已安装,但你尚未配置密钥。
- 修复: 打开
config/neovelocity-common.toml并粘贴你的forwarding.secret。
- 修复: 打开
“Unable to verify proxy data integrity.” 你的 Velocity 代理中的密钥与你的 NeoForge 服务器配置中的密钥不匹配。
- 修复: 再次复制代理中的
forwarding.secret内容,并确保将其粘贴到 NeoVelocity 配置时没有多余的空格。
- 修复: 再次复制代理中的
“This server requires you to connect via a Velocity Proxy using Modern Forwarding.” 服务器未收到任何转发数据。
- 原因 A: 你正尝试直接连接到后端服务器端口。你必须通过代理 IP/端口进行连接。
- 原因 B: 你的 Velocity
velocity.toml被设置为player-info-forwarding-mode = "none"或"legacy"。你必须将其设置为"modern"。
“Incompatible mod detected during login handshake.” 另一个模组(通常是 Fabric Networking API)修改了登录数据包,导致签名检查失败。
- 修复: 打开
config/neovelocity-common.toml并设置login-custom-packet-catchall = false。
- 修复: 打开
更多文档
有关设置代理、配置防火墙和调整网络设置的详细指导,请参阅官方 Velocity 文档。
贡献
源代码可在 GitHub 上获取。如果你发现了一个 bug,或希望建议支持其他代理协议,欢迎提交 issue 或 Pull Request。
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。