Minecraft基岩版与Java版互通服务器搭建:Geyser+Floodgate完全指南 最近在折腾 Minecraft 联机时总能看到类似这样的问题基岩版BE玩家和 Java 版JE玩家到底能不能进同一个服务器网上说的 Eaglecraft 网页版是不是真的方便网易国服为什么不行如果你也有这些疑惑这篇文章比较适合你。我会从版本差异讲起把互通服务器的核心原理拆开然后以目前最常见的 GeyserMC Floodgate 方案为例从零搭建一个能让 BE 和 JE 同时进入的服务器最后再聊一聊网页版入口、Beta 版本兼容和几个高频坑。适合读者想和朋友联机的玩家、刚开始接触 Minecraft 服务端的新手、以及打算在项目中接入跨版本支持的技术同学。无论你是只想开个三五人的小型服务器还是想做一个社区向的互通服这篇内容都能提供一个可以落地的参考思路。1. 先弄懂BE、JE、网易版、Eaglecraft 网页版到底是什么关系1.1 版本名词扫盲在 Minecraft 的玩家圈子里版本名词一直是最容易混淆的部分。很多人把“我的世界”当成一个整体但实际上它已经分裂成多个技术路线不同的版本。名词全称 / 常见叫法核心特点JEJava EditionJava 版使用 Java 编写主要在 PC 上运行通过官方启动器启动Mod 生态非常丰富BEBedrock Edition基岩版使用 C 编写覆盖手机、Windows、主机等多平台支持跨平台联机网易版网易代理的国服版本独立账号体系有独立的启动器和服务器列表与国际版不直接互通Eaglecraft 网页版第三方社区客户端 / 网页入口通常指通过浏览器快速进入 Minecraft 的社区方案不属于官方发布渠道其中BE 和 JE 是本文讨论的重点。网易版更像是一条独立分支严格来说它虽然也包含基岩版的玩法逻辑但服务端、账号体系和国际版并不一致不能简单套用国际版的互通方案。Eaglecraft 网页版这类名字经常会出现在玩家讨论里。它本质上不是新的“版本”而是一种方便玩家快速进入服务器的入口。把它理解为“启动器”或“客户端壳”会更准确。它是否可以连上互通服务器最终仍然取决于服务端有没有做好 BE 和 JE 的协议转换。1.2 为什么 BE 和 JE 不能直接联机很多玩家会问都是 Minecraft为什么不能直接一起玩问题出在两个层面。第一网络传输协议不同。Java 版在联网时默认走传统 TCP 连接数据包格式和握手方式都是 Java 版专用的。基岩版则基于 UDP/RakNet 协议这是两种完全不同的网络通信方式。就好比一个人只说普通话另一个人只说粤语没有翻译的时候很难直接沟通。第二数据包内容和编码方式不同。Java 版使用基于 NBT 和 VarInt 等结构的协议基岩版使用另一套二进制协议。即使是同一个动作比如移动、放置方块、打开物品栏两种协议发送的数据包内容也完全不同。正因为这个原因官方客户端默认不会把 BE 和 JE 放进同一个服务器。不过好在社区里已经有非常成熟的解决方案我们可以通过服务端插件或独立代理来完成“翻译”。1.3 互通服务器解决什么问题互通服务器简单说就是让基岩版玩家和 Java 版玩家进入同一个世界一起冒险、一起建筑、一起打怪。它解决的问题很直接一个 Java 版 PC 玩家可以和手机上的基岩版玩家联机。不同平台的好友不用再因为“版本不同”而被拆开。服务器可以保留 Java 版强大的插件生态同时让 BE 玩家也能参与进来。需要注意的是互通服务器不等于“免费获得游戏”。基岩版玩家和 Java 版玩家仍然需要拥有各自的合法游戏环境这是账号层面的事情。技术方案解决的是“协议互通”而不是绕过授权。2. 互通方案选型插件、代理、网页版入口2.1 目前主流的互通方案目前社区里最常用的互通方案主要有三种。第一种是 GeyserMC Floodgate 插件方案。Geyser 负责把基岩版的协议“翻译”成 Java 版协议Floodgate 负责处理基岩版玩家的账号映射。这种方案可以以插件形式安装在 Paper、Spigot 等 Bukkit 系服务端上也可以独立运行。第二种是独立代理方案。把 Geyser 作为独立代理运行在一台服务器上代理前端接收基岩版连接后端统一转发给 Java 版服务器。这种方式更适合已有成熟网络的服务器。第三种是网页串流或云游戏方案。通过远程桌面、云电脑等方式把 PC 游戏画面传到浏览器里玩家在网页端操作。这种方式本质上是“远程游玩”而不是真正的协议互通。Eaglecraft 网页版如果走的是这种路线那它的底层仍然是某个完整的 Minecraft 客户端。如果你只是想快速让 BE 玩家进入 Java 版服务器最推荐的还是 Geyser Floodgate 方案。2.2 网易版能不能使用互通方案先给结论网易国服的环境不适合直接使用 Geyser 这类国际版互通插件。原因是网易国服使用了自己的账号系统、启动器和服务端分发渠道其服务器地址、客户端行为和国际版不同。Geyser 和 Floodgate 瞄准的是国际版 Bedrock 客户端和 Java 版服务端网易版并不能直接套用。如果你希望在网易国服里做类似互通的事情建议先查阅网易官方的服务器开设文档和公告按照官方支持的机制来。不要轻信第三方工具宣传的“网易版也能互通”防止账号安全和客户端完整性问题。2.3 选型建议使用场景推荐方案说明小型私人服朋友混用 BE/JEPaper Geyser Floodgate安装简单维护成本低已有 Java 版服务器想加 BE 入口在原服务端安装 Geyser 插件不需要重建现有世界服务器需要独立承载高并发Geyser 独立代理 反向代理部署更复杂但隔离性更好只想在浏览器里试玩Eaglecraft 类网页入口受限于第三方实现多用于体验不建议作为正式生产方案3. 环境准备与版本说明3.1 服务器环境本文以 Linux 服务器为例因为大多数 Minecraft 服务器都跑在 Linux 上。如果你使用的是 Windows Server思路完全一样只是安装命令有所区别。建议最低配置双核 CPU2GB 左右可用内存。操作系统Ubuntu 20.04 / 22.04 或 Debian 11 / 12。安装 Java 17 或 Java 21具体版本取决于你下载的 Paper 服务端要求。开放 TCP 25565 端口Java 版连接和 UDP 19132 端口基岩版连接。请务必注意端口不是随便填的。Java 版走 TCP基岩版走 UDP两个协议不同如果只放行 TCP 而忽略 UDP基岩版玩家会无法进入服务器。3.2 客户端准备调试互通前我建议你准备两个客户端Java 版客户端官方启动器或兼容合法验证的第三方启动器登录正版 Java 账号。基岩版客户端手机版、Windows 基岩版等登录 Microsoft 账号或基岩版正版环境。如果你还想测试 Eaglecraft 网页版可以在互通服务器跑通之后再尝试。先不要一上来就引入网页版变量否则出问题时很难判断是互通配置出错还是网页入口不兼容。3.3 版本兼容与 Beta 注意事项Geyser 对版本的支持通常比较积极但依然存在版本窗口。例如服务端是 Java 版 1.20.x基岩版客户端如果是最新稳定版大概率可以兼容。但如果你使用了 Beta 版基岩客户端、Java 版快照版或者服务端跑的是未经测试的插件 Beta 版本互通就可能失败。这里给一个比较稳妥的原则正式运行的服务器使用稳定版服务端。不要在生产环境使用 Beta 插件或 Beta 服务端核心。客户端建议使用正式版尤其是测试互通功能时。如果非要体验新版特性单独开一个测试服。“Beta”这个词在技术社区里通常意味着“可能有坑”。它适合尝鲜但不适合作为长期稳定的联机基础。3.4 项目目录结构示例为了便于后续维护建议在服务器上创建独立目录。# 推荐目录结构 /opt/mc-server/ ├── paper.jar # Java 版服务端 ├── plugins/ │ ├── Geyser-Spigot.jar │ └── floodgate-spigot.jar ├── world/ # 主世界数据 ├── logs/ # 运行日志 └── server.properties # 服务端配置实际安装时插件文件会自动生成配置目录不需要手动创建所有配置。4. 核心原理拆解Geyser 是怎么把 BE 转成 JE 的4.1 协议层差异想要理解互通服务器必须接受一个事实BE 和 JE 在协议层面几乎是“两种游戏”。Java 版使用 TCP 连接协议数据包包含大量 Java 对象序列化信息。基岩版使用 RakNet 协议这是一种基于 UDP 的可靠传输协议常用于游戏同步。Geyser 做的事情像一个实时翻译器它监听基岩版客户端的 UDP 连接收到 BE 数据包后解析成游戏事件再按 Java 版协议重新封装转发给后端的 Java 服务端。反过来Java 服务端返回的数据也会被转换成基岩版格式。4.2 Geyser 的转发流程一次完整的玩家动作流程如下基岩版客户端连接服务器的 UDP 19132 端口。Geyser 接收握手请求完成基岩版协议协商。Geyser 与后端的 Java 版服务端建立 TCP 连接。玩家在基岩版中的移动、交互、聊天等操作被转换成 Java 版数据包。Java 版服务端同步给所有在线玩家服务器世界正常更新。这个过程对玩家来说几乎是透明的。基岩版玩家看到的是熟悉的基岩版 UIJava 版玩家看到的是自己的 Java 版界面但大家共享同一个世界状态。4.3 Floodgate 的账号映射Floodgate 是 Geyser 的黄金搭档。它解决的问题是账号验证差异。Java 版服务器如果开启了正版验证玩家加入时需要通过 Mojang/Microsoft 的会话验证。基岩版玩家使用的是另一套 Microsoft 账号体系直接把基岩版客户端转发到 Java 服务端正版验证会失败。Floodgate 会为每个基岩版玩家生成一个映射后的 Java 版 UUID 和用户名。默认情况下基岩版玩家的名字前面会加上一个前缀比如.Steve这能避免和 Java 版玩家重名。这样服务端插件、权限组、经济系统都可以识别基岩版玩家并把它们当成普通 Java 玩家一样管理。4.4 端口与网络模型在互通场景下我们需要理解两个端口25565/TCPJava 版玩家连接服务器时使用。19132/UDP基岩版玩家连接服务器时使用。如果你的服务器有公网 IP玩家可以直接通过IP:端口加入。如果使用了云服务器还需要在云厂商的安全组里放行这两个端口。域名方面Java 版支持 SRV 记录来隐藏端口基岩版也支持类似方式但配置难度稍高。建议先把 IP 加端口跑通再考虑域名优化。5. 完整实战Paper Geyser Floodgate 搭建互通服务器下面我们进入实战环节。我会按步骤拆解每一步都会说明为什么这么做。5.1 安装 Java 与创建目录先更新系统并安装 Java。sudo apt update sudo apt install -y openjdk-17-jdk-headless安装完成后检查版本。java -version只要能看到 Java 17 或更高版本即可。不同的 Paper 服务端对 Java 版本要求不同请以实际服务端的说明为准。接着创建目录。sudo mkdir -p /opt/mc-server/plugins cd /opt/mc-server5.2 下载 Paper 服务端Paper 是目前最主流的 Bukkit 系服务端之一兼容大量插件。请到 PaperMC 官方网站或 GitHub Releases 获取最新的稳定版paper.jar。# 以通用思路为例具体下载地址请以官方页面为准 # wget -O paper.jar 官方下载地址下载完成后放入/opt/mc-server/目录并确认文件存在。ls -lh /opt/mc-server/paper.jar需要注意不要直接复制文章里的下载链接因为 Minecraft 版本更新很快API 地址经常变化。去官方页面选择你想要的稳定版本即可。5.3 放置 Geyser 与 Floodgate 插件Geyser 官方提供多个版本例如 Geyser-Spigot、Geyser-BungeeCord、Geyser-Standalone。由于我们用的是 Paper 服务端选择 Spigot 插件版本。Floodgate 同样需要选择与 Geyser 对应的 Spigot 插件版本。# 将下载好的插件放到 plugins 目录 mv Geyser-Spigot*.jar /opt/mc-server/plugins/ mv floodgate-spigot*.jar /opt/mc-server/plugins/第一次启动服务器后插件会自动生成默认配置文件。后续的修改都需要重启服务器才能生效。5.4 修改关键配置启动一次服务器后进入配置目录。ls /opt/mc-server/plugins/Geyser-Spigot/打开config.yml重点确认以下内容。# Geyser 配置config.yml核心片段字段以实际版本为准 bedrock: # 是否开启基岩版监听端口 enable: true # 监听 IP0.0.0.0 表示接受所有网卡连接 address: 0.0.0.0 # 基岩版玩家连接端口默认 19132使用 UDP port: 19132 remote: # 后端 Java 版服务端地址插件模式下一般指向本机 address: 127.0.0.1 # 后端 Java 版服务端端口 port: 25565 # online 表示使用正版验证offline 表示允许离线 auth-type: online在插件模式下remote.address和remote.port通常会自动指向本机服务端不需要强行修改。auth-type建议保持online这样更安全。接着检查 Floodgate 配置。# Floodgate 配置config.yml核心片段 # 基岩版玩家进入后自动添加的前缀避免与 Java 玩家重名 username-prefix: .如果你不希望玩家名字前面带点可以改成空字符串或自定义前缀但需要注意重名冲突。5.5 启动服务器在正式启动前可以调整 JVM 内存参数。比如给服务器分配 2GB 内存。cd /opt/mc-server java -Xms2G -Xmx2G -jar paper.jar nogui启动后观察日志看到类似 “Geyser loaded” 和 “Floodgate loaded” 的提示说明插件已经加载成功。5.6 验证互通JE 和 BE 分别加入先测试 Java 版玩家。打开 Java 版客户端添加服务器地址。服务器地址127.0.0.1:25565如果是远程服务器填写你的公网 IP 或域名并确保 TCP 25565 端口放行。再测试基岩版玩家。在基岩版客户端中选择“添加服务器”或“加入服务器”地址填写。服务器地址127.0.0.1 端口19132基岩版玩家加入后服务器聊天框里会看到该玩家的名字带上了 Floodgate 配置的前缀。Java 版玩家也能看到基岩版玩家的动作和说话内容。到这里一个最基础的互通服务器就跑通了。5.7 可选接入网页版入口当你确认官方客户端互通正常后可以再尝试 Eaglecraft 网页版这类入口。需要明确的是网页版入口只是把某个 Minecraft 客户端“塞进浏览器”。如果你的网页版入口运行的是一个 Java 版客户端那么它会像普通 Java 玩家一样走 25565 端口加入服务器。如果它运行的是一个基岩版客户端则会走 19132 端口。因此接入网页版入口不会改变互通服务器的本质。只要后端已经启用 Geyser网页版对应客户端类型就能正常连接。但第三方网页入口可能存在性能损耗、功能缺失、账号安全问题建议只作为临时体验不要把主力联机依赖在第三方网页端上。6. 常见问题与排查思路配置互通服务器时大概率会遇到下面几个问题。问题现象常见原因解决思路基岩版提示无法连接服务器UDP 19132 没有放行检查防火墙和云安全组Java 玩家能进BE 玩家进不来Geyser 没有加载成功查看日志确认 Geyser 插件已加载BE 玩家被踢出提示版本不支持客户端版本与服务端版本差异过大统一使用稳定版避免 Beta 客户端基岩版玩家名字前面没有点Floodgate 未启用或配置被覆盖检查 Floodgate 配置和日志网易版玩家无法进入网易国服与国际版不互通使用国际版服务端或遵循网易官方规则下面针对高频场景再展开说明。6.1 UDP 端口不通如果你确认防火墙已经放行但基岩版还是连不上可以先用命令测试端口状态。sudo ufw statusUbuntu 系统上还可以临时放行端口。sudo ufw allow 25565/tcp sudo ufw allow 19132/udp sudo ufw reload如果使用云服务器还要到云厂商控制台的安全组 / 防火墙页面放行对应的 TCP 和 UDP 端口。6.2 Beta 客户端被踢Beta 版基岩客户端可能使用了尚未稳定的协议版本。Geyser 通常只支持它发布时对应的正式协议版本。解决办法很简单把客户端切换到正式稳定版。如果确实需要测试新特性单独准备一个测试互通服。6.3 皮肤显示异常基岩版玩家的皮肤在 Java 版服务器中未必能正常显示。Geyser 提供了皮肤转发机制但有时会受客户端版本和皮肤服务器影响。遇到这个问题时可以先检查 Geyser 日志中的皮肤相关报错。如果是离线模式服务器皮肤问题通常更明显。建议保持正版验证开启并在 Geyser 配置中启用皮肤上传相关选项。6.4 网易版为什么不行这个问题再强调一次网易国服的客户端和服务端走的是独立体系不是标准的国际版 Bedrock 协议。把网易版客户端指向 Geyser 的 19132 端口连接很难成功甚至可能被国服客户端自身的安全机制拦截。如果你在网易版里做服务器应该围绕网易官方提供的功能来设计不要强行使用国际版互通插件。7. 工程化与最佳实践7.1 安全与合规开互通服务器前先确认你拥有对应的游戏授权。Java 版和基岩版都需要合法账号不接受来源不明的离线破解客户端。Geyser 和 Floodgate 本身是开源且合规的社区项目但这不代表可以用于绕过正版验证。生产环境中尽量不要关闭 Java 服务端的正版验证。关闭正版验证会带来大量安全问题比如账号冒充、权限绕过等。服务器管理员的控制台和文件权限也要保持最小化不要随意把服务器 shell 权限开放给玩家。7.2 端口、防火墙与反向代理生产环境建议把 Java 版和基岩版端口都固定下来并在防火墙层只放行必要端口。Java 版TCP 25565。基岩版UDP 19132。如果使用了 BungeeCord / Velocity 等代理端Geyser 插件需要安装在代理端上此时端口规划会变得更复杂。建议先在单服务器环境跑通再扩展到代理架构。7.3 备份与更新更新 Geyser、Floodgate 或 Paper 之前一定要先备份服务器数据。sudo tar -czf mc-backup-$(date %F).tar.gz /opt/mc-server更新插件时注意 Geyser 和 Floodgate 的版本要匹配也不要盲目升级 Paper 大版本。很多互通问题都是因为“Paper 升了Geyser 没跟上”导致的。7.4 性能优化Geyser 协议转换会消耗一定 CPU但通常远低于玩家数量带来的世界模拟开销。性能压力主要还是来自 Minecraft 本身。建议给 JVM 设置合理的 Xms 和 Xmx两者保持一致减少运行期扩容带来的停顿。同时开启系统自动重启脚本确保服务器宕机后能自动恢复。如果玩家分布在多个地区可以考虑把服务器放在网络延迟更低的节点或者使用云厂商提供的优质线路。不过不要涉及任何违规网络工具这里只讨论正常的机房选择。7.5 玩家体验细节互通服务器里Java 版和基岩版玩家在一起玩体验细节上会有不少差异。比如基岩版玩家在使用插件命令时输入方式和小键盘操作与 Java 版不同。服务器插件如果大量依赖右键菜单基岩版玩家可能会觉得不顺手。建议在服务器介绍里明确说明基岩版支持的指令和玩法。另外Floodgate 的用户名前缀要提前统一规划。如果中途修改前缀玩家的权限和金钱数据可能对不上造成“老玩家变新玩家”的问题。8. 总结与下一步搭建 BE 和 JE 互通服务器核心不是下载某个“万能客户端”而是在服务端做好协议翻译和账号映射。Paper Geyser Floodgate 是目前最成熟、最容易上手的一条路。Eaglecraft 网页版可以当做一个额外的体验入口但不要把它当成互通服务器的前提条件。如果你刚接触这方面建议先按文章顺序把基础互通跑通确认 Java 版和基岩版都能正常进入然后再考虑网页版、Beta 版本、代理架构这些进阶选项。过程中遇到问题优先看日志日志里通常已经写明了原因。如果这篇文章对你有帮助可以收藏备用。后面我也会继续整理互通服务器的其他主题比如皮肤同步、反作弊兼容、代理端部署等欢迎持续关注。