尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基于GeyserMC与Floodgate实现Minecraft Java与基岩版互通服务器搭建指南

基于GeyserMC与Floodgate实现Minecraft Java与基岩版互通服务器搭建指南 永不删档离线可进 基岩JAVA互通 休闲养老 MC服务器搭建全指南如果你厌倦了商业服务器的氪金、规则束缚和随时可能关服的焦虑想和三五好友拥有一个真正属于自己的、永不删档的《我的世界》家园那么搭建一个私人服务器是唯一且最佳的选择。但“自建服务器”听起来技术门槛很高网上教程要么太旧要么只讲单一版本对于想实现基岩版手机/平板和Java版电脑玩家同服游玩、支持离线登录正版验证可选、并且能长期稳定运行的休闲养老服似乎总找不到一份完整、清晰的指南。这篇文章要解决的正是这个痛点。我将为你拆解一个基于GeyserMC Floodgate Paper的核心技术栈它不仅完美实现了Java与基岩版的互通还通过巧妙的配置让没有正版账号的玩家也能轻松加入真正做到“零门槛、永留存”。更重要的是我会把搭建过程从“魔法咒语”变成可复现的清晰步骤涵盖从服务器选购、环境配置、核心插件安装、互通设置、权限管理到日常维护的全流程。无论你是稍有Linux基础的管理员还是完全零基础的MC爱好者跟着本文操作都能在2小时内拥有一个属于自己的、可长期“养老”的互通服务器。1. 这篇文章真正要解决的问题从“想拥有”到“真拥有”的落地之路很多玩家对私人服务器的认知停留在“很复杂”、“需要很高配置”、“维护麻烦”的层面导致迟迟不敢动手。实际上随着MC服务端生态的成熟搭建一个基础可用的服务器已经变得非常标准化。真正的难点和本文聚焦的核心在于以下几个关键需求的同时满足Java与基岩版互通这是最大的技术壁垒。Java版如1.20.1和基岩版如1.20.80使用完全不同的网络协议无法直接连接。我们需要一个“翻译官”——GeyserMC它能让基岩版玩家以Java版客户端的身份加入Java服务器。离线登录正版验证可选为了最大限度降低好友的加入门槛服务器需要支持“离线模式”又称“盗版模式”。但这会带来安全问题任意ID登录和皮肤显示问题。我们将使用Floodgate插件它为离线登录的基岩版玩家提供安全的、带前缀的独立身份并解决皮肤问题。长期稳定与数据安全永不删档“养老服”的核心是数据的持久化。这意味着我们需要一个稳定的服务器环境、可靠的备份方案以及避免使用实验性或不稳定的Mod/插件。本文将选择经过市场长期检验的Paper服务端和核心插件。低门槛管理与休闲体验服务器管理员不需要成为运维专家。我们将通过面板化工具如Pterodactyl或清晰的脚本简化启动、备份、更新等操作。同时通过配置基础的领地、经济、传送插件营造一个轻松、互助的养老环境而非硬核生存。本文将围绕这四个核心目标提供一套从零到一的完整解决方案。它不仅是一份操作手册更是一份架构选择指南告诉你每一步“为什么这么做”以及“做错了会怎样”。2. 基础概念与核心原理理解互通服务器的“心脏”与“桥梁”在开始动手前理解几个核心组件的工作原理至关重要。这能帮助你在出现问题时快速定位是“桥梁”断了还是“心脏”停了。组件角色核心作用类比Minecraft Java版服务端 (如 Paper)服务器心脏运行游戏逻辑、处理方块更新、管理玩家数据、加载插件。所有游戏世界的核心规则都由它定义和执行。就像一台电脑的CPU和操作系统负责所有的核心运算。GeyserMC协议翻译官独立运行的服务或插件监听基岩版端口默认19132。当基岩版玩家连接时Geyser会将其协议“翻译”成Java版协议并作为一个“虚拟的Java版玩家”连接到Paper服务器。就像一个精通两国语言的同声传译让说不同语言协议的人能互相沟通。Floodgate身份管理与安全门卫运行在Geyser和Paper上的配套插件。它为通过Geyser连接的、非正版的基岩版玩家生成一个带有“前缀”如*的唯一、安全的Java版游戏ID避免ID冲突和冒名顶替并负责处理这些玩家的皮肤。就像为访客离线基岩玩家发放带有特殊标识的临时门禁卡既允许进入又便于识别和管理。离线模式 (online-modefalse)登录验证开关在server.properties中的关键配置。设为false时服务器不会向Mojang官方验证正版账号允许任意ID登录。这是实现非正版互通的前提但也带来了安全风险需配合Floodgate化解。关闭了小区的官方身份闸机允许任何人报名字进入需要自己的保安Floodgate来登记管理。核心工作流程基岩版玩家在游戏内添加服务器地址填写你的服务器IP和Geyser端口如19132。连接到达服务器被Geyser进程接收。Geyser 根据配置决定该玩家是使用正版Java账号需付费还是通过Floodgate生成的离线账号登录。Geyser 将玩家数据“翻译”后以一个Java版玩家的身份连接到Paper服务端。Paper 服务端像对待普通Java玩家一样处理该玩家的所有游戏行为。Floodgate 确保该离线玩家的ID在服务器内唯一并为其加载皮肤。理解了这个流程后续的所有配置都将变得清晰。3. 环境准备与前置条件在下载任何jar文件之前我们需要一个稳定、网络通畅的“家”来运行服务器。对于“永不删档”的目标我不推荐用自己的电脑长期开服电费、网络、稳定性都是问题。租用一台云服务器是最佳选择。3.1 服务器选购建议厂商国内外主流云厂商均可如腾讯云、阿里云、华为云或海外Vultr、Linode。选择延迟对你和好友最低的。配置对于10人以下的纯插件休闲服以下配置足够CPU2核内存4GB关键Paper和Geyser运行需要内存推荐4G起步硬盘40GB SSD系统游戏世界备份带宽3-5Mbps公网带宽按量计费更划算因为流量消耗不大系统Ubuntu 22.04 LTS或Debian 11本文以Ubuntu为例安全组/防火墙需要在云服务器控制台开放以下端口25565(TCP) - Java版默认端口19132(UDP) - 基岩版默认端口Geyser使用22(TCP) - SSH管理端口已默认开放3.2 本地工具准备SSH连接工具如 PuTTY (Windows) 或 系统终端 (macOS/Linux)。文件传输工具如 WinSCP (Windows) 或 FileZilla (跨平台)用于上传下载文件。文本编辑器推荐 Notepad 或 VS Code用于编辑配置文件避免Windows记事本它可能修改文件编码。3.3 服务器系统初始化通过SSH连接后执行更新系统并安装Java运行环境。Minecraft 1.20 需要 Java 17 或更高版本。# 1. 更新软件包列表 sudo apt update sudo apt upgrade -y # 2. 安装 Java 17 (推荐使用OpenJDK) sudo apt install openjdk-17-jre-headless -y # 3. 验证安装 java -version # 输出应包含 “openjdk version “17.x.x”4. 核心流程拆解四步搭建互通服务器我们将整个过程分解为四个清晰的阶段确保每一步都可验证。阶段一搭建基础的Java版服务器Paper为服务器创建一个独立的工作目录并下载服务端。# 1. 创建一个专门的用户来运行MC服务提高安全性非必须但推荐 sudo adduser --system --home /opt/minecraft minecraft sudo usermod -a -G minecraft $USER # 将当前用户加入minecraft组 # 重新登录SSH会话使组生效或执行 newgrp minecraft # 2. 创建服务器目录并进入 sudo mkdir -p /opt/minecraft/server sudo chown -R minecraft:minecraft /opt/minecraft cd /opt/minecraft/server # 3. 下载 PaperMC 服务端 # 访问 https://papermc.io/downloads 获取最新版下载链接例如 1.20.4 # 使用 wget 下载请替换链接中的版本号 sudo -u minecraft wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/445/downloads/paper-1.20.4-445.jar -O paper.jar # 4. 首次运行生成配置文件 sudo -u minecraft java -Xms2G -Xmx2G -jar paper.jar --nogui # -Xms2G -Xmx2G 表示分配2GB内存请根据服务器实际内存调整预留至少1G给系统。 # 首次运行会失败并退出这是正常的目的是生成文件。首次运行后目录下会生成eula.txt、server.properties等文件。# 5. 同意 Minecraft EULA sudo -u minecraft nano eula.txt # 将 eulafalse 改为 eulatrue然后按 CtrlX, 输入 Y, 回车保存。 # 6. 修改服务器基本属性 sudo -u minecraft nano server.properties找到并修改以下关键行server-port25565 # Java版端口默认即可 online-modefalse # 必须改为false才能允许离线登录和Geyser工作 max-players20 # 最大玩家数 motdA Never-Delete Cross-Platform Server # 服务器描述 view-distance10 # 视距降低可节省资源保存并退出。阶段二安装并配置GeyserMC协议转换器Geyser可以以插件形式安装在Paper上也可以独立运行。独立运行更稳定资源隔离更好推荐此方式。# 1. 退出server目录为Geyser创建独立目录 cd /opt/minecraft sudo -u minecraft mkdir geyser cd geyser # 2. 下载Geyser独立版 # 访问 https://geysermc.org/download 获取最新独立版链接 sudo -u minecraft wget https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/standalone -O geyser.jar # 3. 首次运行Geyser生成配置 sudo -u minecraft java -jar geyser.jar # 看到提示后可以按CtrlC停止。它会生成 config.yml 等文件。现在配置Geyser让它知道我们的Java服务器在哪里。# 4. 编辑Geyser主配置 sudo -u minecraft nano config.yml找到并修改以下关键部分# Geyser 配置节 bedrock: # 基岩版玩家连接的地址和端口 address: 0.0.0.0 # 监听所有网络接口 port: 19132 # 基岩版默认端口 remote: # 要连接的Java服务器地址就是我们的Paper服务器 address: 127.0.0.1 # 因为Geyser和Paper在同一台机器用本地地址 port: 25565 # Paper服务器的端口 auth-type: floodgate # 关键使用floodgate验证方式 # Floodgate 配置节 floodgate-key-file: key.pem # 使用Floodgate密钥文件下一步会生成保存并退出。阶段三安装并配置Floodgate身份管理Floodgate需要两部分放在Geyser目录的密钥文件和放在Paper服务器plugins目录的插件。# 1. 为Geyser生成Floodgate密钥 cd /opt/minecraft/geyser sudo -u minecraft java -jar floodgate-keygen.jar # 运行后会生成一个 key.pem 文件。这就是 config.yml 中指定的密钥。 # 2. 在Paper服务器安装Floodgate插件 cd /opt/minecraft/server sudo -u minecraft mkdir -p plugins # 如果plugins目录不存在则创建 cd plugins # 3. 下载Floodgate插件 # 访问 https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/ 下载最新版 sudo -u minecraft wget https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/spigot/target/floodgate-spigot.jar -O floodgate.jar # 4. 将Geyser生成的密钥复制到Paper服务器的Floodgate配置目录 cd /opt/minecraft/server sudo -u minecraft mkdir -p plugins/floodgate sudo cp /opt/minecraft/geyser/key.pem /opt/minecraft/server/plugins/floodgate/ sudo chown minecraft:minecraft /opt/minecraft/server/plugins/floodgate/key.pem阶段四启动与验证现在所有组件都已就位。我们需要一个简单的方式来管理它们的启动和停止。# 1. 创建启动脚本 cd /opt/minecraft sudo -u minecraft nano start.sh将以下内容粘贴进去#!/bin/bash cd /opt/minecraft/server screen -S mc_paper -dm bash -c java -Xms3G -Xmx3G -jar paper.jar nogui echo “Paper服务器已启动在screen会话 ‘mc_paper’ 中。” cd /opt/minecraft/geyser screen -S mc_geyser -dm bash -c java -jar geyser.jar echo “Geyser服务器已启动在screen会话 ‘mc_geyser’ 中。” screen -ls echo “使用 ‘screen -r mc_paper‘ 查看Paper日志’screen -r mc_geyser‘ 查看Geyser日志。”保存后赋予执行权限sudo chmod x start.sh sudo chown minecraft:minecraft start.sh# 2. 创建停止脚本 sudo -u minecraft nano stop.sh#!/bin/bash screen -S mc_paper -X stuff “stop\n” echo “正在停止Paper服务器...” sleep 5 screen -S mc_geyser -X quit echo “已停止Geyser服务器。” screen -ls保存并赋权sudo chmod x stop.sh sudo chown minecraft:minecraft stop.sh# 3. 启动服务器 sudo -u minecraft ./start.sh # 4. 查看Paper服务器启动日志等待完成 sudo -u minecraft screen -r mc_paper # 看到类似 “Done (XX.XXXs)! For help, type “help”” 表示启动成功。 # 按 CtrlA然后按 D 可以退出screen会话让服务器在后台运行。5. 连接测试验证Java与基岩版互通现在激动人心的时刻到了让我们测试服务器是否工作。5.1 Java版玩家连接启动你的Minecraft Java版客户端版本需与Paper服务端匹配如1.20.4。进入“多人游戏”点击“添加服务器”。服务器地址填写你的服务器公网IP:25565如果Java端口是默认的25565可省略:25565。点击“完成”并连接。你应该能成功进入服务器。5.2 基岩版玩家连接重点测试在手机或平板上启动基岩版Minecraft版本最好与Java版接近。在“游戏”主界面点击“播放”。切换到“服务器”标签页点击“添加服务器”。填写信息服务器名称 随意如“我们的养老服”服务器地址 你的服务器公网IP端口19132(这是Geyser监听的UDP端口)点击“保存”然后连接。成功标志基岩版玩家成功进入游戏世界。在Java版玩家或服务器后台看到基岩版玩家的名字带有*前缀例如*Steve。这是Floodgate的标识表明该玩家是通过离线验证的基岩版玩家。基岩版玩家的皮肤正常显示。6. 常见问题与排查思路搭建过程很少一帆风顺。以下是几个最常见的问题及解决方法。问题现象可能原因排查方式解决方案Java版无法连接显示“连接超时”或“无法连接至服务器”1. 服务器防火墙/安全组未开放25565端口。2. Paper服务端未成功启动。1. 检查云服务商控制台的安全组规则。2. 执行screen -r mc_paper查看Paper日志是否有错误。1. 确保安全组入方向允许TCP 25565端口。2. 根据日志错误解决常见如EULA未同意、端口被占用。基岩版无法连接显示“无法连接至世界”1. 服务器防火墙/安全组未开放19132 UDP端口。2. Geyser未启动或配置错误。3. Paper的online-mode未设为false。1. 检查安全组是否开放UDP 19132。2. 执行screen -r mc_geyser查看Geyser日志。3. 检查server.properties。1. 开放UDP 19132端口。2. 核对Geyser的config.yml确保remote.address和port正确且auth-type为floodgate。3. 确认online-modefalse。基岩版玩家能连接但ID没有*前缀或皮肤是史蒂夫1. Floodgate插件未正确安装或加载。2. Geyser和Paper的Floodgate密钥不匹配。3. Paper服务器插件目录错误。1. 在Paper后台输入plugins命令查看Floodgate是否在列表内。2. 比较/opt/minecraft/geyser/key.pem和/opt/minecraft/server/plugins/floodgate/key.pem文件内容是否完全一致。3. 确认插件放在plugins目录而非子目录。1. 确保floodgate-spigot.jar在plugins/下重启Paper。2. 重新生成密钥并确保两边同步删除旧的key.pem在Geyser目录重新运行java -jar floodgate-keygen.jar并复制到Paper的插件目录。服务器运行一段时间后卡顿或崩溃1. 内存不足。2. 世界文件过大或实体过多。3. 某个插件有内存泄漏。1. 使用htop或free -h命令查看内存使用情况。2. 使用Paper自带的timings命令分析性能。1. 在启动脚本中增加-Xmx参数如-Xmx4G但不要超过服务器总内存的80%。2. 定期重启服务器可写定时任务。3. 使用/kill e[typeitem]清理掉落物安装ClearLag类插件。玩家数据背包、家园丢失1. 非正常关闭服务器导致数据未保存。2. 插件配置文件错误。1. 检查服务器关闭日志。2. 检查核心数据插件如EssentialsX的配置文件。【重中之重】建立定期备份机制7. 进阶配置与“养老”生态搭建基础互通实现后我们可以着手打造舒适的“养老”环境。7.1 必备插件推荐与安装将下载的.jar文件放入/opt/minecraft/server/plugins/目录重启Paper服务器即可。EssentialsX瑞士军刀插件。提供基础命令/home, /tpa, /spawn、经济系统、物品修复等。LuckPerms最强大的权限管理插件。通过它精细控制玩家能使用哪些命令。WorldEdit/WorldGuard如果你是建筑师WorldEdit必不可少。WorldGuard可以保护领地。CoreProtect数据记录与回滚。谁破坏了方块、偷了箱子一查便知是维持秩序的利器。Plan性能分析插件。生成网页报告监控服务器TPS、实体数量、玩家在线时间等。DiscordSRV如果你和好友使用Discord这个插件可以将游戏内聊天与Discord频道同步。7.2 自动化备份脚本实现“永不删档”的关键创建每日自动备份的脚本并保留最近7天的备份。cd /opt/minecraft sudo -u minecraft nano backup.sh#!/bin/bash BACKUP_DIR/opt/minecraft/backups SERVER_DIR/opt/minecraft/server DATE$(date %Y%m%d_%H%M%S) # 创建备份目录 mkdir -p $BACKUP_DIR # 1. 向服务器发送保存警告 screen -S mc_paper -X stuff “say 服务器即将进行每日备份可能会卡顿几秒…\n” sleep 5 screen -S mc_paper -X stuff “save-all\n” sleep 2 screen -S mc_paper -X stuff “save-off\n” # 2. 创建备份压缩包 tar -czf $BACKUP_DIR/backup_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end plugins/Essentials/userdata # 3. 重新开启自动保存 screen -S mc_paper -X stuff “save-on\n” screen -S mc_paper -X stuff “say 备份完成\n” # 4. 删除7天前的旧备份 find $BACKUP_DIR -name “backup_*.tar.gz” -mtime 7 -delete echo “Backup completed: backup_$DATE.tar.gz”保存并赋权然后添加到定时任务sudo chmod x backup.sh sudo chown minecraft:minecraft backup.sh # 编辑定时任务每天凌晨3点执行 sudo crontab -u minecraft -e # 在末尾添加一行 0 3 * * * /opt/minecraft/backup.sh /opt/minecraft/backup.log 217.3 权限与领地基础设置使用LuckPerms和GriefPrevention安装GriefPrevention一个简单易用的领地插件。设置初始权限通过LuckPerms给默认组(default)基础权限。# 在游戏内或控制台执行 /lp group default permission set essentials.sethome /lp group default permission set essentials.home /lp group default permission set griefprevention.claim告知玩家教会好友如何使用木棍圈地(/claim)如何设置家(/sethome,/home)。8. 日常维护与最佳实践一个稳定的养老服离不开细心的维护。定期重启每周计划性重启一次服务器释放内存。可以通过Crontab定时执行stop.sh和start.sh。监控日志偶尔使用screen -r mc_paper查看有无异常错误刷屏。谨慎更新更新Paper、Geyser、Floodgate或插件前务必先完整备份。并在测试环境验证后再应用到生产服。社区规则与好友共同制定简单的社区规则比如主城附近禁止圈地、公共农场随用随补等良好的氛围比任何插件都重要。资源管理使用Plan插件定期查看性能报告如果发现某个维度如下界实体过多可以定期重置或清理。至此一个支持Java/基岩互通、离线可进、数据安全、易于管理的“永不删档”休闲养老MC服务器就全部搭建和配置完成了。从技术选型到安全备份每一个环节都是为了“长期稳定”这个目标服务。它不再是一个遥不可及的梦想而是一个你可以完全掌控的数字化家园。现在就去邀请你的好友开始你们的养老建造之旅吧。如果在实践中遇到新的问题不妨回到本文的排查思路部分或者深入阅读相关插件的官方文档那里面藏着更多强大的功能等待你去发现。
返回列表