我的世界服务器永久不删档,搭建稳定长期运行生存服
2026/9/7 3:57:37 网站建设 项目流程

这次我们来看一个“一辈子”的MC服务器需求:标题是“我们要开一个一辈子的MC服务器!【我的世界MC 生存服务器 26.1.2 永久不删档】”。这类需求在朋友联机、小型社区服里非常常见——不是开一个两天就删的测试服,而是想长期保留同一个生存档,让玩家随时能回来继续玩。这篇文章不讨论怎么建建筑,而是从技术角度拆解:如何搭建一个可以长期运行的《我的世界》生存服务器,并做到崩溃自动重启、数据自动备份、远程管理、端口稳定、版本可控。

先提醒一点:标题里的“26.1.2”不是官方 Minecraft 版本号,更像是整合包版本或存档标记。实际开服时,要确认服务端核心支持的版本和你客户端的版本完全一致,否则会看到“客户端版本不匹配”的报错。本文会围绕通用开服流程展开,所有命令都给出可替换路径,你可以直接套用到自己的服务器上。

如果你正准备开一个“永久不删档”的 MC 生存服,建议先收藏这篇文章。全文会覆盖:核心能力速览、适用场景、环境准备、服务端部署、长期运行守护、功能测试、远程管理、资源占用、常见问题排查和最佳实践。文章的核心目标只有一个:让服务器能稳定跑下去,让存档活得更久。

1. 核心能力速览

能力项说明
项目类型我的世界生存服务器搭建与长期运维
版本标识标题中的 26.1.2 需按实际服务端核心确认,本文使用通用部署示例
主要功能长期生存存档、玩家管理、权限控制、自动备份、崩溃重启
推荐核心Paper / Purpur / Fabric / Forge,按插件或模组需求选择
推荐硬件4 核 CPU 起步,内存建议 4G 以上,磁盘建议 SSD
启动方式命令行启动、systemd 守护、Windows 计划任务、面板启动
管理方式游戏内命令、控制台、RCON 远程命令、面板 Web 管理
是否支持 API支持 RCON,部分面板可提供 HTTP API,需按实际面板文档确认
是否支持批量任务可通过脚本批量备份、批量执行命令、定时重启
适合场景朋友联机、小型社区服、长期生存服、整合包存档服

从表格可以看出,“永久不删档”并不是一个单一开关,而是由版本固定、自动重启、定期备份、权限控制四件事共同保证的。下面逐个展开。

2. 适用场景与使用边界

这种服务器适合哪些人?最典型的是三种:第一,几个朋友想长期在同一个地图里生存,不想频繁换档;第二,小型社区服需要一个稳定入口,让成员随时能进;第三,玩家自己攒了一个整合包,想搭一个服务器给朋友玩,同时保留自己的本地存档。

不适合什么场景?如果你的目标是几千人同时在线的大型服务器,那单机单服这套方案就不够用了,需要分布式部署、子服、代理端、数据库集群,复杂度会高很多。如果你只是想自己单机玩,也不需要专门开服务器,直接开个局域网世界就行。

还有一条使用边界必须强调:搭建 MC 服务器要遵守《我的世界》的用户协议和服务端 EULA。插件、模组、整合包要使用合法授权的资源,不要从来源不明的渠道下载带后门的“服务端整合包”。如果使用正版账号验证,可以开启online-mode=true;如果只是局域网内测试,可以暂时关闭,但公网长期运营建议保持正版验证,这样既能保护玩家账号,也符合游戏条款。

另外,如果服务器里会保存玩家聊天记录、IP 信息、皮肤数据,要注意隐私合规,不要随意公开玩家数据。涉及未成年人玩家时,更要做好聊天内容审核和管理员值守。

3. 环境准备与前置条件

开服之前,先检查你的机器环境。Windows、Linux 都可以跑,但长期稳定性上更推荐 Linux 云服务器或家里的 Linux 小主机。Windows 也能用,只是重启后需要自动启动配置,后面会单独说。

首先是 Java。Minecraft 服务端在不同时期对 Java 版本要求不一样,旧版本通常需要 Java 8,1.17 左右需要 Java 16 或 17,更近的版本可能要求 Java 21。不要凭记忆猜,直接看服务端核心的文档或启动时报错。先执行java -version看看当前版本:

java -version

如果没有装 Java,Ubuntu/Debian 可以使用 OpenJDK:

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

注意:安装的版本号请以你选择的 MC 服务端核心要求为准。装错版本启动时会直接报UnsupportedClassVersionError

磁盘空间也要留足。一个长期生存服的世界会持续增长,探索范围越大,区块文件越多。建议系统盘外再单独挂载一块数据盘,专门存服务器目录和备份。在 Linux 上用df -h检查磁盘占用:

df -h

网络方面,如果是在云服务器上开服,需要确认安全组已经放行 TCP 端口。MC Java 版默认端口是25565。如果在家用宽带开服,还需要在路由器上做端口映射,并确认运营商没有封禁该端口。端口映射这块各家路由器界面不同,但原理一致:将外网端口的 TCP 流量转发到内网服务器 IP 的25565端口。

4. 部署启动与长期运行

4.1 获取服务端核心

开服第一步是选择服务端核心。常见选择有:

  • Vanilla 原版服务端:官方下载,稳定但功能少。
  • Paper:插件生态好,性能优化强,适合生存服。
  • Purpur:基于 Paper,提供更多配置项。
  • Fabric / Forge:需要模组时使用,比如整合包服务器。

选择标准很简单:你打算装插件就选 Paper 系,打算装模组就选 Fabric 或 Forge,只想玩原版就选 Vanilla。不要下载来路不明的“整合包服务端”,尤其是要求你关闭杀毒软件并右键管理员运行的那种,风险很高。

下载完成后,把服务端 jar 文件放到一个独立目录。目录路径最好没有中文和空格,避免命令解析问题。以 Linux 为例:

mkdir -p /opt/mc-server cd /opt/mc-server # 假设你下载的文件名为 paper.jar,放在当前目录 ls -lh

4.2 首次启动与配置文件

首次启动前,先创建运行用户。不建议直接用 root 跑 MC 服务器,万一服务端被攻击或插件有漏洞,权限隔离能降低风险:

sudo useradd -r -m -d /home/mc mc sudo chown -R mc:mc /opt/mc-server

然后用mc用户启动:

cd /opt/mc-server sudo -u mc java -Xms2G -Xmx4G -jar paper.jar nogui

第一次启动会在目录里生成eula.txtserver.properties。程序会提示你阅读并同意 EULA。打开eula.txt

nano /opt/mc-server/eula.txt

eula=false改为eula=true。这一步是法律合规要求,不是可以跳过的“破解步骤”。

接下来编辑server.properties,这是整个服务器的核心配置文件。常用参数如下:

配置项作用
server-port=25565服务器监听端口
level-name=world主世界存档名,不要随便改
max-players=20最大在线人数
view-distance=6客户端能加载的区块范围,值越小越省资源
online-mode=true正版验证开关,公网长期服建议开启
white-list=false是否开启白名单
motd=A Lifelong MC Server服务器列表显示信息
spawn-protection=0出生点保护范围,生存服建议设为 0,避免无法破坏出生点
hardcore=false是否硬核模式

改完后保存,再次启动服务端。这次会开始生成世界。观察日志,直到出现Done字样:

sudo -u mc java -Xms2G -Xmx4G -jar paper.jar nogui

看到Done后,服务器已经跑起来了。按Ctrl+C停止,接下来配置长期运行方式。

4.3 在 Linux 上使用 systemd 守护进程

如果直接在前台运行,关掉终端服务器就停了。所以要用 systemd 把服务变成后台守护进程,并设置崩溃自动重启。

创建服务文件:

sudo nano /etc/systemd/system/minecraft.service

内容如下:

[Unit] Description=Minecraft Server After=network.target [Service] WorkingDirectory=/opt/mc-server ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar paper.jar nogui Restart=on-failure RestartSec=10 User=mc Group=mc [Install] WantedBy=multi-user.target

注意ExecStart里的 Java 路径要换成你机器上实际的路径,可以用which java查询:

which java

如果启动命令里需要额外的 JVM 参数,比如 GC 调优参数,也可以直接加在ExecStart里。保存后执行:

sudo systemctl daemon-reload sudo systemctl enable minecraft sudo systemctl start minecraft

查看运行状态和日志:

sudo systemctl status minecraft sudo journalctl -u minecraft -f

Restart=on-failure会保证即使服务器崩溃退出,systemd 也会在 10 秒后重新拉起来。这就是“永久在线”的第一个关键保障。

4.4 Windows 开机自启

如果你用的是 Windows 机器,也可以做到开机自动启动。写一个start.bat

@echo off cd /d C:\mc-server java -Xms2G -Xmx4G -jar paper.jar nogui

然后用任务计划程序,配合schtasks命令注册开机启动:

schtasks /Create /SC ONSTART /TN "MinecraftServer" /TR "C:\mc-server\start.bat" /RU SYSTEM /RL HIGHEST

这个命令会把开机启动任务注册到系统账户。要注意给start.bat所在目录设置正确的读写权限,否则存档无法正常保存。

4.5 端口映射与防火墙

Linux 上先确认防火墙放行了25565端口。如果启用了ufw

sudo ufw allow 25565/tcp sudo ufw status

云服务器还要到控制台安全组里放行同样的端口。家用宽带则在路由器管理页面设置端口映射,将外网端口25565转发到内网服务器 IP 的25565。设置完成后,用在线端口检测工具扫一下外网 IP 的25565是否开放。

5. 功能测试与效果验证

服务器搭完,不能只看Done就认为成功。下面给出一套完整的验证流程,建议每次改完配置后都跑一遍。

5.1 客户端连接测试

先在服务器本机测试连接。打开 MC 客户端,选择“多人游戏”,添加服务器,地址填127.0.0.1:25565。如果本地能进,再用局域网 IP 测试;如果是云服务器,用公网 IP 测试。

判断成功标准:

  • 客户端能看到服务器 MOTD。
  • 点击进入后能正常加载世界。
  • 服务端日志显示玩家加入消息,比如xxx joined the game

如果本地能进,公网进不了,先别查游戏配置,检查安全组、路由器端口映射和防火墙。大部分连接超时问题都出在这三层。

5.2 管理命令测试

进入游戏后,在控制台或游戏内测试以下基础命令:

命令作用
list列出当前在线玩家
op <玩家名>给予管理员权限
gamemode creative <玩家名>切换创造模式
save-all手动保存存档
whitelist add <玩家名>添加白名单

测试目标是把这些命令全部执行一遍,确认控制台没有红色报错。尤其是save-all,如果存档路径没有写入权限,会看到Failed to save,这时候必须修复权限,否则重启后回档。

5.3 备份恢复测试

不删档最重要的保障是备份。写一个最简单的备份脚本:

#!/bin/bash BACKUP_DIR=/backup/mc WORLD_DIR=/opt/mc-server/world TIMESTAMP=$(date +%Y%m%d%H%M%S) mkdir -p "$BACKUP_DIR" tar -czf "$BACKUP_DIR/mc-$TIMESTAMP.tar.gz" "$WORLD_DIR" find "$BACKUP_DIR" -type f -mtime +30 -delete

给脚本加执行权限,然后运行:

chmod +x /opt/mc-server/backup.sh /opt/mc-server/backup.sh

验证方式是:先记录当前游戏内坐标和物品,然后执行save-all,再把world目录改名为world_bak,把备份文件解压成新的world目录,重启服务器,进入游戏确认坐标和物品与备份时一致。这一步能提前暴露备份不完整、路径错误、权限不足等问题。

5.4 崩溃自动恢复测试

故意模拟一次崩溃,验证 systemd 会不会自动拉起。在服务器运行时执行:

sudo systemctl kill -s SIGKILL minecraft

然后等待 15 秒,执行:

sudo systemctl status minecraft

如果状态是active (running),说明自动重启生效。再查看日志确认启动过程无异常:

sudo journalctl -u minecraft -u | tail -50

如果你用的是 Windows 计划任务,模拟崩溃后需要手动确认任务是否重新拉起进程,或者用第三方工具设置为守护进程。Windows 下没有 systemd 这么方便,建议对稳定性要求高时直接使用 Linux。

6. 接口 API、RCON 与远程管理

“永久不删档”不是每天坐在服务器前盯着控制台,而是需要远程管理能力。Minecraft 服务端自带 RCON 远程控制协议,开启后可以通过命令行远程执行管理员命令,很适合写脚本做自动化运维。

server.properties中开启并设置:

enable-rcon=true rcon.port=25575 rcon.password=your_strong_password

密码一定要够复杂,因为 RCON 控制的是服务器后台,一旦泄露等于服务器被别人接管。改完配置后重启服务器。

使用 RCON 客户端连接,常用工具是mcrcon。安装后执行:

mcrcon -H 127.0.0.1 -P 25575 -p your_strong_password "list"

返回在线玩家列表说明 RCON 已通。这个命令可以写进自动备份脚本,实现备份前执行save-all,保证存档落盘。

实际调用接口的示例脚本:

#!/bin/bash mcrcon -H 127.0.0.1 -P 25575 -p your_strong_password "save-off" mcrcon -H 127.0.0.1 -P 25575 -p your_strong_password "save-all" sleep 5 tar -czf /backup/mc/mc-$(date +%Y%m%d%H%M%S).tar.gz /opt/mc-server/world mcrcon -H 127.0.0.1 -P 25575 -p your_strong_password "save-on"

如果你用的是面板服务,比如 MCSManager、Pterodactyl 之类,它们通常自带 HTTP API,可以查询服务器状态、发送命令。具体地址和鉴权方式以面板文档为准,这里不展开,因为不同面板差异很大。

7. 资源占用与性能优化

长期运行的 MC 服务器最怕资源不足导致崩溃或卡顿。先看两条硬规则:第一,JVM 堆内存不要超过物理内存减掉系统和其他服务所需内存;第二,不要盲目把-Xmx调大,过大的堆反而会增加 GC 停顿。

内存分配建议从保守值开始。10 人以内的小型生存服,常见配置是-Xms2G -Xmx4G,具体还要看插件、模组、世界预生成程度和玩家长时间在线率。你可以先用这个配置跑,然后在高峰期观察内存占用:

free -h top -p $(pgrep -f paper.jar)

如果内存长期在 90% 以上,说明需要升配置或降view-distance。如果把view-distance从 8 降到 6,对内存和 CPU 的占用会有明显改善。

Paper 核心还提供额外优化选项。paper-global.ymlpaper-world-defaults.yml里有大量舆情开关,但不要一次全改,建议保持默认,只针对卡顿现象做单项调整。常见的优化方向:

  • 降低实体数量上限,限制刷怪塔的堆积实体。
  • 使用世界预生成插件或命令,提前生成区块,减少玩家探索时的卡顿。
  • 定好自动重启时间,比如每天凌晨 5 点重启一次,释放内存碎片。
  • 日志和备份放到不同磁盘,避免磁盘 IO 抢资源。

显存对 MC Java 版服务端没有影响,显卡基本不参与服务端计算。只有开光影的客户端才吃显卡,服务器只看 CPU、内存、磁盘 IO 和网络带宽。

8. 常见问题与排查方法

下面是长期运营中最高频的问题,可以直接对照排查:

问题现象可能原因排查方式解决方案
启动后立刻退出EULA 未同意查看eula.txt改为eula=true
UnsupportedClassVersionErrorJava 版本不匹配执行java -version按服务端核心要求安装对应 Java 版本
控制台有Failed to bind to port端口被占用检查server-port和进程列表关闭占用进程或换端口
客户端连接超时防火墙/安全组/路由器未放行用在线端口工具检测放行 TCP 25565 或做端口映射
客户端提示版本不匹配客户端与服务端版本不一致检查启动器版本号统一版本后重连
存档无法保存目录权限不足检查日志报错信息chown -R mc:mc /opt/mc-server
玩家列表出现未授权账号online-mode=false检查server.properties公网长期服改为true
服务器随机崩溃内存不足或插件冲突查看journalctl日志减少插件、调低 view-distance、加大磁盘 swap
备份文件很大且增长快存档区块过多检查磁盘占用定期清理无人探索区域,或加载预生成范围限制
RCON 连接被拒绝RCON 未开启或密码不对检查server.properties确认enable-rcon=true并重启服务端

排查原则很简单:先看日志,再改配置,一次只改一个变量。不要同时改一堆参数,不然出了问题都不知道是哪一步导致的。

9. 最佳实践与使用建议

“永久不删档”更多是运维习惯问题,而不是技术一次性配置。以下几个建议可以直接用起来。

第一,备份和主目录分开。永远不要把备份放到服务器同一块磁盘上,否则磁盘坏了备份也跟着没。有条件就把备份同步到另一台机器或对象存储。

第二,建立固定的重启周期。即使没有崩溃,也建议每天或每两天自动重启一次。长期不重启的 MC 服务端可能会出现区块加载异常、内存碎片增多、实体卡死等问题。用 systemd timer 或 cron 可以做到:

0 5 * * * systemctl restart minecraft

第三,管理员账号要收口。不要给每个朋友都发 OP,建议使用白名单 + 基础权限插件。给核心管理一个强密码,RCON 密码也要定期换。

第四,对外发布 IP 后要关注日志。如果发现大量陌生 IP 尝试连接,先确认online-mode是否为 true,再考虑是否需要加一层 TCP 防火墙限制来源 IP。

第五,更新服务端核心之前,先备份存档,并在测试环境验证插件兼容性。不要在生产服直接升级,尤其跨度大版本时,存档可能无法直接兼容。

第六,涉及玩家数据时尊重隐私。不要在公开帖子里贴玩家 IP 或真实信息,聊天日志要妥善保管,不要用作“公开处刑”。

这些习惯坚持下来,比任何一键脚本都更能保证服务器“一辈子”的可持续性。

10. 总结与下一步

这个项目最值得尝试的点,是把“开一个永久生存服”从口号变成一套可执行的流程:固定版本、守护进程、自动备份、远程管理、权限收口。最先应该验证的是systemctl start minecraft后客户端能不能连进来,以及save-all手动保存后存档是否完整。最容易踩的坑是 Java 版本不匹配和公网端口没放行,这两个问题占了新手开服报错的八成。

后续可以继续扩展的方向很多:接入动态地图让玩家在网页上看世界,部署远程管理面板方便非技术管理员操作,把备份脚本挂到对象存储实现异地容灾,或者增加机器人监听服务器状态并推送到聊天群。当前建议先把最小可用配置跑通,再逐步加插件和自动化脚本。把这套配置保存到服务器目录里,后续每次调整都有据可查,你的服务器就不会再是“玩两天就没”的临时服了。

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

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

立即咨询