Linux部署我的世界服务器

从 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 等指令。

总结

  1. 安装 Java 21
  2. 创建专用用户 minecraft
  3. 下载服务端(Paper 首选)
  4. 同意 EULA,配置 server.properties
  5. 用 systemd 托管,开机自启 + 崩溃自动重启
  6. 开放防火墙端口 25565
  7. 使用 Aikar's Flags 优化性能
相关推荐
Flittly9 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨10 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜10 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
SimonKing16 小时前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户2986985301417 小时前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波1 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
nanxun8862 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103512 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师3 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师3 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端