Перейти к содержанию

Minecraft в 2026 году

Материал из RAMBA Wiki
Minecraft Java Server

Установка и эксплуатация выделенного сервера Minecraft на Ubuntu 24.04 LTS

Minecraft Java Server — выделенный сервер для Minecraft Java Edition.

В этой статье рассматривается установка сервера на Ubuntu 24.04 LTS с отдельным системным пользователем, автоматическим запуском через systemd, RCON-управлением и резервным копированием.

Конфигурация подходит для виртуальной машины, физического сервера или LXC-контейнера.

Архитектура

Базовая схема сервера:

                    Игроки
                       │
                       │ TCP :25565
                       ▼
               ┌───────────────┐
               │   Minecraft   │
               │ Java Server   │
               └───────┬───────┘
                       │
              ┌────────┴────────┐
              │                 │
              ▼                 ▼
          systemd              RCON
                                  │
                                  ▼
                               mcrcon

В production-конфигурации Minecraft запускается не вручную, а как системная служба.

Системные требования

Параметр Минимально Рекомендуется
CPU 2 vCPU 4+ производительных ядра
RAM 4 ГБ 8 ГБ и более
Диск 20 ГБ 50+ ГБ SSD
ОС Ubuntu 24.04 LTS Ubuntu 24.04 LTS
Сеть 25565/TCP Статический IP или NAT

При большой дальности прорисовки, большом количестве игроков или тяжёлых модификациях требования к CPU и RAM могут значительно возрастать.

Подготовка системы

Обновляем систему:

apt update
apt upgrade -y

Устанавливаем необходимые инструменты:

apt install -y \
    wget \
    curl \
    git \
    nano \
    unzip \
    build-essential

Проверяем время и часовой пояс:

timedatectl

При необходимости:

timedatectl set-timezone Europe/Moscow

Установка Java

Версия Java зависит от версии Minecraft.

Перед установкой рекомендуется проверить требования конкретной версии сервера.

Для современных версий Minecraft обычно используется Java 21:

apt install -y openjdk-21-jdk

Проверяем:

java -version

Пример:

openjdk version "21"
OpenJDK Runtime Environment
OpenJDK 64-Bit Server VM

Проверка установленной Java

Путь до Java:

which java

Обычно:

/usr/bin/java

Создание пользователя Minecraft

Minecraft не следует запускать от имени root.

Создаём отдельного системного пользователя:

useradd \
    --system \
    --create-home \
    --user-group \
    --home-dir /opt/minecraft \
    --shell /bin/bash \
    minecraft

Проверяем:

id minecraft

Переходим под него:

su - minecraft

Домашним каталогом пользователя будет:

/opt/minecraft

Структура каталогов

Создаём:

mkdir -p ~/server
mkdir -p ~/backups
mkdir -p ~/tools

Структура:

/opt/minecraft/
├── server/
│   ├── server.jar
│   ├── server.properties
│   ├── eula.txt
│   ├── world/
│   └── logs/
│
├── backups/
│
└── tools/

Назначение:

  • server — сервер Minecraft;
  • backups — резервные копии;
  • tools — вспомогательные утилиты.

Установка mcrcon

mcrcon используется для отправки команд Minecraft через RCON.

Клонируем проект:

git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon

Компилируем:

cd ~/tools/mcrcon
make

Проверяем:

./mcrcon -v

Установка Minecraft Server

Переходим:

cd /opt/minecraft/server

Актуальный файл server.jar необходимо скачивать с официального сайта Minecraft/Mojang.

После получения ссылки:

wget -O server.jar \
'https://piston-data.mojang.com/.../server.jar'

Проверяем:

ls -lh server.jar

Первый запуск

Первый запуск нужен для генерации конфигурации:

java -Xms2G -Xmx4G -jar server.jar nogui

Сервер остановится, поскольку EULA ещё не принята.

После запуска появятся:

eula.txt
server.properties
logs/

Принятие EULA

Открываем:

nano eula.txt

Меняем:

eula=false

на:

eula=true

Сохраняем файл.

Базовая настройка server.properties

Открываем:

nano server.properties

Основные параметры:

server-port=25565

max-players=100

online-mode=true

enable-command-block=false

view-distance=10
simulation-distance=10

motd=RAMBA-ART Minecraft Server

Для публичного сервера рекомендуется оставлять:

online-mode=true

Это включает проверку учётных записей Mojang/Microsoft.

Настройка RCON

В `server.properties`:

enable-rcon=true
rcon.port=25575
rcon.password=CHANGE_THIS_PASSWORD
broadcast-rcon-to-ops=true

После изменения сервер необходимо перезапустить.

Безопасность RCON

RCON не рекомендуется публиковать напрямую в Интернет.

Предпочтительная схема:

mcrcon
   │
   │ 127.0.0.1:25575
   ▼
Minecraft Server

То есть порт `25575` должен использоваться только локально либо через защищённую административную сеть/VPN.

Проверка ручного запуска

Запускаем:

cd /opt/minecraft/server

java -Xms4G -Xmx6G \
    -jar server.jar \
    nogui

Если сервер успешно загрузился, в консоли появится сообщение примерно:

Done (...)! For help, type "help"

После проверки останавливаем:

stop

Создание systemd-службы

Выходим из пользователя Minecraft:

exit

Создаём:

nano /etc/systemd/system/minecraft.service

Содержимое:

[Unit]
Description=Minecraft Java Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple

User=minecraft
Group=minecraft

WorkingDirectory=/opt/minecraft/server

ExecStart=/usr/bin/java \
    -Xms4G \
    -Xmx6G \
    -jar /opt/minecraft/server/server.jar \
    nogui

Restart=on-failure
RestartSec=10

SuccessExitStatus=0 143

LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

Применяем:

systemctl daemon-reload
systemctl enable --now minecraft

Проверяем:

systemctl status minecraft

Управление сервером

Запуск:

systemctl start minecraft

Остановка:

systemctl stop minecraft

Перезапуск:

systemctl restart minecraft

Статус:

systemctl status minecraft

Логи:

journalctl -u minecraft -f

Последние 100 строк:

journalctl -u minecraft -n 100

Подключение через RCON

Под пользователем Minecraft:

su - minecraft

Подключение:

/opt/minecraft/tools/mcrcon/mcrcon \
    -H 127.0.0.1 \
    -P 25575 \
    -p 'CHANGE_THIS_PASSWORD' \
    -t

После подключения можно выполнять команды сервера:

list
say Server restart in 5 minutes
save-all
whitelist list
stop

Выход из интерактивного режима mcrcon:

Q

Настройка Firewall

Для игроков требуется только:

25565/TCP

При использовании UFW:

ufw allow 25565/tcp

Проверяем:

ufw status

RCON-порт 25575/TCP не следует открывать для всего Интернета.

Если сервер находится в LXC или VM под Proxmox, правила можно централизованно управлять через Proxmox Firewall.

Проверка порта Minecraft

Проверяем локально:

ss -ltnp | grep 25565

Ожидаемый результат:

LISTEN ... :25565

Также можно проверить процесс:

ps aux | grep '[s]erver.jar'

Резервное копирование

Для корректного backup мира желательно сначала заставить Minecraft записать данные на диск.

Создаём конфигурационный файл для RCON:

nano /opt/minecraft/.rcon.env

Содержимое:

RCON_HOST=127.0.0.1
RCON_PORT=25575
RCON_PASSWORD='CHANGE_THIS_PASSWORD'

Ограничиваем доступ:

chown minecraft:minecraft /opt/minecraft/.rcon.env
chmod 600 /opt/minecraft/.rcon.env

Создаём backup-скрипт:

nano /opt/minecraft/tools/backup.sh

Содержимое:

#!/bin/bash

set -e

source /opt/minecraft/.rcon.env

RCON="/opt/minecraft/tools/mcrcon/mcrcon"

BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"

TIMESTAMP="$(date +%F-%H-%M-%S)"
BACKUP_FILE="${BACKUP_DIR}/minecraft-${TIMESTAMP}.tar.gz"

$RCON \
    -H "$RCON_HOST" \
    -P "$RCON_PORT" \
    -p "$RCON_PASSWORD" \
    "save-off"

$RCON \
    -H "$RCON_HOST" \
    -P "$RCON_PORT" \
    -p "$RCON_PASSWORD" \
    "save-all flush"

tar \
    --exclude='./logs' \
    -czf "$BACKUP_FILE" \
    -C "$SERVER_DIR" \
    .

$RCON \
    -H "$RCON_HOST" \
    -P "$RCON_PORT" \
    -p "$RCON_PASSWORD" \
    "save-on"

find "$BACKUP_DIR" \
    -type f \
    -name 'minecraft-*.tar.gz' \
    -mtime +7 \
    -delete

Делаем исполняемым:

chmod +x /opt/minecraft/tools/backup.sh
chown minecraft:minecraft /opt/minecraft/tools/backup.sh

Тестируем:

su - minecraft -c '/opt/minecraft/tools/backup.sh'

Проверяем:

ls -lh /opt/minecraft/backups/

Автоматическое резервное копирование

Переходим:

su - minecraft

Открываем:

crontab -e

Например, ежедневный backup в 04:00:

0 4 * * * /opt/minecraft/tools/backup.sh >> /opt/minecraft/backups/backup.log 2>&1

Проверяем:

crontab -l

Обновление Minecraft Server

Перед обновлением:

  1. создаём резервную копию;
  2. останавливаем сервер;
  3. сохраняем старый `server.jar`;
  4. устанавливаем новый;
  5. запускаем сервер;
  6. проверяем логи и совместимость мира.

Пример:

systemctl stop minecraft

cp /opt/minecraft/server/server.jar \
   /opt/minecraft/server/server.jar.old

После загрузки нового файла:

systemctl start minecraft
journalctl -u minecraft -f

Проверка ресурсов

CPU и память:

top

или:

htop

Память:

free -h

Диск:

df -h

Размер мира:

du -sh /opt/minecraft/server/world*

Java и Minecraft

Требования Java меняются вместе с Minecraft.

Общее правило:

Minecraft Java
1.20.5 и новее Java 21
Старые версии Требования зависят от конкретного релиза

Перед обновлением необходимо проверять требования именно для устанавливаемой версии Minecraft.

Не стоит обновлять Java исключительно потому, что появилась более новая версия JDK.

Типичные проблемы

Сервер не запускается

Проверяем:

systemctl status minecraft
journalctl -u minecraft -n 100

Ошибка памяти

Проверяем:

free -h

При необходимости уменьшаем:

-Xmx

Клиенты не подключаются

Проверяем:

ss -ltnp | grep 25565

Затем:

  • Firewall;
  • NAT;
  • проброс портов;
  • публичный IP;
  • `server-port`;
  • `server-ip`.

Обычно `server-ip` рекомендуется оставлять пустым.

RCON не работает

Проверяем:

grep -E 'enable-rcon|rcon.port' \
/opt/minecraft/server/server.properties

И:

ss -ltnp | grep 25575

Рекомендации

Для production-сервера рекомендуется:

  • запускать Minecraft от отдельного пользователя;
  • использовать systemd;
  • не открывать RCON в Интернет;
  • выполнять ежедневные backup;
  • хранить резервные копии вне основного сервера;
  • использовать SSD;
  • контролировать свободное место;
  • регулярно проверять логи;
  • делать backup перед обновлением;
  • обновлять сервер только после проверки совместимости Java и Minecraft.

Полезные команды

Задача Команда
Запуск systemctl start minecraft
Остановка systemctl stop minecraft
Перезапуск systemctl restart minecraft
Статус systemctl status minecraft
Логи journalctl -u minecraft -f
Проверить порт grep 25565
Проверить Java java -version
Проверить память free -h
Проверить диск df -h

Итоговая архитектура

               Minecraft Client
                      │
                      │ TCP :25565
                      ▼
        ┌──────────────────────────┐
        │     Minecraft Server     │
        │                          │
        │        server.jar        │
        └────────────┬─────────────┘
                     │
        ┌────────────┼────────────┐
        │            │            │
        ▼            ▼            ▼
     systemd       mcrcon       backups
                      │
                      ▼
                localhost RCON

Такой вариант удобен для постоянной эксплуатации, обновления, диагностики и восстановления сервера.

См. также

Внешние ссылки