☰
自建Minecraft服务器教程:Java版与基岩版跨平台联机全解析
2026/10/10 1:03:11 网站建设 项目流程

1. 为什么自建 Minecraft 服务器:从“文域”说起

1.1 一个真实的痛点

和朋友一起玩《我的世界》,最头疼的问题往往不是游戏本身,而是“怎么稳定地联机”。

官方领域服(Realms)虽然省心,但人数上限低、玩法受限,想要开放给更多人一起玩并不方便。自己用手机和电脑跨端联机更麻烦:Java 版走的是 Java 协议,基岩版走的是基岩协议,两个版本默认不相通。很多第三方服务器虽然能进,但玩法臃肿,加进一个服务器之后满屏都是氪金项目、圈地插件和花里胡哨的 RPG 系统,反而找不到最初“几个人一起创造世界”的感觉。

于是,越来越多玩家开始尝试自己搭建 Minecraft 服务器。本文介绍的「文域服务器」就是这样一类社区项目:主打纯净生存与创造两种模式,同时支持 Java 版和基岩版玩家进入,让不同设备上的伙伴可以在同一个世界里协作、建设、分享资源。

1.2 “文域”的共享理念

“文域”这个名字更像一种服务器规则的概括,而不是某个具体插件或商业产品。它的核心理念是:所有人共建共享,公共设施归集体所有,资源按需求分配,禁止破坏他人劳动成果。这种模式在很多 Minecraft 社区里也被称为“共享生存服”或“公共建设服”。

从技术角度看,要实现这样一座服务器,并不需要懂多高深的编程。核心需要解决三件事:

  • 跨平台互通,让 Java 版电脑玩家和基岩版手机玩家能进同一个世界;
  • 生存世界与创造世界隔离,保证不同玩法的玩家互不干扰;
  • 资源分享与权限管理,让共享机制有章可循,不靠自觉硬撑。

这三件事都有成熟的开源方案,下面会逐步拆解。

1.3 本文你可以掌握什么

这是一篇完整的 Minecraft 服务器搭建教程,整个流程基于 Java 生态展开,适合有一定电脑操作基础、想运营小规模社区服务器的玩家阅读。读完本文,你将能够:

  • 搭建 Paper 服务端,跑起一个纯净生存服务器;
  • 安装 Geyser 与 Floodgate,让基岩版手机玩家无缝接入;
  • 使用 Multiverse-Core 划分生存世界和创造世界;
  • 使用 LuckPerms 管理玩家权限;
  • 配置自动备份、后台运行和常见故障排查方法。

整个内容会从环境准备一直讲到运维落地,代码和命令均可直接复制修改后使用。

2. 总体架构与核心组件

2.1 服务端架构速览

先来看一眼整体架构,理解各个组件之间的关系:

Java 版玩家(电脑) ──TCP 25565──► Paper 服务端(Minecraft Java 服务端) │ 基岩版玩家(手机) ──UDP 19132──► Geyser 插件 ──► Paper 服务端
  • Paper是 Java 版服务端核心,负责世界生成、实体逻辑、方块变化,监听 TCP 25565 端口。
  • Geyser是一个协议桥接插件,监听 UDP 19132 端口,把基岩版客户端的数据转换成 Java 版协议,再转发给 Paper。
  • Floodgate是 Geyser 的配套插件,负责处理基岩版玩家的 UUID 和登录名,解决基岩版玩家没有 Java 正版账号的问题。

简而言之,Geyser 解决“协议不通”,Floodgate 解决“账号不通”。

2.2 为什么选择 Paper

搭建 Java 版服务器,服务端核心有很多选择:

  • Vanilla:官方原版服务端,最纯净,但性能一般,插件支持有限;
  • Spigot / Bukkit:老牌插件服务端,生态成熟,但性能和稳定性弱于 Paper;
  • Paper:基于 Spigot 的分支,优化了大量性能问题,是目前社区最主流的服务端之一;
  • Fabric / Forge:偏向模组玩法,不适合本文这种“纯净生存 + 插件管理”的需求。

选择 Paper 的理由很直接:性能好、插件生态丰富、兼容原版玩法,而且安装非常简单,适合新手。如果你的目标只是完全原版体验,也可以直接用 Vanilla,但不推荐,因为后续接基岩版和管理权限会麻烦很多。

2.3 核心组件清单

组件作用备注
PaperJava 版服务端核心服务器的基础
Geyser-Spigot基岩版协议桥接让手机玩家能连上 Java 服
Floodgate基岩版账号映射配合 Geyser 使用
Multiverse-Core多世界管理生存/创造世界分离
LuckPerms权限管理分组、权限控制
EssentialsX基础管理指令传送、家、warp、聊天格式
CoreProtect方块日志与回滚防止破坏和纠纷

这些插件不会改变原版合成表、掉落物和数值,只会增强服务端的管理能力,仍然符合“纯净”的定位。

2.4 生存与创造如何共存

“纯净生存”和“创造模式”并不是互斥的。通过 Multiverse 创建多个世界,并给每个世界设置独立的游戏模式,就可以在一台服务器里同时提供两种体验:

  • 生存世界:默认游戏模式为survival,玩家正常收集资源、打怪、生存;
  • 创造世界:默认游戏模式为creative,玩家可以飞行、使用无限方块建造;
  • 两个世界通过传送指令或传送门切换。

这种设计也很贴合“文域服务器”的目标:生存世界负责积累资源和协作生产,创造世界集中展示建筑成果。

3. 环境准备与版本选择

3.1 操作系统与硬件要求

服务器可以跑在很多环境上:

  • 云服务器:推荐,有公网 IP,稳定在线;
  • 家里的 Linux 主机或老电脑:适合小圈子联机;
  • 本地 Windows / macOS 电脑:仅限内网测试。

如果面向公网开放,建议配置不低于 2 核 CPU、4G 内存、3Mbps 以上带宽。如果只是本机或内网几个人测试,1 核 2G 也能带动,但在线人数超过 5 人时会出现明显卡顿。

操作系统方面,本文示例以 Linux(Ubuntu / Debian / CentOS)为主,Windows 的操作逻辑类似,只是命令不同。

3.2 Java 版本选择与安装

Minecraft Java 版服务端就是一个 Java 程序,所以必须安装 JDK 或 JRE。

版本对应关系如下:

  • Minecraft 1.18 及以下:Java 17 即可;
  • Minecraft 1.20.x 系列:通常要求 Java 17 或更高;
  • Minecraft 1.21 系列:推荐 Java 21。

先检查系统当前 Java 版本:

java -version

如果未安装或版本过低,以 Ubuntu/Debian 为例安装 OpenJDK 17:

sudo apt update sudo apt install openjdk-17-jre-headless

CentOS/RHEL 使用 yum:

sudo yum install java-17-openjdk

安装完成后再次执行java -version确认版本。

3.3 服务端核心下载

Paper 的下载页面会提供不同 Minecraft 版本对应的构建文件。本文以 Paper 1.20.x 为例演示,实际版本请根据你的需求选择。

在服务器上创建目录并下载:

mkdir -p /opt/mc-server cd /opt/mc-server # 这里的下载地址以你从 Paper 官网构建页获取的实际地址为准 wget https://example.com/paper-1.20.4.jar

注意:Paper 小版本迭代很快,下载时认准官方构建页即可,文件名中的版本号以实际文件为准。

3.4 目录规划

建议创建独立系统用户来运行 Minecraft 服务端,避免权限过大:

sudo useradd -r -s /bin/false minecraft sudo mkdir /opt/mc-server sudo chown minecraft:minecraft /opt/mc-server

后续所有操作都在/opt/mc-server目录下进行,这样备份、迁移、权限管理都方便。不要直接用 root 运行服务端,服务器一旦被入侵,root 权限会造成很大风险。

4. 搭建纯净生存服务器:从启动到首次连接

4.1 初始化 eula.txt

Minecraft 服务端首次运行前需要接受 EULA 协议。在/opt/mc-server目录下手动创建eula.txt:

eula=true

如果不创建,启动一次后服务端也会自动生成一个eula.txt文件,只是默认值是eula=false,需要手动改成true才能继续。

4.2 server.properties 核心配置

server.properties是服务器最关键的配置文件,决定了端口、游戏模式、玩家上限等。以下是一个适合“纯净生存”的配置示例:

# Java 版连接端口,默认 25565 server-port=25565 # 服务器 MOTD,显示在多人游戏列表 motd=文域服务器 - 纯净生存与创造 # 默认游戏模式:survival=生存,creative=创造,adventure=冒险 gamemode=survival # 难度:peaceful/easy/normal/hard difficulty=normal # 最大在线玩家数 max-players=20 # 是否开启正版验证,建议 true online-mode=true # 出生点保护半径,防止新人进入时被破坏 spawn-protection=16 # 允许飞行 allow-flight=true # 是否启用下界/末地 allow-nether=true # 视距 view-distance=8 # 是否开启白名单,后续可按需开启 white-list=false

这里需要重点说明online-mode:正版服开启true,能有效防止盗版账号冒名顶替。不过开启正版验证后,基岩版玩家接入需要配合 Floodgate 才能正常进入,后面第 5 节会详细讲。

4.3 编写启动脚本

为了避免每次输入一长串 Java 命令,建议写一个start.sh:

#!/bin/bash cd /opt/mc-server java -Xms1G -Xmx2G -jar paper-1.20.4.jar nogui

给脚本加执行权限并启动:

chmod +x start.sh ./start.sh

第一次启动会生成世界,等待控制台输出Done即为成功。类似日志如下:

[Server thread/INFO]: Done (5.231s)! For help, type "help"

4.4 连接与基础验证

Java 版玩家打开游戏,进入多人游戏,添加服务器地址:

你的服务器IP:25565

就能在服务器列表看到 MOTD。进入游戏后,在控制台输入以下命令验证:

list

会返回当前在线玩家数量。输入:

say 欢迎来到文域服务器

可以发送一条全服公告。

4.5 保持纯净:插件选择原则

“纯净”不代表不能装任何插件,而是不能改变原版玩法和数值。建议安装以下基础管理插件:

  • EssentialsX:传送、家、warp、聊天格式;
  • LuckPerms:权限管理;
  • CoreProtect:方块日志和防破坏回滚。

这些插件不会影响原版体验,但能显著提升管理效率,也是后面实现资源共享和权限隔离的基础。

5. 基岩版接入:让手机玩家加入文域

5.1 Geyser 与 Floodgate 原理

许多玩家使用手机上的《我的世界》基岩版,但基岩版客户端无法直接连接 Java 版服务器,因为端口和通信协议完全不同。Geyser 相当于一个“协议翻译层”:

  • 它监听 UDP 19132 端口;
  • 收到基岩版客户端的连接后,把数据转换成 Java 版协议;
  • 再交给 Paper 服务端处理。

Floodgate 则解决账号问题:当服务器开启正版验证时,基岩版玩家没有 Java 正版账号,默认会被拒绝。Floodgate 允许基岩版玩家使用自己的基岩版账号自动通过校验,并生成一套稳定的 UUID。

5.2 安装插件

将下载好的Geyser-Spigot.jar和floodgate-spigot.jar放入/opt/mc-server/plugins/目录,然后重启服务器。

cd /opt/mc-server/plugins # 将下载的文件放到这里 ls # Geyser-Spigot.jar floodgate-spigot.jar ./../start.sh

重启后,插件目录下会生成:

  • plugins/Geyser-Spigot/config.yml:Geyser 配置文件;
  • plugins/floodgate/key.pem:Floodgate 密钥文件。

Geyser 与 Floodgate 必须共用同一份密钥,官方插件默认会自动配置好,不需要手动干预。

5.3 Geyser 配置要点

打开plugins/Geyser-Spigot/config.yml,核心配置如下:

bedrock: # 基岩版监听端口 port: 19132 # 是否启用代理协议,单机部署一般不需要 enable-proxy-protocol: false remote: # 上游 Java 版服务端地址,本机部署就是 127.0.0.1 address: 127.0.0.1 port: 25565 # 认证方式:使用 floodgate 表示基岩版玩家由 Floodgate 处理 auth-type: floodgate

如果 Paper 和 Geyser 部署在同一台机器上,remote.address保持127.0.0.1即可。如果分开部署,改为 Paper 服务端的内网 IP。

5.4 Floodgate 配置注意

Floodgate 安装后无需过多配置,但有两个注意点:

  • 确保server.properties中online-mode=true,Floodgate 才能正常发挥账号映射作用;
  • 基岩版玩家进入游戏后,默认名字会带一个点前缀(例如.Steve),表示来自基岩版。这是 Floodgate 的默认行为,可以在配置中调整前缀显示,但本文不做展开。

5.5 手机端连接方法

手机打开《我的世界》基岩版,选择“服务器” -> “添加服务器”,填写:

  • 服务器地址:你的服务器公网 IP
  • 端口:19132

注意:基岩版连接必须使用 UDP 19132 端口,不要填 25565。如果无法连接,优先检查云服务器安全组是否放行 UDP 19132。

6. 生存与创造世界共存:多世界与权限管理

6.1 为什么要分世界

如果生存玩家可以在建筑区域随意破坏,服务器很快会乱套。把生存和创造分成两个世界,是公共服务器的常见做法:

  • 生存世界:普通玩家活动区,保留原版生存体验;
  • 创造世界:建筑师和创作者使用,拥有无限方块;
  • 两者之间通过传送指令连接,互不干扰。

这样既保证生存玩家的游戏乐趣,又让创造玩家有发挥空间。

6.2 安装 Multiverse-Core 并创建世界

将Multiverse-Core.jar放入plugins目录并重启服务器,然后在控制台创建两个世界:

mv create world_survival normal mv create world_build normal

第一条命令创建普通世界world_survival,第二条创建创造世界world_build。normal表示普通主世界环境,不含下界和末地。创建完成后设置主世界:

mv set spawn world_survival

再单独把world_build设置为创造模式:

mv modify set gamemode creative world_build

这样无论玩家从哪个入口进入,world_build世界都会强制使用创造模式。

6.3 分配生存与创造权限

这里使用 LuckPerms 来管理权限分组。先创建两个组:

lp creategroup survival lp creategroup builder

给builder组配置进入创造世界的权限:

lp group builder permission set multiverse.world.world_build true lp group builder permission set essentials.fly true

然后把玩家加入对应分组:

lp user Steve parent add survival lp user Alex parent add builder

玩家在游戏内可以使用指令切换世界:

/mv tp world_build /mv tp world_survival

如果希望普通玩家默认只能去生存世界,可以不给survival组分配multiverse.world.world_build权限,这样他们在指令进入创造世界时会被拒绝。

6.4 公共设施与资源共享实践

“文域”理念要落地,除了权限控制,还需要几个公共设施:

  • 公共箱子仓库:在主城附近放置一批箱子,标注“公共资源池”,所有玩家可以存入多余物资,也可以按需领取;
  • 公共农田和养殖场:所有玩家共享产物,避免重复开垦;
  • 传送牌:使用 EssentialsX 的/setwarp和/warp设置公共传送点。

公共设施最容易遇到的破坏问题是恶意玩家。建议安装 CoreProtect,它能把每个方块的放置、破坏记录写到日志里。发现破坏时,管理员可以回滚:

co rollback Steve t:24h

这条命令会回滚玩家 Steve 最近 24 小时内的方块改动。公共服务器有这套日志,破坏成本会高很多。

7. 服务器运维与自动备份

7.1 后台运行:screen 或 systemd

直接运行./start.sh时,SSH 断开服务器就会停止。推荐使用 screen 保持后台运行:

sudo apt install screen screen -S mc cd /opt/mc-server && ./start.sh # 按 Ctrl+A 然后按 D 脱离会话,服务器继续运行

重新进入控制台:

screen -r mc

更规范的做法是使用 systemd 托管。创建/etc/systemd/system/minecraft.service:

[Unit] Description=Minecraft Server After=network.target [Service] User=minecraft WorkingDirectory=/opt/mc-server ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar paper-1.20.4.jar nogui Restart=on-failure [Install] WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload sudo systemctl enable --now minecraft sudo systemctl status minecraft

这样服务器崩溃后会自动重启,开机也会自动启动。

7.2 内存与 JVM 参数

内存分配主要取决于物理内存。-Xms是初始堆大小,-Xmx是最大堆大小。示例-Xms1G -Xmx2G适合 4G 内存机器。如果是 8G 内存且计划 20 人在线,建议:

java -Xms4G -Xmx4G -jar paper-1.20.4.jar nogui

JVM 的更多调优参数(如垃圾回收器选择)可以查阅 Paper 官方文档,日常使用中优先保证稳定即可,不要在低配机器上盲目调大内存。

7.3 自动备份脚本

备份是数据安全的第一步。下面是一个简单的定时备份脚本backup.sh:

#!/bin/bash BACKUP_DIR=/opt/mc-backup WORLD_DIR=/opt/mc-server/world WORLD_NETHER=/opt/mc-server/world_nether WORLD_END=/opt/mc-server/world_the_end TIMESTAMP=$(date +%Y%m%d%H%M%S) mkdir -p "$BACKUP_DIR" # 打包世界数据,按你的实际世界目录调整 tar -czf "$BACKUP_DIR/mc-backup-$TIMESTAMP.tar.gz" \ -C /opt/mc-server \ world world_nether world_the_end # 保留最近 7 份备份,删除更早的 find "$BACKUP_DIR" -name "mc-backup-*.tar.gz" -mtime +7 -delete echo "[备份完成] $BACKUP_DIR/mc-backup-$TIMESTAMP.tar.gz"

加入 crontab 定时执行:

crontab -e

添加一行:

0 3 * * * /opt/mc-server/backup.sh

每天凌晨 3 点备份一次,保留 7 天,足以应对大多数误操作和崩溃场景。

7.4 运维常用命令

控制台和游戏内常用的管理命令如下:

命令作用
list查看在线玩家
say 文本全服广播
save-all强制保存世界
stop安全关闭服务器
op 玩家名设为管理员
deop 玩家名取消管理员
whitelist add 玩家名添加白名单
whitelist on开启白名单模式

建议每周执行一次save-all再备份,确保所有数据已经落盘。

8. 常见问题排查与处理思路

8.1 高频问题速查表

问题现象常见原因处理思路
服务端启动后秒退未同意 EULA 或 Java 版本不匹配检查 eula.txt 和 java -version
提示内存不足或 OOMXmx 设置过小或物理内存不够调大 Xmx,关闭其他进程
Java 版无法连接安全组未开放 TCP 25565检查云平台安全组规则
基岩版无法连接UDP 19132 未放行或 Geyser 未启动检查插件日志和安全组
基岩版玩家提示无法验证Floodgate 缺失或版本不匹配确认 Floodgate 已安装并重启
创造世界无法飞行未开启 allow-flight 或权限不足设置 allow-flight=true,配置 essentials.fly
玩家进服出生点被破坏spawn-protection 过小合理设置出生点保护,安装 CoreProtect
白名单玩家无法进入白名单未添加执行 whitelist add 玩家名

8.2 重点排查:基岩版连接不上

基岩版连不上是最常见问题,按以下顺序排查:

  1. 查看 Geyser 日志:/opt/mc-server/logs/下是否有 geyser 相关输出;
  2. 确认 Paper 已经加载 Geyser 插件:控制台输入plugins,列表中应包含Geyser-Spigot;
  3. 确认端口监听:
ss -ulnp | grep 19132

如果能输出 java 进程监听,说明端口正常。

  1. 确认云安全组放行 UDP 19132;
  2. 确认手机基岩版版本与 Geyser 支持的协议版本匹配。基岩版客户端版本过旧或过新,都有可能导致连接失败。

8.3 重点排查:Java 版本错误

日志中出现类似UnsupportedClassVersionError或invalid target release时,基本可以断定 Java 版本过低。检查并切换版本:

java -version sudo update-altern

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询