ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

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

永不删档!离线可进 基岩JAVA互通 休闲养老 MC服务器搭建全指南

如果你厌倦了商业服务器的氪金、规则束缚和随时可能关服的焦虑,想和三五好友拥有一个真正属于自己的、永不删档的《我的世界》家园,那么搭建一个私人服务器是唯一且最佳的选择。但“自建服务器”听起来技术门槛很高?网上教程要么太旧,要么只讲单一版本,对于想实现基岩版(手机/平板)和Java版(电脑)玩家同服游玩支持离线登录(正版验证可选)、并且能长期稳定运行的休闲养老服,似乎总找不到一份完整、清晰的指南。

这篇文章要解决的,正是这个痛点。我将为你拆解一个基于GeyserMC + Floodgate + Paper的核心技术栈,它不仅完美实现了Java与基岩版的互通,还通过巧妙的配置,让没有正版账号的玩家也能轻松加入,真正做到“零门槛、永留存”。更重要的是,我会把搭建过程从“魔法咒语”变成可复现的清晰步骤,涵盖从服务器选购、环境配置、核心插件安装、互通设置、权限管理到日常维护的全流程。无论你是稍有Linux基础的管理员,还是完全零基础的MC爱好者,跟着本文操作,都能在2小时内拥有一个属于自己的、可长期“养老”的互通服务器。

1. 这篇文章真正要解决的问题:从“想拥有”到“真拥有”的落地之路

很多玩家对私人服务器的认知停留在“很复杂”、“需要很高配置”、“维护麻烦”的层面,导致迟迟不敢动手。实际上,随着MC服务端生态的成熟,搭建一个基础可用的服务器已经变得非常标准化。真正的难点和本文聚焦的核心,在于以下几个关键需求的同时满足

  1. Java与基岩版互通:这是最大的技术壁垒。Java版(如1.20.1)和基岩版(如1.20.80)使用完全不同的网络协议,无法直接连接。我们需要一个“翻译官”——GeyserMC,它能让基岩版玩家以Java版客户端的身份加入Java服务器。
  2. 离线登录(正版验证可选):为了最大限度降低好友的加入门槛,服务器需要支持“离线模式”(又称“盗版模式”)。但这会带来安全问题(任意ID登录)和皮肤显示问题。我们将使用Floodgate插件,它为离线登录的基岩版玩家提供安全的、带前缀的独立身份,并解决皮肤问题。
  3. 长期稳定与数据安全(永不删档):“养老服”的核心是数据的持久化。这意味着我们需要一个稳定的服务器环境、可靠的备份方案,以及避免使用实验性或不稳定的Mod/插件。本文将选择经过市场长期检验的Paper服务端和核心插件。
  4. 低门槛管理与休闲体验:服务器管理员不需要成为运维专家。我们将通过面板化工具(如Pterodactyl)或清晰的脚本,简化启动、备份、更新等操作。同时,通过配置基础的领地、经济、传送插件,营造一个轻松、互助的养老环境,而非硬核生存。

本文将围绕这四个核心目标,提供一套从零到一的完整解决方案。它不仅是一份操作手册,更是一份架构选择指南,告诉你每一步“为什么这么做”,以及“做错了会怎样”。

2. 基础概念与核心原理:理解互通服务器的“心脏”与“桥梁”

在开始动手前,理解几个核心组件的工作原理至关重要。这能帮助你在出现问题时,快速定位是“桥梁”断了,还是“心脏”停了。

组件角色核心作用类比
Minecraft Java版服务端 (如 Paper)服务器心脏运行游戏逻辑、处理方块更新、管理玩家数据、加载插件。所有游戏世界的核心规则都由它定义和执行。就像一台电脑的CPU和操作系统,负责所有的核心运算。
GeyserMC协议翻译官独立运行的服务(或插件),监听基岩版端口(默认19132)。当基岩版玩家连接时,Geyser会将其协议“翻译”成Java版协议,并作为一个“虚拟的Java版玩家”连接到Paper服务器。就像一个精通两国语言的同声传译,让说不同语言(协议)的人能互相沟通。
Floodgate身份管理与安全门卫运行在Geyser和Paper上的配套插件。它为通过Geyser连接的、非正版的基岩版玩家生成一个带有“前缀”(如*)的唯一、安全的Java版游戏ID,避免ID冲突和冒名顶替,并负责处理这些玩家的皮肤。就像为访客(离线基岩玩家)发放带有特殊标识的临时门禁卡,既允许进入,又便于识别和管理。
离线模式 (online-mode=false)登录验证开关server.properties中的关键配置。设为false时,服务器不会向Mojang官方验证正版账号,允许任意ID登录。这是实现非正版互通的前提,但也带来了安全风险,需配合Floodgate化解。关闭了小区的官方身份闸机,允许任何人报名字进入,需要自己的保安(Floodgate)来登记管理。

核心工作流程

  1. 基岩版玩家在游戏内添加服务器,地址填写你的服务器IP和Geyser端口(如19132)。
  2. 连接到达服务器,被Geyser进程接收。
  3. Geyser 根据配置,决定该玩家是使用正版Java账号(需付费)还是通过Floodgate生成的离线账号登录。
  4. Geyser 将玩家数据“翻译”后,以一个Java版玩家的身份,连接到Paper服务端。
  5. Paper 服务端像对待普通Java玩家一样处理该玩家的所有游戏行为。
  6. Floodgate 确保该离线玩家的ID在服务器内唯一,并为其加载皮肤。

理解了这个流程,后续的所有配置都将变得清晰。

3. 环境准备与前置条件

在下载任何jar文件之前,我们需要一个稳定、网络通畅的“家”来运行服务器。对于“永不删档”的目标,我不推荐用自己的电脑长期开服(电费、网络、稳定性都是问题)。租用一台云服务器是最佳选择。

3.1 服务器选购建议

  • 厂商:国内外主流云厂商均可,如腾讯云、阿里云、华为云,或海外Vultr、Linode。选择延迟对你和好友最低的。
  • 配置:对于10人以下的纯插件休闲服,以下配置足够:
    • CPU:2核
    • 内存:4GB(关键!Paper和Geyser运行需要内存,推荐4G起步)
    • 硬盘:40GB SSD(系统+游戏世界+备份)
    • 带宽:3-5Mbps公网带宽(按量计费更划算,因为流量消耗不大)
    • 系统Ubuntu 22.04 LTSDebian 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.txtserver.properties等文件。

# 5. 同意 Minecraft EULA sudo -u minecraft nano eula.txt # 将 `eula=false` 改为 `eula=true`,然后按 Ctrl+X, 输入 Y, 回车保存。 # 6. 修改服务器基本属性 sudo -u minecraft nano server.properties

找到并修改以下关键行:

server-port=25565 # Java版端口,默认即可 online-mode=false # 必须改为false,才能允许离线登录和Geyser工作 max-players=20 # 最大玩家数 motd=A Never-Delete & Cross-Platform Server # 服务器描述 view-distance=10 # 视距,降低可节省资源

保存并退出。

阶段二:安装并配置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 # 看到提示后,可以按Ctrl+C停止。它会生成 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”” 表示启动成功。 # 按 Ctrl+A,然后按 D 可以退出screen会话,让服务器在后台运行。

5. 连接测试:验证Java与基岩版互通

现在,激动人心的时刻到了,让我们测试服务器是否工作。

5.1 Java版玩家连接

  1. 启动你的Minecraft Java版客户端(版本需与Paper服务端匹配,如1.20.4)。
  2. 进入“多人游戏”,点击“添加服务器”。
  3. 服务器地址填写:你的服务器公网IP:25565(如果Java端口是默认的25565,可省略:25565)。
  4. 点击“完成”并连接。你应该能成功进入服务器。

5.2 基岩版玩家连接(重点测试)

  1. 在手机或平板上启动基岩版Minecraft(版本最好与Java版接近)。
  2. 在“游戏”主界面,点击“播放”。
  3. 切换到“服务器”标签页,点击“添加服务器”。
  4. 填写信息:
    • 服务器名称: 随意,如“我们的养老服”
    • 服务器地址: 你的服务器公网IP
    • 端口19132(这是Geyser监听的UDP端口)
  5. 点击“保存”然后连接。

成功标志

  • 基岩版玩家成功进入游戏世界。
  • 在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.addressport正确,且auth-typefloodgate
3. 确认online-mode=false
基岩版玩家能连接,但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.jarplugins/下,重启Paper。
2. 重新生成密钥并确保两边同步:删除旧的key.pem,在Geyser目录重新运行java -jar floodgate-keygen.jar,并复制到Paper的插件目录。
服务器运行一段时间后卡顿或崩溃1. 内存不足。
2. 世界文件过大或实体过多。
3. 某个插件有内存泄漏。
1. 使用htopfree -h命令查看内存使用情况。
2. 使用Paper自带的timings命令分析性能。
1. 在启动脚本中增加-Xmx参数(如-Xmx4G),但不要超过服务器总内存的80%。
2. 定期重启服务器(可写定时任务)。
3. 使用/kill @e[type=item]清理掉落物,安装ClearLag类插件。
玩家数据(背包、家园)丢失1. 非正常关闭服务器导致数据未保存。
2. 插件配置文件错误。
1. 检查服务器关闭日志。
2. 检查核心数据插件(如EssentialsX)的配置文件。
【重中之重】建立定期备份机制!

7. 进阶配置与“养老”生态搭建

基础互通实现后,我们可以着手打造舒适的“养老”环境。

7.1 必备插件推荐与安装

将下载的.jar文件放入/opt/minecraft/server/plugins/目录,重启Paper服务器即可。

  1. EssentialsX:瑞士军刀插件。提供基础命令(/home, /tpa, /spawn)、经济系统、物品修复等。
  2. LuckPerms:最强大的权限管理插件。通过它精细控制玩家能使用哪些命令。
  3. WorldEdit/WorldGuard:如果你是建筑师,WorldEdit必不可少。WorldGuard可以保护领地。
  4. CoreProtect:数据记录与回滚。谁破坏了方块、偷了箱子,一查便知,是维持秩序的利器。
  5. Plan:性能分析插件。生成网页报告,监控服务器TPS、实体数量、玩家在线时间等。
  6. 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 2>&1

7.3 权限与领地基础设置(使用LuckPerms和GriefPrevention)

  1. 安装GriefPrevention:一个简单易用的领地插件。
  2. 设置初始权限:通过LuckPerms给默认组(default)基础权限。
    # 在游戏内或控制台执行 /lp group default permission set essentials.sethome /lp group default permission set essentials.home /lp group default permission set griefprevention.claim
  3. 告知玩家:教会好友如何使用木棍圈地(/claim),如何设置家(/sethome,/home)。

8. 日常维护与最佳实践

一个稳定的养老服离不开细心的维护。

  1. 定期重启:每周计划性重启一次服务器,释放内存。可以通过Crontab定时执行stop.shstart.sh
  2. 监控日志:偶尔使用screen -r mc_paper查看有无异常错误刷屏。
  3. 谨慎更新:更新Paper、Geyser、Floodgate或插件前,务必先完整备份。并在测试环境验证后再应用到生产服。
  4. 社区规则:与好友共同制定简单的社区规则,比如主城附近禁止圈地、公共农场随用随补等,良好的氛围比任何插件都重要。
  5. 资源管理:使用Plan插件定期查看性能报告,如果发现某个维度(如下界)实体过多,可以定期重置或清理。

至此,一个支持Java/基岩互通、离线可进、数据安全、易于管理的“永不删档”休闲养老MC服务器就全部搭建和配置完成了。从技术选型到安全备份,每一个环节都是为了“长期稳定”这个目标服务。它不再是一个遥不可及的梦想,而是一个你可以完全掌控的数字化家园。现在,就去邀请你的好友,开始你们的养老建造之旅吧。如果在实践中遇到新的问题,不妨回到本文的排查思路部分,或者深入阅读相关插件的官方文档,那里面藏着更多强大的功能等待你去发现。

返回列表