适用系统:Ubuntu 20.04/22.04/24.04、Debian 11/12、CentOS/RHEL 8/9
MC版本:1.21.1
Java要求:Java 21(必须)
涵盖内容:apt安装Java · 二进制包安装Java · 原版服务端下载配置 · 服务器启动 · 性能优化 · 开机自启
一、环境准备与版本说明
在开始动手之前,建议先升级一下系统包列表:
# 更新系统软件包列表
sudo apt update
# 然后可选更新已安装的包
sudo apt upgrade -y
选择Java安装方式
如果你只是想快速搭建、对Java版本没有特殊要求,方式一(apt) 最简单省事。
如果你需要精确控制Java版本、或服务器上已经有其他Java版本需要共存,方式二(二进制) 更灵活。
二、安装 Java 21(两种方式任选其一)
方式一:通过 apt 包管理器安装(推荐)
这是最简便的方式,适合 Ubuntu 和 Debian 系统。截至编写时,Ubuntu 24.04 LTS 已默认提供 OpenJDK 21。
# 安装 OpenJDK 21
sudo apt install openjdk-21-jdk -y
# 验证是否安装成功
java -version
安装成功后,系统会显示类似如下的版本信息:
openjdk version "21.0.4" 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu224.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu224.04, mixed mode, sharing)
如果只打算运行服务器不做开发,也可以只装 JRE(更轻量):
sudo apt install openjdk-21-jre -y
不同Ubuntu版本的说明
- Ubuntu 24.04 LTS:直接支持
openjdk-21-jdk- Ubuntu 22.04 / Debian 12:理论上仓库也包含 OpenJDK 21,若找不到可换方式二或手动添加 PPA
- 更老版本(Ubuntu 20.04 等):建议使用方式二(二进制安装)
方式二:通过二进制包手动安装
此方式适用于想要安装特定版本(如 Oracle JDK 21)的用户。
步骤 1:下载 JDK 21 压缩包
访问Oracle JDK 21 下载页面,选择 Linux 平台的 tar.gz 格式包。或者也可以在服务器上用 wget 直接下载:
# 进入 /usr/local 目录
cd /usr/local
# 创建 java 目录
sudo mkdir -p java
cd java
# 下载 JDK 21(以下为示例链接,请以 Oracle 官网最新链接为准,或修改版本号)
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
步骤 2:解压并配置环境变量
# 解压缩
sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz
# 编辑环境变量文件
sudo nano /etc/profile
export JAVA_HOME=/usr/local/java/jdk-21.0.6
export PATH=$JAVA_HOME/bin:$PATH
步骤 3:使配置生效并验证
# 让环境变量立即生效
source /etc/profile
# 验证安装
java -version
三、下载与配置 Minecraft 服务端
步骤 1:下载官方服务端 JAR
访问 Minecraft 官方服务器下载页面 ,如果需要添加模组访问mc server forge,下载 server.jar或直接在服务器上用 wget 下载:
# 创建服务器目录
mkdir -p ~/minecraft-server
cd ~/minecraft-server
# 下载 1.21.1 服务端 JAR(如果官方链接版本号有更新,请修改对应下载地址)
wget https://piston-data.mojang.com/v1/objects/59353fb1eb7e83328fd5caa1b5b8b6e83bfa3f39/server.jar -O server.jar
# 首次运行时会提醒具体下载地址,也可以从官方页面获取最新链接
步骤 2:首次启动服务器
首次启动会生成 eula.txt、server.properties 等配置文件,然后自动退出:
java -Xmx2G -Xms1G -jar server.jar nogui
启动参数说明
-Xmx2G:最大分配 2GB 内存-Xms1G:初始化内存为 1GBnogui:不显示图形界面(服务器通常无需 GUI)
步骤 3:同意 EULA
用编辑器打开 eula.txt:
nano eula.txt
将 eula=false 改为 eula=true,保存退出。
此时目录结构大致如下:
- ~/minecraft-server/
- ├── server.jar
- ├── eula.txt # ← 已改为 true
- ├── server.properties
- ├── logs/
- ├── world/
- ├── banned-players.json
- ├── banned-ips.json
- ├── ops.json
- └── whitelist.json
步骤 4:调整服务器设置
根据需要修改 server.properties,常用配置项包括:
nano server.properties
配置项 默认值 说明
server-port 25565 服务器端口
max-players 20 最大玩家数
online-mode true 是否正版验证
difficulty easy 游戏难度
gamemode survival 默认游戏模式
motd A Minecraft Server 服务器列表描述
view-distance 10 视距
离线模式:若需允许盗版玩家进入,将 online-mode 设为 false。
四、启动服务器与联机测试
正式启动
cd ~/minecraft-server
java -Xmx2G -Xms1G -jar server.jar nogui
看到 Done! 字样即启动成功,说明服务器已在 25565 端口监听。
客户端连接测试
打开 Minecraft Java 版客户端,选择「多人游戏」→「添加服务器」,输入服务器 IP 地址(本地用 127.0.0.1,云服务器用公网 IP)。
云服务器用户请注意:
确保在云服务商控制台的安全组/防火墙中,放行 TCP 25565 端口入站规则,否则无法从外网连接。
五、进阶优化与维护(可选,看服务器性能和人数,如果少建议可无需看下文)
1. 性能优化 JVM 参数
针对内存和 GC 做针对性调优:
java -Xmx4G -Xms4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 -jar server.jar nogui
2. 使用 screen 保持后台运行
直接 SSH 运行服务器,断开连接后进程也会终止。使用 screen 可以让服务器在后台持续运行:
# 安装 screen(若未安装)
sudo apt install screen -y
# 创建新的 screen 会话并启动服务器
screen -S minecraft
java -Xmx4G -Xms4G -jar server.jar nogui
# 按 Ctrl+A 然后按 D 即可退出会话(服务器继续在后台运行)
# 重新连接会话:
screen -r minecraft
3. 配置 systemd 开机自启
创建 systemd 服务文件,实现服务器开机自动启动:
sudo nano /etc/systemd/system/minecraft.service
填入以下内容:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
Type=simple
User=你的用户名
WorkingDirectory=/home/你的用户名/minecraft-server
ExecStart=/usr/bin/java -Xmx4G -Xms4G -jar server.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
sudo systemctl status minecraft # 查看运行状态
4. 常用服务器管理命令
游戏内或服务器控制台可执行常用管理命令:
| 命令 | 效果 |
|---|---|
/stop | 正常关闭服务器并保存存档 |
/op 玩家名 | 赋予玩家管理员权限 |
/whitelist add 玩家名 | 将玩家加入白名单 |
/ban 玩家名 | 封禁玩家 |
/save-all | 手动保存世界数据 |
/list | 查看当前在线玩家 |
5. 备份策略
建议定期备份 world、world_nether 和 world_the_end 文件夹以及配置文件:
# 创建备份脚本 backup.sh
#!/bin/bash
cd ~/minecraft-server
tar -czf backups/server-$(date +%Y%m%d-%H%M).tar.gz world world_nether world_the_end *.json *.properties
配合 crontab 设置定时任务即可实现自动备份。
六、常见问题排查
问题 1:Error: A JNI error has occurred
原因:Java 版本不对。Minecraft 1.21.1 必须使用 Java 21。运行 java -version 检查版本,如果不是 21.x 请按本文重新安装。
问题 2:Can't keep up! Is the server overloaded?
原因:服务器性能不足。可尝试降低 view-distance、减少同时加载的区块数,或增加服务器内存。
问题 3:You need to agree to the EULA
原因:未同意最终用户协议。编辑 eula.txt,将 eula=false 改为 eula=true。
问题 4:外网无法连接
检查防火墙/安全组是否放行 25565 端口,确认 server.properties 中 server-ip 留空(或设为 0.0.0.0)。
问题 5:端口被占用
如果 25565 端口已被其他程序占用,可在 server.properties 中更改 server-port 为其他值(如 25566)。
七、总结与进阶方向
至此,你已经完成了一个完整的 Minecraft 1.21.1 Java 版服务器搭建!回顾整个过程:
| 阶段 | 关键步骤 |
|---|---|
| Java 环境 | apt 安装 openjdk-21-jdk 或二进制包手动安装 |
| 服务端 | 下载 server.jar → 首次启动生成配置 → 同意 EULA |
| 启动运行 | java -Xmx4G -Xms4G -jar server.jar nogui |
| 后台维持 | 使用 screen 或 systemd 服务 |
| 安全防护 | 配置防火墙 + 白名单 + 定期备份 |
下一步可以尝试
- 安装 Paper/Spigot 服务端:获得更好的性能和插件支持
- 安装 Fabric/Forge:添加各种有趣的模组
- 搭建 MCSManager 面板:通过网页可视化管理服务器
- 配置 Geyser 插件:让基岩版(手机/主机)玩家也能加入
- 设置自动重启:使用 cron 或 systemd timer 定时重启清理内存
Happy Crafting! 🎮
祝你开服顺,游戏快乐.

Comments NOTHING