news 2026/9/7 3:06:34

Minecraft 1.21纯净服务器搭建全指南:从零开服到稳定运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Minecraft 1.21纯净服务器搭建全指南:从零开服到稳定运行

一个“6月新开服务器,纯净1.21.11,有没有一起玩的小伙伴呀?”的帖子,背后要准备的东西远不止改一个游戏模式。玩家看到的是能够进入世界、一起生存;开服者面对的是服务端类型、Java 版本、Linux 环境、内存参数、防火墙、白名单、备份和崩溃恢复。下面以 1.21.11 纯净生存服务器为例,从服务器选型开始,把服务端下载、启动配置、安全加固、白名单备份、故障排查全部走通。整个过程可以在云服务器或本地虚拟机上复现,也适用于 1.20/1.21 系列版本的纯净服搭建。

1. 先想清楚“纯净 1.21.11”到底需要哪种服务端

1.1 纯净服的技术边界

“纯净服”通常指不改变原版方块、合成、生物生成和游戏机制的服务器。玩家体验接近单机,红石机器、刷怪塔、村民繁殖等机制都尽量保持原版行为。这里的关键词不是“不能装东西”,而是“不改变玩法规则”。

因此选服务端时要先定一个底线:是否接受某些插件或模组为了性能优化而微调原版机制。比如 Paper 服务端默认会修改部分刷怪规则,常见表现是刷怪塔效率变化、某些生电机器无法正常工作。如果开服的主要目标是小圈子朋友一起玩生存,建议选择原版服务端或 Fabric 这类轻量加载器,尽量保持原版行为。

纯净服仍然需要防熊、防恶意破坏。白名单、权限、备份和定期存档恢复,比插件管理更贴近“纯净”原则。

1.2 原版服务端与 Fabric、Paper 的差异

搭建前建议先看一张对比表,明确不同服务端的定位。

服务端是否属于纯净扩展方式典型特点适合场景
Vanilla Server无可扩展官方原版,兼容性最好,性能一般最小搭建、玩家少、完全原版
Fabric Server安装 fabric api 与 mod原版机制基本不变,可挂性能优化模组想要原版体验又需要优化
Paper / Spigot偏原版但非严格纯净安装插件性能高、插件生态丰富,但可能改机制小游戏服、综合服、不需要严格生电服

对 1.21.11 这种较新版本,下载服务端前要先确认对应版本的 Fabric、Paper 是否已经发布。如果只是给朋友开生存服,优先找官方 Vanilla 服务端,因为它永远跟版本一起发布,兼容风险最小。

1.3 先确认版本,再决定下载什么 jar

“1.21.11”可能是正式发布版本号,也可能是某个启动器里的版本标识。实际下载服务端时,不要只看文件名,还要确认文件来自官方发布渠道或可信镜像,并做哈希校验。

服务端运行还需要匹配的 Java 版本。Minecraft 1.21 系列普遍要求 Java 21 或更高版本。落地前先检查当前环境:

java -version

如果输出不是 64 位 Java 21,先安装对应版本再启动服务端。否则最常见的问题不是服务端不能启动,而是启动日志里出现UnsupportedClassVersionError,原因就是 Java 版本太低。

2. 云服务器选型和 Linux 基础准备

2.1 配置怎么选才不浪费钱

Minecraft 服务端对内存和 CPU 主频敏感。在线人数少时,2 核 4G 内存足够;但 1.21 版本的区块生成和实体计算量更大,长期运行建议至少 4G 内存。

下面是一份适合开纯净服的参考配置:

在线人数CPU内存带宽磁盘建议
1 到 5 人2 核,单核主频尽量高4G3Mbps 以上20G SSD
5 到 20 人4 核,单核主频高8G5Mbps 以上50G SSD
20 人以上8 核,单核性能优先16G10Mbps 以上100G SSD

这里要注意一个常见误区:只看 CPU 核心数会选错服务器。Minecraft 的主逻辑在很长一段时间内仍以单线程为主,CPU 单核主频和缓存比“核心数多”更重要。内存不足会导致区块卸载和频繁 GC,表现为周期性卡顿;磁盘太慢会导致存档保存时整个世界短暂冻结。

2.2 登录服务器并创建专用用户

云服务器购买后,先通过 SSH 登录。不要直接用 root 运行 Minecraft 服务端,因为一旦服务端被攻击或插件代码有漏洞,风险会直接扩散到整个系统。

ssh root@你的服务器IP

登录后创建一个普通用户,用于运行服务端:

adduser mcserver usermod -aG sudo mcserver su - mcserver

mcserver只是示例用户名,可以换成你喜欢的名字。加入sudo组是为了后续安装软件,但日常运行服务端时不要用 root。

2.3 安装 Java、screen 和常用运维工具

以 Ubuntu/Debian 系统为例:

sudo apt update sudo apt install -y openjdk-21-jre-headless screen tmux htop rsync tar unzip curl ufw fail2ban

这里的几个工具各有用途:

  • screen/tmux:在 SSH 断开后让服务端继续运行。
  • htop:实时查看 CPU 和内存占用。
  • rsync:同步存档到备份目录。
  • ufw:配置 Linux 防火墙。
  • fail2ban:保护 SSH 登录,防止暴力破解。

注意:不要只验证服务端能启动,还要验证 SSH 断开后服务端是否继续运行,以及重启服务器后服务端是否能自动拉起。

2.4 设置时区、主机名和 SSH 保护

设置时区可以让日志时间和备份文件名更直观:

sudo timedatectl set-timezone Asia/Shanghai

SSH 保护可以先做两件事:禁止 root 直接登录、改用密钥认证。修改/etc/ssh/sshd_config时保持原终端不退出,避免新配置出错导致登录不上:

sudo nano /etc/ssh/sshd_config

修改关键项:

PermitRootLogin no PasswordAuthentication no

然后重启 SSH 服务:

sudo systemctl restart sshd

在执行重启前,建议在另一个终端测试密钥登录是否正常。如果密钥登录失败,当前 SSH 会话至少还活着,可以及时回滚。

3. 下载服务端、配置 server.properties 并启动

3.1 下载服务端 jar 到独立目录

先把服务端放到独立目录,避免和系统文件混在一起:

sudo mkdir -p /srv/mc sudo chown mcserver:mcserver /srv/mc su - mcserver cd /srv/mc

下载服务端文件时可以先用 curl 拉取到临时文件,再校验。下面的 URL 是示例,实际要以官方发布页或可信镜像为准:

curl -O https://example.com/minecraft_server.1.21.11.jar sha256sum minecraft_server.1.21.11.jar

运行sha256sum后,把输出结果和发布方提供的哈希值对比。哈希不匹配时不要运行这个 jar,避免下到被篡改的文件。

3.2 首次启动与 EULA

/srv/mc目录下执行:

java -Xms1G -Xmx2G -jar minecraft_server.1.21.11.jar nogui

首次启动会生成eula.txt等文件,然后停止,提示需要同意最终用户许可协议。这是因为服务端默认eula=false。编辑该文件:

sed -i 's/eula=false/eula=true/' eula.txt

这一步表示你阅读并同意 EULA。个人开服时不要忽略这条,它是服务器能否合法发布服务端文件的前提。

3.3 server.properties 核心参数

服务端根目录下的server.properties是配置核心。下面挑选纯净服最常用的参数说明:

参数默认值说明
server-port25565游戏连接端口,一般不需要改
online-modetrue正版验证。纯朋友服建议保持 true
white-listfalse是否开启白名单,建议开启
max-players20最大同时在线人数
view-distance10服务器发送给玩家的区块范围,越大越吃资源
spawn-protection16出生点保护范围,防止出生点附近被破坏
difficultyeasy难度,生存服常用 hard
pvptrue是否允许玩家互相攻击
enable-rconfalse是否开启远程控制台,默认关闭更安全
level-nameworld主世界存档名

修改参数后一定要重启服务端,否则多数参数不会热生效。不要直接一次性把参数调到最高,比如view-distance设为 32,表面上看起来能看很远,实际会极大增加内存和带宽消耗,玩家少时也会卡。

3.4 启动脚本和后台运行

每次手动敲长命令容易出错,推荐写一个启动脚本。在/srv/mc下创建start.sh

#!/usr/bin/env bash cd /srv/mc JAVA_OPTS="-Xms2G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200" java $JAVA_OPTS -jar minecraft_server.1.21.11.jar nogui

给脚本加执行权限:

chmod +x start.sh

如果只想临时在后台运行,可以使用screen

screen -S mc ./start.sh

Ctrl+A然后按D即可脱离会话,让服务端继续运行。要重新进入控制台:

screen -r mc

推荐:生产环境开服不要长期依赖screen,后面会讲用systemd托管服务端,这样重启服务器后服务端可以自动启动。

4. 白名单、权限与备份

4.1 为什么纯净服也要开白名单

很多开服者觉得“朋友服不需要白名单”,结果服务器一公开,就会遇到陌生玩家进服破坏、刷屏、卡服等情况。白名单是纯净服最基础的安全控制。

在游戏控制台或远程管理工具中执行:

whitelist on whitelist add 玩家名

也可以直接编辑whitelist.json,但更推荐在控制台用命令操作,避免文件格式错误。文件内容类似:

[ { "uuid": "玩家UUID", "name": "玩家名" } ]

使用命令后,服务端会自动维护这个文件。

4.2 ops.json 与其他权限文件

管理员权限在ops.json中管理。给玩家 op 时要谨慎,不要给所有人都发。op-permission-level定义了权限等级:

等级权限
1绕过出生点保护
2可使用大部分命令
3可封禁玩家、查看服务器信息
4完全管理员权限

封禁玩家时可以使用:

ban 玩家名 原因 ban-ip IP地址

封禁记录保存在banned-players.jsonbanned-ips.json。删除封禁也要用对应命令,不要直接改文件。

4.3 定时备份脚本

Minecraft 的存档包含玩家数据、区块数据、地图数据。即使没有插件故障,一次错误操作也可能导致存档损坏。备份脚本要解决两个问题:定时备份和保留最近版本。

先创建备份目录:

mkdir -p /srv/mc-backups

/srv/mc下创建backup.sh

#!/usr/bin/env bash BACKUP_DIR=/srv/mc-backups WORLD_DIR=/srv/mc/world STAMP=$(date +%Y%m%d-%H%M%S) cd /srv/mc screen -S mc -X stuff 'save-off\n' sleep 2 screen -S mc -X stuff 'save-all\n' sleep 5 tar -czf "$BACKUP_DIR/world-$STAMP.tar.gz" -C "$WORLD_DIR" . screen -S mc -X stuff 'save-on\n' find "$BACKUP_DIR" -name "world-*.tar.gz" -mtime +7 -delete

如果服务端不是用screen启动,而是用systemd,需要把控制台指令替换为mc-send-to-console save-off之类的辅助工具,或者直接用rcon。备份完成后,至少手动解压一次备份,确认压缩包里的文件完整。

4.4 使用 systemd 托管服务端

screen适合手动维护,但长期开服建议用systemd。创建服务文件:

[Unit] Description=Minecraft Server After=network.target [Service] User=mcserver WorkingDirectory=/srv/mc ExecStart=/usr/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -jar minecraft_server.1.21.11.jar nogui Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target

然后启用服务:

sudo systemctl daemon-reload sudo systemctl enable mc sudo systemctl start mc

使用 systemd 的好处是服务崩溃后自动重启,服务器开机后自动启动,日志也可以通过journalctl -u mc查看。

5. 防火墙、安全组与 SSH 加固

5.1 Linux 防火墙只放行必要端口

在服务器上启用 UFW 防火墙前,先确保放行 SSH 端口,否则容易把自己锁在外面:

sudo ufw allow 22/tcp sudo ufw allow 25565/tcp sudo ufw allow 25565/udp sudo ufw enable

Minecraft 客户端的连接主要走 TCP,但服务器列表状态查询有时会用到 UDP。因此把 TCP 和 UDP 都放行更稳妥。

查看防火墙状态:

sudo ufw status verbose

5.2 云厂商安全组也要同步配置

很多云服务器有双重防火墙:操作系统层和云平台安全组。只配置 UFW 但忘记安全组,玩家依然连不进来。安全组规则通常如下:

方向协议端口来源用途
入方向TCP255650.0.0.0/0Minecraft 游戏连接
入方向UDP255650.0.0.0/0服务器状态查询
入方向TCP22你的办公IPSSH 管理

安全组来源不建议直接设置为 0.0.0.0/0 的 SSH,最好只允许你经常使用的 IP。游戏端口 25565 必须对公网开放,否则其他玩家无法连接。

5.3 SSH 登录防护

即使已经启用密钥登录,也建议继续做以下加固:

  • 修改sshd_config中的MaxAuthTries,限制尝试次数。
  • 使用fail2ban监测异常登录。
  • 不要把 22 端口改成特别难记的端口,除非你有成熟的习惯和备份方案。

启动 fail2ban:

sudo systemctl enable fail2ban sudo systemctl start fail2ban

查看被拉黑的 IP:

sudo fail2ban-client status sshd

5.4 RCON、控制台和其他风险端口

server.propertiesenable-rcon=false默认关闭 RCON。如果确实需要远程执行命令,不要直接把 RCON 端口 25575 暴露到公网,因为它没有加密,且一旦口令泄露,攻击者可以执行管理员命令。

更安全的远程管理方式是:

  1. 通过 SSH 登录服务器。
  2. 进入服务端控制台。
  3. 或者使用 SSH 隧道转发 RCON 端口。

纯净服开服者不需要频繁远程执行命令,保持默认关闭是更稳妥的选择。

6. 从开服到验证:常见问题与排错链路

6.1 正常启动日志长什么样

启动服务端后,终端日志中看到类似内容才算真正成功:

[Server thread/INFO]: Starting minecraft server version 1.21.11 [Server thread/INFO]: Loading properties [Server thread/INFO]: Starting Minecraft server on *:25565 [Server thread/INFO]: Done (12.345s)! For help, type "help"

关键是最后一行Done。如果只看到启动信息,没有Done,说明启动过程还未完成或已经崩溃。

6.2 玩家连接不上的排查链路

玩家反馈“连接超时”时,不要直接怀疑服务器配置,按顺序排查:

  1. 服务端是否已经出现Done
  2. 云安全组是否放行 25565 端口。
  3. Linux UFW 是否放行 25565 端口。
  4. 服务端端口是否和server.properties一致。
  5. 玩家是否使用了错误 IP 或版本。
  6. 服务器带宽是否被打满。
  7. 系统负载和内存是否异常。

在服务器本机查看端口监听:

ss -lntp | grep 25565

如果能看到服务端进程监听 25565,说明服务端本身正常。此时需要同步检查防火墙和安全组。

6.3 卡顿、掉线和内存溢出

纯净服卡顿最常见的表现是 TPS 下降,玩家感觉方块延迟、实体移动不跟手。先检查系统和 Java 进程:

htop

观察内存占用和 CPU 占用。如果内存经常接近上限,查看系统日志:

dmesg | tail -20

出现Out of memory相关日志说明 Java 进程被系统杀掉。解决办法是调整-Xmx参数,或直接升级服务器内存。不要盲目把-Xmx设置为接近物理内存总量,要给系统和其他进程留空间。

6.4 常见问题速查表

问题现象常见原因检查方式处理建议
启动报 UnsupportedClassVersionErrorJava 版本过低java -version安装 Java 21 或更高版本
启动后立即退出eula.txt 未同意查看 eula.txt改为 eula=true
Address already in use端口被占用ss -lntp | grep 25565停掉占用进程或更换端口
玩家连接超时安全组/防火墙未放行ss -lntp,检查安全组放行 TCP/UDP 25565
陌生玩家进入白名单未开启whitelist on开启白名单并添加玩家
存档文件损坏运行时直接覆盖存档查看备份停止服务端后恢复备份
服务器频繁重启内存不足触发 OOMdmesg | tail降低 view-distance 或加内存
延迟高但不卡带宽或地理位置问题使用 ping 和 traceroute更换更近地域服务器或升级带宽

6.5 上线前的开服检查清单

在把“有没有一起玩的小伙伴”发出去之前,建议逐项确认:

  • [ ] 服务端 jar 哈希校验通过
  • [ ] eula.txt 已同意
  • [ ] server.properties 中 white-list=true
  • [ ] 已添加全部朋友的白名单
  • [ ] 已使用 systemd 或 screen 后台启动
  • [ ] 备份脚本已执行一次,且备份文件可正常解压
  • [ ] UFW 放行 22 和 25565 端口
  • [ ] 云安全组放行 25565 端口
  • [ ] 已创建管理员账号并设置 ops
  • [ ] 服务端启动日志出现 Done

7. 监控、迁移与长期维护

7.1 日常监控

服务端稳定运行后,不需要频繁登录游戏查看,但建议定期检查服务和资源:

systemctl status mc htop df -h

也可以写一个简单的健康检查脚本,每隔几分钟检查端口是否可达:

nc -vz 127.0.0.1 25565

如果服务未监听,可以通过 systemd 自动拉起,同时把关键日志输出到单独文件,方便事后排查。

7.2 存档备份与恢复演练

备份不是“执行过脚本”就结束了,还要验证恢复流程。恢复步骤:

sudo systemctl stop mc cd /srv/mc mv world world.corrupt mkdir world tar -xzf /srv/mc-backups/world-20250601-120000.tar.gz -C world sudo systemctl start mc

这里先移动损坏目录而不是直接删除,是为了保留现场。确认恢复成功后再清理。

恢复演练最好在测试环境执行,不要在朋友都在线时临时操作。没有实践过的备份脚本,在灾难来临时不一定可靠。

7.3 从“一个服务器”到“多个存档/多模式”

如果想同时开纯净生存、创造服或小游戏服,不要用插件切换世界,更稳妥的方式是启动多个独立服务端实例:

  • 每个实例放在独立目录。
  • 使用不同端口。
  • 每个实例使用独立用户或独立 systemd 服务。
  • 每个实例的level-name不同。

这种方式复杂度更高,但隔离性好,一个实例崩溃不会影响另一个实例。

8. 开服之外:让“一起玩”的帖子真正落地

8.1 纯净服的运营边界

技术搭建只是开服的第一步。“纯净 1.21.11”如果没有对应的规则说明,玩家之间很容易因为破坏、偷窃、恶意使用漏洞产生矛盾。

建议在服务器群和公告中写清楚:

  • 服务器是纯净生存,禁止使用修改客户端和作弊模组。
  • 白名单玩家名单以管理员确认后的记录为准。
  • 破坏他人物品、恶意卡服会被警告或封禁。
  • 定期备份,但不承诺回档所有玩家物品。

这部分不涉及技术,却能显著减少服务器纠纷。纯朋友服同样需要规则,否则“一起玩”的体验会很快被破坏。

8.2 新手最容易犯的三个错误

第一,直接用 root 运行服务端。这是最危险的习惯。一旦服务端所在系统被入侵,攻击者可能拿到整个服务器的控制权。正确做法是使用独立用户,并让该用户对/srv/mc目录有权限。

第二,只在本地保留备份。服务器磁盘损坏或误删除目录时,备份如果也在这台服务器上,等于没有备份。建议定期把备份同步到另一台机器、对象存储或家里的 NAS。

第三,端口全部放行。部分教程会让人直接关闭防火墙,这会导致 SSH、RCON 等服务暴露在公网。只需开放游戏和 SSH 必要端口,其他端口默认禁止。

8.3 下一步可以学习的技术方向

如果这个纯净服跑通后,想让服务器更稳定,可以继续学习以下内容:

  • Linux 用户权限与 systemd 服务管理。
  • JVM 内存优化,理解-Xms-Xmx和 G1GC 参数。
  • 区块加载、实体数量与view-distance的关系。
  • 使用 Fabric 和性能优化类 mod,保持原版机制的同时减少卡顿。
  • 日志分析和监控告警,比如设置磁盘空间不足时的提醒。

“6月新开服务器”听起来只是一个招募贴话题,但真正能让服务器活到 7 月、8 月的,不是一次性的热情,而是服务端是否稳定、存档是否安全、规则是否清晰。把搭建和运维当做一个完整的工程来做,小伙伴也会玩得更安心。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 3:04:39

接口不响应?一文掌握连接超时与读取超时的排查与防御

明明刚才还连得上,为什么现在就不接电话了!“六花”不是你的女朋友,也不是某位客服,而是你在生产环境里调用率最高的那个服务。你客户端里那行http://sixflower/api/order,就是你在拨出去的电话;“Connecti…

作者头像 李华
网站建设 2026/9/7 3:04:24

激光甲烷遥测解决方案:感知+平台+应用的 3 层架构拆解

城市燃气管网分布广泛、埋设隐蔽,泄漏检测长期面临"到不了、测不准、来不及"的现实难题。以可调谐激光吸收光谱技术为核心的激光甲烷遥测解决方案,通过远距离非接触方式捕捉甲烷浓度异常,正在成为燃气安全巡检领域的重要技术路径。…

作者头像 李华
网站建设 2026/9/7 3:04:10

智慧排水解决方案:感知+平台+应用的 3 层架构拆解与落地实践

智慧排水解决方案的内涵与适用场景 城市排水系统是一个包括源、厂、站、网、河的系统工程,管网淤堵、破损、外水入渗入流、河水倒灌、混错接等问题多样且成因复杂,单一环节、碎片化的治理方式难以彻底解决城市排水问题。尤其在部分管网建设年限久远、资料…

作者头像 李华
网站建设 2026/9/7 3:04:07

智慧排水平台报价揭秘:影响价格的 6 个关键因素与落地实践

当前,各地排水管理部门在推进信息化建设时,最常问的一句话往往是“智慧排水平台报价多少”。从沿海城市到内陆县城,不同项目的预算差异巨大,有的仅需数十万元运维费,有的则高达数百万元建设费,这让不少决策…

作者头像 李华
网站建设 2026/9/7 3:04:03

LTSpice AC扫描实战:差模共模激励设置与共模电感阻抗测量

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华