Как перенести сервер на новую версию Minecraft
Подготовка и резервное копирование
Авторизуйтесь в панели proxify.cloud
Зайдите в личный кабинет, перейдите в раздел «Мои услуги» → «Выделенные серверы» и откройте консоль управления (Proxmox VE). Выберите нужную ноду (VM/CT) с Ubuntu.Подключитесь по SSH к серверу
Используйте терминал (Linux/macOS) или PowerShell/WSL (Windows):ssh root@<IP_АДРЕС_СЕРВЕРА>Если используется ключ:
ssh -i ~/.ssh/id_rsa root@<IP_АДРЕС_СЕРВЕРА>Остановите игровой сервер
Предполагаем, что сервер запущен черезsystemd(юнитminecraft.service) или внутриscreen/tmux.
Вариант А (systemd):systemctl stop minecraftВариант Б (screen):
screen -S mc -X stuff "stop\n" sleep 10Убедитесь, что процесс java завершён:
pgrep -f "paper|spigot|purpur|fabric|forge" || echo "Процессов нет"Создайте полный бэкап директории сервера
Стандартный путь:/opt/minecraftили/home/minecraft/server. Подставьте свой.BACKUP_DIR="/root/backups/mc_$(date +%F_%H-%M)" mkdir -p "$BACKUP_DIR" rsync -aHAX --info=progress2 /opt/minecraft/ "$BACKUP_DIR/"Проверьте размер и целостность:
du -sh "$BACKUP_DIR" ls -la "$BACKUP_DIR/"Сделайте дамп базы данных (если используется MySQL/MariaDB/PostgreSQL)
Пример для MariaDB:mysqldump -u root -p minecraft_db > "$BACKUP_DIR/minecraft_db.sql"Для PostgreSQL:
pg_dump -U postgres minecraft_db > "$BACKUP_DIR/minecraft_db.sql"
Обновление системного окружения
Обновите пакеты Ubuntu и Java
Новые версии Minecraft (1.18+) требуют Java 17, 1.20.5+ — Java 21.apt update && apt upgrade -y apt install -y openjdk-21-jre-headlessПроверьте версию:
java -version # Ожидаемый вывод: openjdk version "21.x.x"Настройте альтернативы Java (если несколько версий)
update-alternatives --config javaВыберите строку с
java-21-openjdk.
Получение новой версии серверного ядра
Определите тип ядра и скачайте актуальную сборку
Перейдите в рабочую директорию:cd /opt/minecraftPaper (рекомендуется для Spigot/Paper плагинов):
VERSION="1.21.1" BUILD=$(curl -s "https://api.papermc.io/v2/projects/paper/versions/$VERSION" | jq -r '.builds[-1]') JAR_NAME="paper-${VERSION}-${BUILD}.jar" curl -o "$JAR_NAME" "https://api.papermc.io/v2/projects/paper/versions/$VERSION/builds/$BUILD/downloads/$JAR_NAME"Purpur (оптимизированный форк Paper):
VERSION="1.21.1" BUILD=$(curl -s "https://api.purpurmc.org/v2/purpur/$VERSION" | jq -r '.[-1]') JAR_NAME="purpur-${VERSION}-${BUILD}.jar" curl -o "$JAR_NAME" "https://api.purpurmc.org/v2/purpur/$VERSION/$BUILD/download"Fabric (для модов):
MC_VERSION="1.21.1" LOADER_VERSION=$(curl -s "https://meta.fabricmc.net/v2/versions/loader/$MC_VERSION" | jq -r '.[0].loader.version') INSTALLER_VERSION=$(curl -s "https://meta.fabricmc.net/v2/versions/installer" | jq -r '.[0].version') curl -o fabric-installer.jar "https://maven.fabricmc.net/net/fabricmc/fabric-installer/$INSTALLER_VERSION/fabric-installer-$INSTALLER_VERSION.jar" java -jar fabric-installer.jar server -mcversion "$MC_VERSION" -loader "$LOADER_VERSION" -downloadMinecraft # Получится fabric-server-mc.{version}-loader.{version}-launcher.{version}.jarForge (для модов):
# Скачайте установщик с files.minecraftforge.net для нужной версии # Пример для 1.20.1: curl -o forge-installer.jar "https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.2.0/forge-1.20.1-47.2.0-installer.jar" java -jar forge-installer.jar --installServer # Запустите один раз для генерации библиотек, затем удалите installerОбновите симлинк/скрипт запуска на новый JAR
Если используете systemd, отредактируйте юнит:nano /etc/systemd/system/minecraft.serviceНайдите строку
ExecStartи замените имя jar-файла:ExecStart=/usr/bin/java -Xms4G -Xmx4G -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-1.21.1-123.jar noguiПерезагрузите конфигурацию systemd:
systemctl daemon-reloadЕсли запуск через скрипт
start.sh:sed -i 's/paper-.*\.jar/paper-1.21.1-123.jar/' start.sh chmod +x start.sh
Миграция конфигураций и данных
Обновите
server.propertiesпод новую версию
Сравните свой файл с дефолтным для новой версии (можно сгенерировать временно новый jar'ом в пустой папке). Ключевые параметры, которые часто меняются:# Пример для 1.21+ network-compression-threshold=256 use-native-transport=true region-file-compression=zstd enforce-secure-profile=trueСохраните свои уникальные настройки (
motd,max-players,level-name,pvp,difficultyи т.д.).Проверьте и обновите
spigot.yml,paper-global.yml,bukkit.yml,purpur.yml
Paper/Purpur часто добавляют новые секции. Лучшая стратегия: переименовать старые конфиги в.bak, запустить сервер на 10 секунд для генерации новых, затем перенести свои настройки в свежие файлы (используяdiffилиmeld/vimdiff).mv paper-global.yml paper-global.yml.bak mv spigot.yml spigot.yml.bak # Запуск на генерацию timeout 15 java -jar paper-1.21.1-123.jar nogui # Теперь ручно перенесите значения из .bak в новые файлыОбновите плагины/моды
Критически важно: Плагины для 1.20 не заработают на 1.21 без обновления.- Зайдите на SpigotMC, Modrinth, CurseForge, Hangar.
- Скачайте версии, совместимые с целевой версией Minecraft и версией API ядра (Paper/Spigot/Purpur).
- Удалите несовместимые/заброшенные плагины.
- Пример структуры:
/opt/minecraft/plugins/ ├── ViaVersion-5.2.0.jar ├── LuckPerms-5.4.x.jar └── WorldEdit-7.3.x.jar
Конвертация миров (Data Fixer Upper)
При переходе через мажорные версии (1.17→1.18, 1.20→1.21) происходит автоматическая конвертация чанков при загрузке. Это может вызвать лаги при первом запуске.- Рекомендация: Запустите сервер в тестовом режиме (на другом порту или локально) и дайте ему сконвертировать мир полностью.
- Для предварительной конвертации используйте Minecraft Region Fixer или Chunky (плагин для прегенерации):
# Установите Chunky плагином, затем в консоли: chunky world world chunky radius 5000 chunky start - Следите за логами:
[Server thread/INFO]: Converted 1234 chunks....
Проверка прав доступа и владельца файлов
Если сервер запускается от пользователяminecraft:chown -R minecraft:minecraft /opt/minecraft find /opt/minecraft -type f -name "*.jar" -exec chmod 644 {} \; find /opt/minecraft -type f -name "*.sh" -exec chmod 755 {} \;
Запуск и верификация
Запустите сервер в режиме отладки (foreground)
Не используйте systemd сразу. Запустите вscreenилиtmux, чтобы видеть консоль:su - minecraft -s /bin/bash cd /opt/minecraft screen -S mc_update java -Xms2G -Xmx2G -jar paper-1.21.1-123.jar noguiДождитесь строки
Done (xx.xxxs)! For help, type "help".Проверьте логи на ошибки (ERROR/WARN)
Типичные проблемы:ClassNotFoundException/NoSuchMethodError— несовместимый плагин.Missing registry entry— мод/дата
Комментарии (0)