
很多想开《我的世界》服务器的玩家遇到的第一道坎并不是不会下载服务端而是搞不清楚 Java 版和基岩版到底能不能一起玩。网上搜到的方案不是要装一堆看不懂的插件就是告诉你两个版本必须分开开服。实际上用目前的跨版本联机方案Java 版和基岩版玩家进入同一个世界、同一个服务器已经是相当成熟的做法而且配置起来并不复杂。“文域服务器”这个项目名字里有“创造我们的世界”这个定位核心思路是做一个纯净生存与创造并存的社区服同时支持 Java 版和基岩版玩家进入。这篇文章不打算只讲空泛的理念而是把从零搭建这样一个服务器会用到的架构、服务端选型、跨版本联机配置、双模式玩法规划以及常见问题和治理建议一次讲清楚。如果你正打算开一个自己的 MC 服务器或者想理解 Java 版与基岩版跨端联机的原理这篇文章值得看完并收藏。1. 纯生存和创造模式社区服核心难在哪里先说判断开一个支持 Java 版和基岩版玩家的纯净生存、创造双模式服务器技术门槛没有想象中高真正的难点在架构选型和玩家体验的一致性。如果你只是在自己电脑上开一个单人存档那不需要读这篇文章。但“文域服务器”这类项目要解决的是三个具体问题第一Java 版和基岩版玩家如何进入同一个世界。Java 版玩家使用 Java 版客户端基岩版玩家使用手机、Win10 或主机端两个版本的数据包、协议、登录验证方式完全不同。如果没有中间层转换这两个版本的玩家根本不可能在同一个服务器里相遇。第二纯净生存和创造模式如何共存。这里说的“纯净”通常指不引入大规模模组以原版玩法为主。但并不意味着不能装插件。生存模式需要保护领地、防熊孩子、记录方块操作创造模式需要规划建筑区域、设置飞行权限、分配不同玩家的建造范围。这两种玩法如果放在同一个地图里很容易出现生存玩家辛苦建的家被创造模式玩家拆掉之类的问题。第三社区服务器的治理。这类服务器强调“共同建设”而不是某个管理员独裁。它往往会在规则层面做很多设计公共资源区、建筑规划区、投票决定重大事项。但规则要落地需要靠插件和权限配置去约束不能说“大家自觉一点”就够了。所以这篇文章要讲的不是“点一下开服”这种不存在的魔法操作而是一条可以照做的技术路径用什么服务端、装什么插件、改哪些配置、怎么验证、怎么排查问题。2. Java 版与基岩版跨端联机核心概念先搞清楚在写配置之前必须先把几个概念讲清楚。很多教程直接甩配置读者复制粘贴后报错却不知道错在哪里就是因为没理解这套联机机制的原理。2.1 为什么 Java 版和基岩版不能直接互通《我的世界》Java 版运行在 JVM 上使用 Java 协议与服务端通信基岩版使用 C 编写走的是 Bedrock 协议。两个版本的网络协议、数据序列化方式、实体属性、粒子效果、物品 ID 都不完全一致。官方虽然做过跨版本迁移工具但并没有提供服务器层面的互通方案。这意味着如果想让两个版本的玩家进入同一个服务器必须有一个“翻译层”。这个翻译层接收基岩版玩家的连接把 Bedrock 协议的数据翻译成 Java 协议再转发给后端的 Java 服务端。2.2 Geyser 与 Floodgate 的分工跨版本联机目前最成熟的方案是 Geyser 加 Floodgate。Geyser 是一个代理层负责协议翻译。它既可以作为独立代理运行也可以作为插件挂在 Paper 服务端上。基岩版玩家连接 Geyser 的端口默认 UDP 19132Geyser 将流量翻译后交给 Java 服务端处理这样基岩版玩家就能以“Java 版玩家”的身份进入游戏。Floodgate 则解决登录验证问题。Java 版服务器如果开启正版验证基岩版玩家没有 Java 版账号会被拒绝进入。Floodgate 让基岩版玩家通过 XUID 或自定义用户名直接进入不需要 Java 版正版账号。它还负责把基岩版玩家的皮肤映射成 Java 版可识别的皮肤。简单理解Geyser 负责“说同样的话”Floodgate 负责“验明正身”。2.3 统一通行证与跨平台 ID在实际配置中Floodgate 会给每个基岩版玩家生成一个形如0032c8d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx的 UUID。这个 UUID 在玩家第一次进入服务器时生成之后保持不变。这意味着基岩版玩家的数据、背包、领地权限都能持久化保存不会因为重进服务器而丢失。对于服务器管理员还需要注意一点如果你同时允许 Java 版离线玩家进入那么理论上一个盗版 Java 玩家可以取一个和基岩版玩家一样的名字造成身份混淆。比较好的做法是只允许正版 Java 玩家加基岩版玩家或者在权限系统里区分两类玩家的前缀。3. 环境准备从空服务器到能跑 MC动手之前先把环境准备好。下面以 Linux 服务器为例Windows 的操作逻辑类似只是安装路径和命令不同。3.1 服务器配置怎么选《我的世界》Java 服务端是单线程为主的计算模型对 CPU 单核性能要求很高对核心数量反而不太敏感。地图生成、实体运算、红石电路都会压在单个主线程上。因此选服务器时优先看 CPU 主频而不是盲目追求“多少核”。内存方面纯原版生存服10 到 20 个玩家同时在线4GB 到 8GB 内存基本够用。如果加上创造模式多世界、大量建筑、插件建议 8GB 起步。需要注意的是给 Java 进程分配内存不能贪多堆内存设置过大会导致 GC 停顿变长反而卡顿。比较稳妥的做法是物理机内存的一半左右给 MC比如 8GB 机器分配 4GB 到 5GB。带宽方面Java 版玩家在线人数和带宽占用并不成正比单个玩家通常只需要几十 KB 的上下行。但基岩版玩家走 UDP 端口如果延迟高丢包会明显建议选择离玩家群体较近的机房。3.2 安装 Java 环境现代版本的 Minecraft 服务端1.17 以上需要 Java 17 或 Java 21。以 Ubuntu 22.04 为例sudo apt update sudo apt install openjdk-17-jre-headless -y java -version如果服务端版本是 1.20.5 以上的新版推荐使用 Java 21具体以服务端启动日志的提示为准。检查是否安装成功java -version看到类似openjdk version 17.0.10的输出就表示环境正常。3.3 准备服务端目录不建议直接在 root 目录下开服最好单独建一个目录管理服务端文件mkdir -p /opt/mc/wenyu cd /opt/mc/wenyu之后所有服务端文件、插件、配置都放在这个目录里方便备份和迁移。4. 服务端选型为什么推荐 Paper 而不是原版《我的世界》服务端有好几种选择不同选择对应不同的诉求。原版服务端Vanilla Server是最接近官方玩法的服务端但不支持插件无法实现领地保护、权限管理、多世界这些社区服必需的功能。Forge 和 Fabric 服务端面向模组玩法适合需要大量模组的服务器。但“文域服务器”的定位是纯净生存加创造模组不是核心需求引入模组反而会增加版本兼容和性能负担。Paper 是目前最主流的插件服务端。它在原版基础上做了大量性能优化支持 Spigot 和 Bukkit 插件生态同时保留了原版玩法的基本体验。绝大多数生存服务器和社区服务器都基于 Paper 或其分支。如果追求更高性能还可以考虑 Purpur、Pufferfish 这类 Paper 分支。Purpur 提供更多精细化配置选项允许你调整部分原版机制比如允许玩家在特定区域飞行、修改刷怪规则等很适合做创造与生存混合服。从材料来看“文域服务器”强调纯净和稳定推荐路线是Paper 或 Purpur 作为服务端核心Geyser 加 Floodgate 实现跨版本联机Multiverse-Core 实现多世界LuckPerms 或 GroupManager 实现权限管理GriefPrevention 或 Residence 实现领地保护。选型原则可以总结为一句话能通过插件解决的就不要通过改服务端代码解决能通过配置解决的就不要通过加模组解决。5. 服务器搭建与跨版本联机配置现在进入实操环节。下面以 Paper 服务端为例完整演示从下载到配置跨版本联机的过程。5.1 下载并启动 Paper去 Paper 官网下载对应版本的 Paper 服务端 jar 包放到服务端目录中。假设文件名为paper-1.20.4-450.jar首次启动cd /opt/mc/wenyu java -Xms4G -Xmx4G -jar paper-1.20.4-450.jar nogui首次启动会生成eula.txt需要修改vim eula.txt将eulafalse改为eulatrue表示同意最终用户许可协议然后再次启动。启动成功后目录下会生成一系列文件和文件夹包括server.properties、config目录、plugins目录等。5.2 修改 server.properties 基础配置server.properties是服务端的核心配置文件。以下几个配置项必须注意# 服务器监听端口Java 版玩家使用这个端口连接 server-port25565 # 关闭正版验证Geyser 和 Floodgate 配合时一般需要关闭正版验证 online-modefalse # 服务器最大玩家数 max-players100 # 允许 Nether 地狱门和末地 allow-nethertrue # 设置服务器难度 difficultyhard # 设置游戏模式为生存 gamemodesurvival # 开启命令方块 enable-command-blocktrue # 视距越小对服务器压力越小 view-distance10 # 是否生成结构 generate-structurestrue # 强制使用 Unicode 字体避免中文乱码 enforce-secure-profilefalse这里有一个关键点需要说明online-modefalse是为了让 Floodgate 能接管基岩版玩家的验证。如果保持online-modetrue基岩版玩家会因为缺少 Java 正版账号而无法进入。但关闭正版验证意味着任何知道服务器 IP 的人都可以用任意 ID 进入服务器所以必须同时配置好 Floodgate 的密钥认证和后续的权限管理否则会出现冒名顶替的问题。5.3 安装 Geyser 与 Floodgate 插件在 Paper 服务端上推荐以插件形式运行 Geyser而不是单独开一个代理进程。这样省去端口转发和额外运维成本。下载 Geyser 的 Spigot 插件版本和 Floodgate 的 Spigot 插件版本放到plugins目录下重启服务端。重启后plugins/Geyser-Spigot会生成config.ymlplugins/floodgate会生成key.pem等文件。5.4 配置 Geyser打开plugins/Geyser-Spigot/config.yml重点看下面几个配置# 基岩版玩家连接端口 bedrock: # 是否启用基岩版监听端口 enabled: true # 监听端口 port: 19132 # 如果服务器有公网 IP 或域名建议填写方便玩家显示 # 留空则自动检测 address: 0.0.0.0 # 远程 Java 服务端地址 remote: # 填写本机或实际 Java 服务端地址 address: 127.0.0.1 # 对应 server.properties 中的 server-port port: 25565 # 是否将基岩版玩家显示为 Java 版玩家 # 如果启用 Floodgate必须设为 true passthrough-motd: true # 是否允许基岩版玩家使用自定义皮肤 allow-third-party-capes: true其中最关键的是port基岩版玩家连接服务器时使用的不是 25565 端口而是这里的 19132 UDP 端口。很多新手把 25565 端口映射到公网后基岩版玩家依然连不上就是因为漏了 UDP 19132 端口的映射。5.5 配置 FloodgateFloodgate 安装后一般不需要额外修改它会自动与 Geyser 配合。但你需要确认plugins/floodgate/config.yml中有一个关键配置# 是否只允许通过了 Geyser 代理的基岩版玩家进入 # 如果为 true所有直接连接服务器的假 Java 玩家都会被拒绝 allow-proxy-connections: true # 基岩版玩家在服务器内显示的用户名前缀 username-prefix: .username-prefix默认是.它让服务器成员能一眼看出谁是基岩版玩家比如.NightMare这样在排查问题和处理纠纷时更方便。如果不想加前缀可以设置为空字符串但不建议这么做因为权限分配和 ID 区分都会变难。5.6 放行端口和防火墙服务器搭建完成后必须放行两个端口TCP 25565Java 版玩家连接UDP 19132基岩版玩家连接如果是云服务器需要在安全组里加规则如果是物理机或 VPS用 ufw 放行sudo ufw allow 25565/tcp sudo ufw allow 19132/udp sudo ufw reload这一步遗漏的情况非常常见Java 版玩家能进基岩版玩家一直提示“无法连接服务器”查了半天最后发现是 UDP 端口没放行。6. 生存与创造双模式玩法搭建支持两个版本的玩家进入之后接下来要让这个服务器真正成为“纯净生存 创造”的社区服。这里的难点不是选择哪个模式而是让两种模式在一个服务器里平稳共存。6.1 多世界规划用 Multiverse-Core 拆分区域与其让生存和创造混在同一个地图里不如直接用多世界插件把场景拆分。推荐 Multiverse-Core老牌且稳定。安装 Multiverse-Core 后通过命令创建多个世界# 创建生存主世界 mv create world_survival normal # 创建创造建筑世界 mv create world_creative normal # 创建资源世界玩家可以自由采集 mv create world_resource normal # 设置进入规则 mvtp world_survival常见的规划方式是world_survival生存主城所有玩家初始进入体验原版生存。world_creative创造建筑区拥有创造权限的玩家进入后自由建造。world_resource周期性重置的资源世界避免主世界被采空。每个世界的游戏模式可以单独设置# 将 world_creative 设置为创造模式 /conf world_creative gamemode creative # 禁止在创造世界掉落物品 /conf world_creative allow-item-drop false通过这种拆分方式生存玩家的家不会被创造模式玩家破坏创造玩家的建筑也不会影响生存世界的生态。6.2 权限管理用 LuckPerms 分配身份多世界搭建好之后需要设置不同玩家进入不同世界的权限。这里推荐 LuckPerms它支持组继承、临时权限、前缀后缀、多世界权限等非常强大。安装 LuckPerms 后创建两个用户组# 创建生存玩家组 lp creategroup survival # 创建创造建筑师组 lp creategroup builder # 给生存组分配进入生存世界的权限 lp group survival permission set multiverse.access.world_survival # 给创造组分配进入创造世界的权限 lp group builder permission set multiverse.access.world_creative # 设置前缀 lp group survival prefix 7[生存] 100 lp group builder prefix b[建筑师] 100给玩家分配组lp user Steve parent add survival lp user Alex parent add builder有了权限系统你才能做到“普通玩家只能进生存世界建筑师可以进创造世界”而不是所有人都能随意切换模式。6.3 领地保护用 GriefPrevention 防止熊孩子纯净生存服务器最大的敌人不是怪物而是熊孩子。GriefPrevention 是非常成熟的领地保护插件玩家可以通过金铲子划地圈出自己的领地范围领地上的方块不会被其他人破坏。基础用法# 玩家手持金铲子左键选定第一个点右键选定第二个点 # 然后用命令创建领地 /createclaim # 查看当前领地信息 /claimlist # 将指定玩家添加为合作者 /trust Steve在创造建筑区可以配合 WorldEdit 进行批量建设。但注意WorldEdit 的权限必须严格控制只给建筑师组不能给普通玩家否则会出现大面积快速破坏的恶性事件。6.4 生存经济与公共建设既然服务器理念是“创造我们的世界”那么可以引入一个简单的经济系统让社区建设有投入、有产出。轻量级的做法是安装 EssentialsX 或 CMI提供基础经济、家传送、商店等功能。# 给玩家发放启动资金 /manuadd Steve money 1000 # 或者通过 EssentialsX 的命令 /money give Steve 1000公共资源的思路是在主城附近规划一个公共箱子商店玩家可以把打到的材料按市场价卖给服务器也可以从服务器仓库购买建筑材料。这种方式比强制“共产”更可持续因为它尊重了玩家的个体劳动同时把公共建设所需的资源汇集起来。7. 运行验证与效果检查配置全部完成后不能直接认为“开服成功”还需要从玩家视角做一次完整验证。7.1 Java 版玩家验证在 Minecraft Java 版客户端中选择“多人游戏”添加服务器地址填写你的服务器IP:25565如果服务器有域名可以直接填域名。进入后你应该能看到世界正常生成玩家可以移动、破坏方块、打开背包。7.2 基岩版玩家验证打开手机版《我的世界》进入“服务器”选项卡选择“添加外部服务器”地址填写你的服务器IP端口填写19132注意基岩版客户端添加服务器时端口默认是 19132而不是 25565。很多教程不强调这一点导致基岩版玩家一直连不上。如果一切正常基岩版玩家进入服务器后聊天列表里会显示带.前缀的名字比如.NightMare。此时 Java 版玩家和基岩版玩家已经在同一个世界中了。7.3 验证命令在服务器控制台执行# 查看当前在线玩家列表 list # 查看服务器 TPS判断是否卡顿 tps如果 TPS 稳定在 19 到 20 之间说明服务器运行正常。如果长期低于 15说明服务器压力过大需要优化实体数量或升级配置。7.4 性能监控在 Paper 服务端中可以使用spark插件进行性能诊断# 启动采样 /spark profiler start # 等待几分钟后停止并查看报告 /spark profiler stopSpark 会生成一份性能报告详细列出 CPU 占用最高的区块、实体、插件这是排查卡顿最有效的工具。8. 常见问题与排查思路搭建跨版本服务器时以下问题出现频率最高。建议收藏本文遇到问题时按表格逐一排查。问题现象可能原因排查方式解决方案Java 版玩家提示“无法连接”25565 端口未放行或服务端未启动检查端口监听ss -lntp检查云安全组放行 TCP 25565确认服务端处于运行状态基岩版玩家提示“无法连接”19132 UDP 端口未放行检查 UDP 端口ss -lunp检查安全组放行 UDP 19132基岩版玩家进入后闪退Geyser 配置的 remote 端口不正确查看 Geyser 日志确认remote.port与server-port一致基岩版玩家被拒绝进入online-modetrue 或 Floodgate 未安装查看服务端日志中的 Auth 提示设置online-modefalse安装 Floodgate玩家名字重复导致权限混乱基岩版玩家与离线 Java 玩家同名检查 Floodgate 生成的 UUID启用 Floodgate 用户名前缀或仅允许正版 Java 玩家服务器突然卡顿、TPS 暴跌实体数量过多或某个插件出问题使用 spark 采样清理实体调整怪物上限禁用问题插件创造世界能进但无法飞行权限组未分配飞行权限检查 LuckPerms 中的玩家权限给 builder 组添加essentials.fly权限重启后世界数据丢失启动脚本未指定世界名检查 server.properties 中 level-name保持 multi-world 插件的世界生成一致9. 最佳实践与治理建议技术配置只是开服的第一步服务器能走多远更多取决于治理方式。以下是给所有想开“共同建设”类社区服的站长的几条经验。9.1 明确规则并用插件落地不要只把规则写在公告栏里。每一条规则都应该有对应的技术约束。比如“禁止破坏他人建筑”就应该配合 GriefPrevention 的领地保护而不是靠管理员事后回滚“禁止高频红石”就应该在 Paper 配置里限制红石更新频率。规则如果没有技术兜底最终一定会变成管理员的日常撕扯。9.2 备份策略服务器数据是无价的必须建立自动备份机制。一个简单的方案是每天凌晨用 cron 任务将服务端目录打成 tar 包并保留最近 7 天的备份#!/bin/bash # 备份脚本示例/opt/mc/backup.sh DATE$(date %Y%m%d_%H%M%S) cd /opt/mc tar -zcf /opt/mc/backups/wenyu_$DATE.tar.gz wenyu # 删除 7 天前的备份 find /opt/mc/backups -name *.tar.gz -mtime 7 -delete然后加入 crontabcrontab -e # 每天凌晨 3 点执行备份 0 3 * * * /bin/bash /opt/mc/backup.sh恢复备份时只需要停止服务端把 tar 包解压回原目录再启动服务端即可。9.3 白名单与申请制对于强调“共同建设”的社区服不建议完全开放注册。可以设置白名单模式玩家需要填写申请表格由管理员在后台审核后加入白名单。这样能有效过滤掉动机不纯的破坏者。Paper 服务端自带白名单功能# server.properties white-listtrue然后在控制台添加白名单成员whitelist add Steve whitelist add Alex9.4 投票与重大决策社区服的管理权不能只掌握在一个人手里。建议搭建一个简单的投票机制在 QQ 群、微信群或 Discord 中发起投票所有玩家参与决定下一轮资源世界重置时间、新建筑区域规划、公共设施优先级等事项。管理员负责执行投票结果而不是替玩家做决定。这种方式让“创造我们的世界”从口号变成了实际的治理流程。9.5 源码和文档管理如果你不是一个人维护服务器建议建立简单的知识库记录所有插件的配置、服务器版本、每次变更的内容。这样即使某个管理员离开服务器也不会因为“只有他会配置”而陷入停滞。哪怕只是在一个 Markdown 文件里记录几条命令长期坚持下来都非常有价值。10. 总结与后续实践建议写到这里这篇文章已经覆盖了从零搭建支持 Java 版和基岩版玩家的纯净生存、创造双模式服务器的完整路径。核心结论可以归纳为三点第一跨版本联机不是魔法而是 Geyser 负责协议翻译、Floodgate 负责身份验证的成熟方案配置难度不高但端口、验证、权限这三个环节最容易出问题。第二“纯净”不等于“只有原版功能”。通过多世界插件、权限插件和领地保护插件生存和创造可以在同一台服务器上和谐共存关键在于把玩法区域拆开、把权限边界分清楚。第三社区服的长期运营靠的是规则 技术兜底。白名单、备份、投票治理、公共资源库这些机制比一次热血的“开服宣言”重要得多。如果你正准备开服建议先按照文中第 5 章和第 6 章的操作在本地或云服务器上跑通一个最小环境再逐步添加插件和完善玩法机制。不要一开始就追求功能大而全先让几个玩家能稳定进入、正常游戏再慢慢迭代。下一步值得深入学习的方向包括Geyser 的高级配置项比如传递 MOTD、皮肤映射优化、LuckPerms 的完整权限体系、Paper 服务端的调优参数以及如何用 Velocity 搭建跨服代理。这些都是社区服务器走向规模化时必经的技术环节。希望这篇教程能帮你少走一些弯路。如果你在配置过程中遇到了文中没有覆盖到的问题欢迎在评论区把报错日志和配置贴出来一起讨论。