Linux部署我的世界服务器

22 阅读2分钟

从 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:

# 更新包索引
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 直接运行服务器:

sudo useradd -m -s /bin/bash minecraft
sudo su - minecraft
mkdir ~/server && cd ~/server

STEP 03 · 下载服务端

三种主流选择:

Vanilla(原版)

wget -O server.jar \
  https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar

Paper(推荐,高性能 + 插件支持)

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(模组服务器)

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

java -Xms1G -Xmx3G -jar server.jar nogui

首次会因未同意 EULA 退出,执行:

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 账户,创建服务文件:

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

写入以下内容:

[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

启用并启动:

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)

sudo ufw allow 25565/tcp
sudo ufw reload

firewalld(CentOS/RHEL)

sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload

注意:如果用的是云服务器(阿里云、腾讯云等),还需要在控制台的 安全组里手动开放 25565 端口。

STEP 08 · 性能调优(Aikar's Flags)

社区公认的 Minecraft 专用 JVM 参数(以 4G 内存为例):

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 · 常用管理命令

# 启动 / 停止 / 重启
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 等指令。

总结

  1. 安装 Java 21
  2. 创建专用用户 minecraft
  3. 下载服务端(Paper 首选)
  4. 同意 EULA,配置 server.properties
  5. 用 systemd 托管,开机自启 + 崩溃自动重启
  6. 开放防火墙端口 25565
  7. 使用 Aikar's Flags 优化性能