从 Java 安装到自动重启,手把手教你在 Linux VPS 上跑起一个稳定的 Minecraft Java Edition 服务器。
准备工作
开始之前,确保你有:
- 运行 Ubuntu 22.04 / Debian 12(或其他主流发行版)的 VPS 或物理机
- 至少 2 GB RAM(推荐 4 GB 以上),10 GB 以上磁盘空间
- root 或 sudo 权限
- 防火墙已开放端口 25565(TCP)
STEP 01 · 安装 Java
Minecraft 1.21+ 需要 Java 21:
bash
# 更新包索引
sudo apt update && sudo apt upgrade -y
# 安装 OpenJDK 21
sudo apt install -y openjdk-21-jre-headless
# 验证安装
java -version
版本对照:1.16.5 以下用 Java 8,1.17~1.20.4 用 Java 17,1.20.5+ 用 Java 21。
STEP 02 · 创建专用用户
不建议用 root 直接运行服务器:
bash
sudo useradd -m -s /bin/bash minecraft
sudo su - minecraft
mkdir ~/server && cd ~/server
STEP 03 · 下载服务端
三种主流选择:
Vanilla(原版)
bash
wget -O server.jar \
https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar
Paper(推荐,高性能 + 插件支持)
bash
wget -O server.jar \
https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/68/downloads/paper-1.21.1-68.jar
Fabric(模组服务器)
bash
wget -O fabric-installer.jar \
https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar
java -jar fabric-installer.jar server -mcversion 1.21.1 -downloadMinecraft
STEP 04 · 首次启动与 EULA
vbscript
java -Xms1G -Xmx3G -jar server.jar nogui
首次会因未同意 EULA 退出,执行:
ini
sed -i 's/eula=false/eula=true/' eula.txt
STEP 05 · 配置 server.properties
常用参数:
参数 默认值 说明
server-port 25565 监听端口 max-players 20 最大玩家数 gamemode survival 游戏模式 difficulty easy 难度 online-mode true 正版验证(离线服设 false) view-distance 10 视距,内存小建议调到 6-8 level-seed (空) 世界种子,留空随机 motd A Minecraft Server 服务器列表描述
STEP 06 · 用 systemd 托管服务
退出 minecraft 用户,回到 sudo 账户,创建服务文件:
bash
sudo nano /etc/systemd/system/minecraft.service
写入以下内容:
ini
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
启用并启动:
bash
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
sudo systemctl status minecraft
# 实时查看日志
sudo journalctl -u minecraft -f
STEP 07 · 防火墙配置
ufw(Ubuntu)
bash
sudo ufw allow 25565/tcp
sudo ufw reload
firewalld(CentOS/RHEL)
css
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload
注意:如果用的是云服务器(阿里云、腾讯云等),还需要在控制台的 安全组里手动开放 25565 端口。
STEP 08 · 性能调优(Aikar's Flags)
社区公认的 Minecraft 专用 JVM 参数(以 4G 内存为例):
ruby
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-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
其他建议:
- 将 view-distance 控制在 8 以内
- 使用 Paper 代替 Vanilla
- 安装 Spark 插件监控 TPS
- 定期用 tar 备份世界文件
STEP 09 · 常用管理命令
bash
# 启动 / 停止 / 重启
sudo systemctl start|stop|restart minecraft
# 实时日志
sudo journalctl -u minecraft -f
# 手动备份世界
tar -czf ~/backup-$(date +%Y%m%d).tar.gz ~/server/world
# 查看内存占用
ps aux | grep java
提示:用 systemd 管理时无法直接输入服务器命令,推荐用 tmux 或 通过 mcrcon 工具远程执行 /op 等指令。
总结
- 安装 Java 21
- 创建专用用户 minecraft
- 下载服务端(Paper 首选)
- 同意 EULA,配置 server.properties
- 用 systemd 托管,开机自启 + 崩溃自动重启
- 开放防火墙端口 25565
- 使用 Aikar's Flags 优化性能