常见问题解答
通用问题
你可以在这里找到关于 Geyser 的常见问题答案——如果你有其他未被解答的问题,欢迎在我们的 Discord 社区提问!
Geyser 的工作原理是什么?
Geyser 充当翻译器的角色,会将客户端发送的请求数据包和服务器返回的响应数据包相互转换,处理成客户端和服务器双方都能识别的格式。从工作逻辑来说,Geyser 会模拟一个我的世界 Java 版客户端,因此服务器会将基岩版玩家识别为 Java 版玩家。只要服务器支持最新的原版(未修改)我的世界版本,无论服务器本身配置如何、安装了哪些插件,都可以通过 Geyser 让基岩版玩家加入。
所以,红石系统能正常工作吗?
可以。红石系统,以及命令、农场等所有游戏机制,在 Geyser 中都和 Java 版完全一致,因为 Geyser 仅实现跨版本连接,不会修改服务器的任何运行行为。
使用 Geyser 需要付费吗?
不需要。Geyser 及其所有相关项目均为完全免费的开源项目,基于 MIT 协议授权。
哪些插件与 Geyser 不兼容?
由于 Geyser 会模拟 Java 版客户端,因此它通常能与各类插件兼容,但也存在以下例外情况:
- TCPShield:未开通付费套餐时,需要关闭
only-allow-proxy-connections配置项才能兼容。其「高级版(Premium)」套餐原生支持 Geyser——配置方法请参考此文档。
Floodgate 因修改了服务器的登录验证流程,可能会与部分插件产生冲突。请注意:本文档仅作离线模式验证插件的兼容性记录,Geyser 本身不支持在离线模式下使用。
- DynamicBungeeAuth:目前最新版本 10.28B+ 可正常使用(10.27B 及更早版本会导致基岩版玩家出现凭证无效的问题)
- FastLogin:会导致 Floodgate 无法为基岩版玩家添加用户名前缀。
- ExploitFixer:会将 Floodgate 玩家判定为 UUID 伪造——需在 ExploitFixer 的配置文件中关闭
uuidspoof配置项。 - JPremium:会修改玩家的 UUID,导致 Floodgate 无法从映射表中获取基岩版玩家的相关数据。
- LibHatesMods:会导致登录验证失败,抛出
com.github.steveice10.mc.auth.exception.request.InvalidCredentialsException异常。 - ProtocolSupport:
目前与 Floodgate 不兼容。现已兼容 Floodgate,但我们更推荐使用 ViaBackwards 替代。 - ProtocolSupportBungee:修改了服务器的登录流程,会导致 Floodgate 的注入代码失效。
- SayNoToMcLeaks:会阻止 Floodgate 完成自身的登录验证流程。
如果你发现了其他不兼容的插件,欢迎通过 Discord 告知我们。
Geyser 支持哪些版本的服务器?
详细的版本支持信息请参考此页面。
我应该选择哪个插件版本的 Geyser?
以下为不同插件版本的 Geyser 对应的运行平台(独立版 Standalone 不属于插件,可在任意平台使用),本列表并非完整清单:
Geyser 的独立版和插件版哪个更好用?
插件版的 Geyser 可以对接插件平台的底层优化,因此体验优于独立版。在 Spigot、Velocity、Fabric/NeoForge 和 BungeeCord 平台上,插件版 Geyser 的直连模式拥有更快的加载速度、更低的网络延迟,还能精准获取玩家真实 IP,且无需依赖 Floodgate。其中,Spigot、Fabric 和 NeoForge 平台的 Geyser 插件还因能直接访问游戏世界数据,做了进一步优化,内存占用更低,协议翻译的准确性也更高。不过,大型服务器集群可能更适合使用独立版 Geyser,因为独立版的更新无需重启其他代理端或服务器,还能将资源占用分担到独立的服务器节点上。
若使用 BungeeCord 或其衍生代理端,Geyser/Floodgate 应该部署在哪里?
只要不使用 Floodgate API,仅需在 BungeeCord 代理端部署 Geyser 和/或 Floodgate 即可。若需使用 Floodgate API,则后端的所有游戏服务器也需要安装 Floodgate。
基岩版玩家需要使用什么 IP 地址加入服务器?
通常情况下,基岩版玩家使用的加入 IP 为你的 Java 版服务器 IP,端口为 Geyser 配置文件中 bedrock 节点下的 port 配置项所定义的端口。例如,Java 版玩家的加入地址为 test.geysermc.org,Geyser 配置中 bedrock 节点的 port 设为 19132,那么基岩版玩家需使用 IP test.geysermc.org + 端口 19132 加入服务器。
如何让基岩版玩家加载资源包?
基岩版玩家如何将物品放在副手栏?
玩 家可以使用命令 /geyser offhand,该命令会交换主手和副手的物品。你也可以在 Geyser 配置文件中启用 emote-offhand-workaround 配置项,让基岩版玩家通过发送表情动作来切换主手和副手的物品。
使用 Floodgate 时,如何在命令中指定基岩版玩家?
若 Floodgate 为基岩版玩家的用户名添加了前缀,在命令中必须带上该前缀。此外,Floodgate 会将玩家名中的空格替换为下划线,因此执行命令时需将玩家名中的空格替换为下划线;若这样操作仍无效,可将玩家名用双引号包裹。
示例:/tp ".<bedrock_username>"
使用 Floodgate 时,如何将基岩版玩家添加到白名单?
有三种方法可以实现,你可根据自身需求和服务器配置选择:
-
使用 Floodgate 内置的白名单命令:
/fwhitelist add <bedrock_username>。该命令仅对已加入过任意 Geyser 服务器的玩家生效。 -
先执行
/whitelist off关闭服务器白名单,让基岩版玩家加入服务器;接着执行/whitelist add ".<bedrock_username>"将其添加到白名单;最后执行/whitelist on重新开启白名单。 若使用本地账号关联功能(Local Linking):若将基岩版账号关联到已在白名单中的 Java 版账号,则无需单独将基岩版账号加入白名单,关联完成后可 直接重新开启白名单。 -
将 Floodgate 分配给该基岩版玩家的 UUID 添加到服务器的
whitelist.json文件中,然后执行/whitelist reload重载白名单配置。
Choose the method that suits your preferences and server setup.
使用 Floodgate 时,如何在玩家未加入服务器的情况下获取其 UUID?
可以移除 Floodgate 为基岩版玩家添加的用户名前缀吗?
虽然技术上可以移除,但我们通常不建议这样做,目的是避免出现基岩版和 Java 版玩家重名的情况(例如:基岩版玩家名 JohnDoe,Java 版玩家名 JohnDoe)。尽管两者的 UUID 不同,但相同的用户名可能会导致涉及玩家名的命令执行异常。如果为了方便执行命令而想要移除前缀,可尝试将玩家名用双引号包裹,示例:/tp ".<bedrock_username>"。若确需移除前缀,可在 Floodgate 的 config.yml 配置文件中找到 username-prefix: 项进行修改。
使用 Geyser 必须安装 Floodgate 吗?
不需要。仅当你希望让基岩版玩家无需通过 Java 版服务器的正版验证即可加入时,才需要安装 Floodgate。未安装 Floodgate 时,Geyser 会让基岩版玩家以两种方式加入服务器:一是通过 Mojang 正版验证加入在线模式服务器,二是无需验证加入离线模式服务器(但该方式不受 Geyser 官方支持,且存在安全风险,任何人都可随意加入服务器,同时该行为违反 Mojang 的最终用户许可协议(EULA))。
当我前往世界的偏远区域时,画面会出现各种奇怪的视觉BUG,这是为什么?
这是基岩版客户端的自身问题,原因是基岩版为 32 位程序,而 Java 版为 64 位程序,两者的坐标计算精度不同。更多相关信息可参考此文档。你可以通过一款非官方的 Geyser 扩展GeyserFloatingPoints解决该问题,该扩展会 模拟玩家的位置坐标,规避精度差异带来的视觉BUG。
可以用 Geyser 让 Java 版玩家加入基岩版服务器吗?
不可以。Geyser 是一款专为基岩版玩家加入 Java 版服务器设计的协议翻译工具,不支持反向的跨版本连接。
Geyser 可以和 Pterodactyl 面板配合使用吗?
可以。你可以将 Geyser 作为插件或模组,部署在 Pterodactyl 面板运行的我的世界服务端上;面板也有适用于 Geyser 独立版的官方镜像(Egg),该镜像支持自动更新,且所有配置项都可便捷编辑,你可以在此仓库下载该 JSON 格式的镜像文件并导入面板。注意需将 Geyser 的 UDP 端口暴露到宿主机,并为服务器分配该端口。
Geyser 可以和 Ngrok 配合使用吗?
遗憾的是,Ngrok 仅支持 TCP 协议,因此无法与 Geyser 兼容。你可以使用playit.gg作为替代方案,该工具同时支持 TCP 和 UDP 协议。
如何配置 Cosmic Guard?
- 你需要拥有服务器宿主机的终端操作权限。注意:本配置指南仅适用于 Linux 系统!
- 新建一个「Guard」实例,选择游戏类型为我的世界:基岩版。
- 点击 Linux 系统的配置按钮,运行守护进程安装程序并启动该服务。
- 执行
guardian status命令,记录输出结果中的「本地 IP(Local IP)」,该 IP 格式为10.31.x.x。 - 打开 Geyser 的
config.yml配置文件,将bedrock节点下的address配置项修改为上述本地 IP。 - 重启我的世界服务器并进行测试,配置完成后 Java 版和基岩版玩家均可正常加入。
可以用 Geyser 连接旧版本的 Java 版服务器吗?
若服务器安装了 ViaVersion 插件,或本身支持最新的我的世界版本,则可以连接。但由于 Java 版支持库的限制,Geyser 官方无法为旧版本我的世界服务器提供技术支持。
可以用 Geyser 连接模组服(Forge/Fabric/NeoForge)吗?
简单来说:如果原版 Java 版客户端能加入该模组服,那么 Geyser 也能实现基岩版玩家的加入。
详细来说:目前 Geyser 无法对大部分模组新增的功能(如方块、物品等)进行协议翻译,因此需要玩家客户端安 装对应模组才能加入的模组服,无法通过 Geyser 实现基岩版玩家的加入。
如何实现 Geyser 的自动更新?
如何让 DiscordSRV 显示 Floodgate 2.0 或 GeyserSkinManager 加载的皮肤?
将 DiscordSRV 配置文件中的 AvatarUrl 配置行替换为:AvatarUrl: https://mc-heads.net/avatar/{texture}/{size}.png
注意:你的 DiscordSRV 版本需为 v1.22.0 或更高。同时,仍需安装 Floodgate 2.0 或 GeyserSkinRestorer,才能让 Java 版玩家看到基岩版玩家的皮肤,且上述配置才能生效。
若上述配置无法生效,或你需要在其他不支持纹理 ID 的插件中实现皮肤显示,可使用星光皮肤 API(Starlight Skin API)。
Geyser 可以和 Buycraft (Tebex) 配合使用吗?
可以!Buycraft 的离线商店模式同时支持 Java 版和基岩版玩家 (推荐搭配 Floodgate 使用)
(目前 Buycraft 不支持 *、- 等特殊符号作为玩家名前缀,因此你需要将 Floodgate 的前缀修改为 _,或直接移除前缀。)
搭建支持双版本玩家的 Buycraft 商店步骤
- 进入 Buycraft 后台 → 新建网页商店
- 选择游戏类型 → 我的世界 离线模式
- 点击继续 → 选择「创建我的网页商店」
- 填写服务器名称 & 选择结算货币 → 点击继续
- 选择对应的游戏服务器 → 点击继续
- 下载适配你服务器的 Buycraft 插件版本并安装。
- 在服务器控制台执行后台生成的密钥命令
配置完成后,你的商店即可同时支持基岩版和 Java 版玩家。
(请注意:若你为 Floodgate 配置了玩家名前缀,基岩版玩家在商店中填写用户名时必须带上该前缀。)
Geyser 可以和 CraftingStore 配合使用吗?
可以。但如果你的 Floodgate 配置的玩家名前缀不是 +,则需要关闭 CraftingStore 中「高级用户名验证」的配置项。