首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >我的世界服务器搭建教程:Java 版开服与模组配置

我的世界服务器搭建教程:Java 版开服与模组配置

原创
作者头像
gavin1024
发布2026-09-14 02:44:47
发布2026-09-14 02:44:47
100
举报

摘要

《我的世界》自建服务器能获得完全的规则控制权,可以自由安装模组和插件,长期成本也低于持续租用。本文完成 Java 版服务端在云服务器上的部署,涵盖版本与 Java 环境的对应关系、原版与模组端的选择、内存分配、端口放通、客户端连接验证,以及性能优化和存档备份。文中同时给出 Docker 与手动两种部署路径,可按熟悉程度选择。

一、开服前的准备判断

版本与 Java 环境必须对应

这是最容易卡住新手的一点。不同游戏版本要求的 Java 版本不同,装错会直接启动失败:

游戏版本

所需 Java 版本

1.16 及以下

Java 8

1.17 ~ 1.20.4

Java 17

1.20.5 及以上

Java 21

选版本时的取舍:老版本模组生态最丰富,很多经典整合包只支持旧版;新版本性能更好、原版内容更多。如果打算玩特定整合包,先确认它要求的游戏版本,再倒推需要的 Java 版本。

服务端类型怎么选

类型

适用场景

说明

原版服务端

纯原版玩法

官方发布,兼容性最好,性能一般

Paper

需要插件、追求性能

优化过的服务端,支持插件生态

Forge

玩模组整合包

模组生态最成熟

Fabric

玩轻量模组

启动快,新版本适配及时

多数玩家的选择是:纯生存用 Paper,玩模组按整合包要求选 Forge 或 Fabric。

配置怎么选

联机人数

玩法

CPU

内存

2~5 人

原版生存

2 核

4 GB

5~15 人

原版加少量插件

2~4 核

4~8 GB

10 人以上

大型模组整合包

4 核

8~16 GB

两点需要说明:

  • 单核性能比核数更重要。 游戏主逻辑在单线程中运行,主频高的 CPU 表现优于核数多但主频低的规格。
  • 模组吃内存。 大型整合包的内存需求可能是原版的数倍。装几十个模组时,8 GB 是起步而非上限。

二、准备服务器与端口

操作系统建议 Ubuntu 22.04 / 24.04。需要放通的端口:

端口

协议

用途

25565

TCP

Java 版默认联机端口

22

TCP

SSH 登录(默认已放通)

轻量应用服务器在实例详情页的「防火墙」页签点击「添加规则」,协议选 TCP、端口填 25565、策略选允许;云服务器 CVM 在安全组的「入站规则」中添加。

注意 Java 版用 TCP,与基岩版的 UDP 19132 不同。如果队友用的是手机或主机端的基岩版,无法直接连入 Java 版服务器,需要额外的跨版本方案,本文不涉及。

三、方式一:Docker 部署

已有 Docker 环境时,这是最省事的路径。镜像会自动处理 Java 版本匹配和服务端下载。

原版服务器:

代码语言:bash
复制
docker run -d --name mc-server \
  -p 25565:25565 \
  -e EULA=TRUE \
  -e VERSION=1.21.4 \
  -e MEMORY=4G \
  -v mc-data:/data \
  --restart unless-stopped \
  itzg/minecraft-server

Paper 服务端(性能更好,支持插件):

代码语言:bash
复制
docker run -d --name mc-paper \
  -p 25565:25565 \
  -e EULA=TRUE \
  -e TYPE=PAPER \
  -e VERSION=1.21.4 \
  -e MEMORY=4G \
  -v mc-data:/data \
  --restart unless-stopped \
  itzg/minecraft-server

Forge 模组服务端:

代码语言:bash
复制
docker run -d --name mc-forge \
  -p 25565:25565 \
  -e EULA=TRUE \
  -e TYPE=FORGE \
  -e VERSION=1.20.4 \
  -e MEMORY=8G \
  -v mc-data:/data \
  --restart unless-stopped \
  itzg/minecraft-server

几个参数的含义:

  • EULA=TRUE 表示接受游戏的最终用户许可协议,不设置服务端不会启动。
  • MEMORY 分配给 Java 的内存。建议设为服务器总内存的 60%~70%,其余留给系统。4 GB 机器设 3G,8 GB 机器设 6G。设满会导致系统无内存可用而触发 OOM。
  • -v mc-data:/data 把世界存档和配置持久化。这个卷丢了世界就没了,务必确认挂载正确。

观察启动日志:

代码语言:bash
复制
docker logs -f mc-server

日志中出现 Done (xx.xxxs)! For help, type "help" 表示启动完成。首次启动需要生成世界,耗时较长。

用 Compose 管理更便于长期维护:

代码语言:yaml
复制
services:
  minecraft:
    image: itzg/minecraft-server
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "PAPER"
      VERSION: "1.21.4"
      MEMORY: "4G"
      MAX_PLAYERS: "20"
      VIEW_DISTANCE: "8"
      DIFFICULTY: "normal"
    volumes:
      - ./mc-data:/data
    restart: unless-stopped

四、方式二:手动部署

想完全掌握文件位置和启动参数时用这种方式。

安装对应版本的 Java(以 1.21 为例,需要 Java 21):

代码语言:bash
复制
sudo apt update
sudo apt install -y openjdk-21-jdk
java -version

输出的版本号要与游戏版本要求匹配。

创建专用账号和目录:

代码语言:bash
复制
sudo useradd -m -s /bin/bash minecraft
sudo su - minecraft
mkdir -p ~/server && cd ~/server

下载服务端文件。原版从游戏官网获取对应版本的 server.jar,Paper 或 Forge 从各自官方渠道下载。把文件放入 ~/server 目录。

首次启动生成配置文件:

代码语言:bash
复制
java -Xmx3G -Xms3G -jar server.jar nogui

会提示需要同意 EULA 并退出。编辑生成的 eula.txt

代码语言:bash
复制
sed -i 's/eula=false/eula=true/' eula.txt

再次启动,服务端会生成世界文件和 server.properties

编辑服务器配置:

代码语言:bash
复制
nano server.properties

常用配置项:

配置项

说明

建议值

server-port

监听端口

25565

max-players

最大在线人数

按需设置

gamemode

游戏模式

survival

difficulty

难度

normal

view-distance

视距(区块)

8~10

online-mode

是否验证正版账号

true

motd

服务器列表显示的描述

自定义

white-list

是否启用白名单

建议 true

view-distance 对性能影响很大。默认值偏高时内存和 CPU 压力明显,调到 8 能显著降低占用,对实际游玩体验影响有限。

white-list 建议开启。公网上的服务器地址会被扫描收录,不开白名单容易被陌生玩家进入破坏建筑。开启后需要把队友加入白名单:

代码语言:txt
复制
whitelist add 玩家名

配置为系统服务以便常驻运行:

代码语言:bash
复制
exit
sudo tee /etc/systemd/system/minecraft.service > /dev/null <<'UNIT'
[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/usr/bin/java -Xmx3G -Xms3G -jar server.jar nogui
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
UNIT

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

五、验证服务器是否可用

第一层,进程监听端口

代码语言:bash
复制
sudo ss -lntp | grep 25565

第二层,端口外部可达

在本地电脑执行:

代码语言:bash
复制
nc -zv 服务器公网IP 25565

不通说明控制台防火墙规则未生效,确认协议为 TCP。

第三层,客户端连入

  1. 启动游戏客户端,版本必须与服务端一致。
  2. 选择「多人游戏」→「添加服务器」。
  3. 服务器地址填 服务器公网IP,使用默认端口时可省略端口号。
  4. 连接后能进入世界、放置方块、破坏方块并正常保存,说明部署完整。

第三层通过才算成功。前两层正常但连不上时,最常见原因是客户端与服务端版本不一致,其次是开了白名单但没把自己加进去。

建议邀请队友一起进入测试多人场景,同时观察资源占用:

代码语言:bash
复制
free -h
docker stats --no-stream   # Docker 部署时使用

六、安装模组与插件

Paper 插件

把插件的 jar 文件放入 plugins 目录后重启服务端。Docker 部署时对应数据卷下的 plugins 目录。

常用插件方向:世界备份、区域保护、权限管理、区块预生成。其中区块预生成很值得装——它提前生成地图区块,避免玩家探索新区域时因实时生成造成卡顿。

Forge 或 Fabric 模组

把模组文件放入 mods 目录后重启。

关键前提:服务端和所有客户端必须安装完全相同的模组列表和版本。 任何一方缺少或版本不同都会导致连接被拒绝。这是模组服最常见的连不上原因。建议把模组打包发给队友,确保大家用的是同一份。

模组数量多时记得相应调大内存分配,否则启动阶段就会因内存不足失败。

七、性能优化

服务器变卡时按以下顺序处理,从收益最大的开始。

换用 Paper 服务端。相比原版做了大量优化,是单项收益最明显的改动。

降低视距。把 view-distance 从默认值调到 8,能明显降低内存和 CPU 占用。

预生成地图区块。用相关插件提前生成一定半径内的区块,消除探索时的实时生成卡顿。

限制实体数量。农场类装置和大量生物会持续消耗算力。通过配置限制单区块内的实体上限。

优化 Java 启动参数。除了 -Xmx-Xms,可以调整垃圾回收器相关参数减少停顿。参数组合与 Java 版本相关,建议参考服务端官方文档的推荐配置。

判断是否需要升配。如果上述优化都做了仍然卡顿,用以下命令确认内存是否是瓶颈:

代码语言:bash
复制
free -h

可用内存持续偏低、或日志中出现内存相关警告,说明确实需要更大规格。云服务器 CVM 支持在控制台调整实例配置,不必重建实例。

八、常见问题与排查

客户端提示连接超时

检查控制台防火墙是否放通 TCP 25565、服务端进程是否在运行、地址是否填写正确。

提示版本不匹配

客户端与服务端版本不一致。确认双方使用相同版本,模组服还需确认模组列表完全一致。

服务端启动即退出

查看日志定位:

代码语言:bash
复制
sudo journalctl -u minecraft -n 100 --no-pager
# 或 Docker 部署
docker logs mc-server --tail 100

常见原因:Java 版本与游戏版本不匹配、eula.txt 未设为 true、内存分配超过机器实际可用量、模组之间冲突。

提示无法连接到世界或被踢出

如果开了白名单,确认玩家已加入。online-mode=true 时要求玩家使用正版账号,账号验证失败也会被拒绝。

世界存档损坏

立即停止服务端,避免损坏状态被继续写入。用备份恢复。这类问题事后很难修复,提前备份是最有效的应对方式。

内存占用持续增长

Java 的内存回收机制下,占用上升到分配上限附近是正常的,关键看是否频繁触发长时间停顿。如果游玩中出现规律性卡顿,可能是垃圾回收停顿,调整回收器参数或增加内存分配。

九、备份与日常维护

定期备份世界存档

手动打包:

代码语言:bash
复制
sudo tar -czf ~/mc-backup-$(date +%Y%m%d).tar.gz \
  -C /home/minecraft/server world world_nether world_the_end

三个目录分别对应主世界、下界和末地,都要备份。只备份 world 会丢掉另外两个维度。

建议写成脚本加入定时任务,并把备份同步到对象存储。留在同一台服务器上的备份,在服务器故障时会一起丢失。

用快照做整机保护

在游戏版本升级、批量安装模组这类高风险操作前,给实例创建一份快照。轻量应用服务器在实例详情页的「快照」页签操作,通常 5 分钟内完成且无需关机。

回滚快照时要注意:整块系统盘会恢复到快照时间点,之后的所有游玩进度都会被清除,运行中的实例会自动关机。因此回滚前务必先备份当前存档。每个地域的免费快照配额有上限,使用存储型套餐的实例不支持创建快照。

定时重启

长时间运行后适当重启有助于释放内存碎片。配置在玩家较少的时段执行:

代码语言:bash
复制
sudo crontab -e
代码语言:txt
复制
0 5 * * * /usr/bin/systemctl restart minecraft

重启前提前通知玩家。

日常检查

  • 每周确认备份任务执行成功,并抽查备份能否正常解开。
  • 关注内存占用与卡顿反馈,必要时调整视距或升配。
  • 版本更新前先在备份基础上测试,确认模组和插件兼容后再应用到正式服。
  • 定期检查磁盘空间,世界存档和备份会持续增长。

关于合规

自建服务器与好友联机属于正常使用。不要部署侵犯游戏版权的服务端程序,也不要使用违反游戏用户协议的作弊工具。安装社区发布的模组和插件时,注意其授权条款,商用场景需额外确认许可条件。

服务器稳定运行后,如果需要为多个游戏服建立统一的自动备份与监控机制,可以作为下一步的工作方向。

开服这类场景,轻量应用服务器的套餐规格和快照功能用起来比较省心;大型模组服需要更大内存或后续灵活调整规格时,可以考虑云服务器 CVM

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 摘要
  • 一、开服前的准备判断
  • 二、准备服务器与端口
  • 三、方式一:Docker 部署
  • 四、方式二:手动部署
  • 五、验证服务器是否可用
  • 六、安装模组与插件
  • 七、性能优化
  • 八、常见问题与排查
  • 九、备份与日常维护
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档