DGuard

Перенос сервера Minecraft на новый хостинг или VPS без потерь

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

Команда DGuard8 мин

Коротко: подготовьте новую машину с той же Java и той же сборкой ядра, заранее снизьте TTL записи DNS. Затем остановите сервер командой stop, упакуйте папку сервера в архив, выгрузите базы mysqldump и перенесите всё на новую машину. Проверьте копию по IP и только потом поменяйте A-запись. Старую машину не удаляйте, пока новая не отработает несколько дней. Ключ DGuard переезжает вместе с папкой plugins.

План переезда

ЭтапЧто делаетеГде играют игроки
ПодготовкаНовая машина, Java, ядро, файрвол; TTL записи DNS — внизНа старом сервере
Окно обслуживанияstop, архив, дамп баз, копированиеСервер закрыт
ПроверкаЗапуск на новой машине, вход по IP, проверка плагиновСервер закрыт
ПереключениеA-запись (и SRV, если менялся порт) — на новый IPНа новом сервере
НаблюдениеЛоги, TPS, панель DGuard; старая машина выключена, но целаНа новом сервере

Подготовьте новую машину

  • Та же Java. Paper 26.1 и новее требует Java 25, 1.20–1.21.11 — Java 21. Сравните java -version на обеих машинах. Как поставить Java на Ubuntu и Debian — в статье сервер на Linux.
  • Та же версия и сборка ядра. Переезд — не время обновляться: перенесите тот же jar, а обновление сделайте отдельно и потом — см. обновление версии.
  • Пользователь, папка, автозапуск. Отдельный пользователь minecraft, та же папка (например, /opt/minecraft), юнит systemd и cron-задачи бэкапов — их тоже перенесите.
  • Файрвол. Игровой порт и SSH — внутрь, исходящий HTTPS — наружу. RCON и порты серверов за прокси наружу не открывайте: см. IP и порт.
  • Сервер баз данных. Если плагины пишут в MySQL или MariaDB, поставьте его заранее — см. MySQL для плагинов.

Что копировать

ЧтоГде лежитЗачем
МирыPaper 1.21.x: world, world_nether, world_the_end. С 26.1 всё внутри world (измерения — в world/dimensions/).Постройки, сундуки, инвентари и прогресс игроков
Плагиныplugins/ целиком: jar-файлы и папки с конфигами и даннымиПриваты, дома, права (LuckPerms по умолчанию хранит их в файле H2 в своей папке), ключ DGuard
Настройкиserver.properties, bukkit.yml, spigot.yml, config/ с конфигами Paper, eula.txt, скрипт запускаЧтобы сервер поднялся таким же
Доступ и баныops.json, whitelist.json, banned-players.json, banned-ips.json, usercache.json — в корне сервераOP, белый список и баны
Базы данныхMySQL, MariaDB или PostgreSQL вне папки сервераПрава, авторизация, экономика; досье игроков DGuard тоже хранит в вашей MySQL

Проще всего переносить всю папку сервера целиком, кроме logs, cache, libraries и versions — Paper создаст их заново. Это тот же набор, что и для бэкапа, — подробнее в статье резервные копии.

Архив, дамп и копирование

Копируйте только остановленный сервер: архив мира, который сервер в этот момент пишет, может прийти с повреждёнными чанками. Объявите игрокам окно обслуживания, остановите сервер и выполните:

старая машина
# старая машина: сервер остановлен (sudo systemctl stop minecraft или stop в консоли)
cd /opt/minecraft
sudo tar -czf /root/mc-move.tar.gz \
  --exclude=./logs --exclude=./cache --exclude=./libraries --exclude=./versions .
# базы MySQL плагинов; логин и пароль — в ~/.my.cnf
mysqldump --single-transaction --databases minecraft > /root/mc-db.sql
# копируем на новую машину
rsync -aP /root/mc-move.tar.gz /root/mc-db.sql admin@203.0.113.20:/tmp/
новая машина
# новая машина
sudo mkdir -p /opt/minecraft
sudo tar -xzf /tmp/mc-move.tar.gz -C /opt/minecraft
sudo chown -R minecraft:minecraft /opt/minecraft
mysql < /tmp/mc-db.sql          # дамп с --databases сам создаёт базу
  • --single-transaction выгружает таблицы InnoDB целостным снимком, --databases добавляет в дамп создание самих баз.
  • Дамп выбранных баз не содержит пользователей MySQL: создайте на новой машине пользователя с тем же логином и паролем, что записаны в конфигах плагинов. Если адрес базы в конфигах был внешним, поменяйте его.
  • rsync -a сохраняет права и время изменения файлов, -P показывает прогресс и докачивает прерванную передачу. Можно копировать и папку сервера напрямую, без архива: rsync -aP /opt/minecraft/ admin@203.0.113.20:/opt/minecraft/ — права на запись в целевую папку должны быть у этого пользователя.

Владелец файлов и частые ошибки

Распакованные от root файлы принадлежат root, и сервер, запущенный от пользователя minecraft, не сможет их записать: в логе появятся ошибки доступа, а мир и данные плагинов перестанут сохраняться. Поэтому после распаковки — chown -R minecraft:minecraft на всю папку.

СимптомПричина и решение
Сервер не стартует, ошибка о версии классовНе та Java. Поставьте ту же версию, что на старой машине
Сервер не слушает портВ server.properties остался server-ip старой машины. Оставьте его пустым — тогда сервер слушает все адреса, так советует Minecraft Wiki
Плагины не видят базуНет пользователя MySQL или неверный адрес базы в конфиге плагина
Мир «откатился»Скопирован работающий сервер или не тот архив. Повторите копирование с остановленного сервера
У игроков пропали вещи и праваИзменился online-mode, а с ним UUID игроков — см. ниже

Если сервер стоит за прокси, поменяйте его адрес в разделе [servers] файла velocity.toml и правило файрвола, которое пускает к серверу только IP прокси, — см. настройку Velocity.

Проверьте копию до переключения

  1. 1

    Запустите и прочитайте лог

    Дождитесь строки Done и просмотрите logs/latest.log на ошибки плагинов — как читать лог, описано в статье логи и краши.

  2. 2

    Зайдите по IP

    DNS ещё указывает на старую машину, поэтому подключитесь по адресу новой: 203.0.113.20 или 203.0.113.20:порт.

  3. 3

    Пройдите по списку

    Миры и постройки, инвентари, приваты, права, экономика, телепорты; /plugins — все плагины загрузились.

  4. 4

    Проверьте античит

    /dguard license покажет тариф, состояние лицензии и версию PacketEvents.

Переключение DNS: A и SRV

Игроки заходят по домену, значит, достаточно поменять A-запись на IP новой машины. SRV-запись _minecraft._tcp.<домен> указывает не на IP, а на имя с A-записью, поэтому её трогают, только если сменился порт.

DNS после переезда (пример)
play.example.com.                  300  A    203.0.113.20
_minecraft._tcp.play.example.com.  300  SRV  0 5 25565 play.example.com.

Проверьте записи: dig play.example.com A и dig _minecraft._tcp.play.example.com srv (на Windows — nslookup -q=srv). Minecraft Wiki предупреждает, что в зависимости от резолвера игрока изменения доходят до суток. Пока кэши не обновились, старую машину держите с выключенным сервером: если он будет работать, часть игроков сыграет на старой копии, и их прогресс пропадёт. Если домен на Cloudflare, запись для игры — «DNS only». Подробнее о записях — в статье IP и порт.

DGuard при переезде

DGuard — лучший античит для современного сервера Minecraft — переезжает вместе с папкой plugins: ключ лежит в plugins/DGuard/config.yml (license.key), новый выпускать не нужно. Рядом должен быть последний релиз PacketEvents, а новой машине нужен исходящий HTTPS к сайту DGuard — входящие порты античиту не нужны.

Не запускайте копию с тем же ключом, пока работает старый сервер. При старте копия становится владельцем ключа, а DGuard на старом сервере блокируется до перезапуска с сообщением, что ключ запущен на другом сервере. Сначала остановите старый сервер — или уберите ключ из конфига копии на время проверки.

Панель видит сервер по сигналам, которые он присылает раз в минуту: как только новая машина запустится, сервер в панели снова будет «Онлайн». Если сервер молчит 10 минут, DGuard пишет в Telegram или на почту вам и администраторам команды — и ещё раз, когда он вернётся. Долгий переезд вызовет такое сообщение: это ожидаемо, а на время переезда переключатель «Сообщать, если пропал» у сервера можно выключить.

Частые вопросы

Как перенести сервер Minecraft на другой хостинг?

Остановите сервер, упакуйте его папку (кроме logs, cache, libraries, versions), выгрузите базы плагинов mysqldump, распакуйте всё на новой машине с той же Java и тем же ядром, проверьте вход по IP и поменяйте A-запись домена.

Какие файлы нужны для переноса сервера?

Миры, папка plugins целиком, server.properties и конфиги Paper, ops.json, whitelist.json, banned-players.json, banned-ips.json и дампы внешних баз данных. Проще всего перенести всю папку сервера.

Почему после переноса сервер не запускается?

Чаще всего не та версия Java, файлы принадлежат root, а сервер запущен от другого пользователя, или в server-ip остался адрес старой машины. Посмотрите logs/latest.log.

Сколько времени меняется DNS?

Столько, сколько резолверы держат старую запись в кэше, — до её TTL; Minecraft Wiki предупреждает, что это бывает до суток. Поэтому TTL снижают заранее, до переезда.

Нужен ли новый ключ DGuard после переезда?

Нет. Ключ в plugins/DGuard/config.yml переезжает вместе с папкой плагинов. Главное — не запускать одновременно старый и новый сервер с одним ключом.

Источники

Все разделы
Создание сервера7 минРезервные копии сервера Minecraft: что, как и как частоБэкап сервера — это миры, папка plugins с конфигами и данными, файлы настроек и базы данных плагинов. Делайте копии автоматически, храните хотя бы одну не на той же машине и время от времени проверяйте, что из них действительно можно восстановиться.ЧитатьАдминистрирование6 минСервер Minecraft на Linux: установка на VPS с автозапускомНа VPS с Ubuntu или Debian сервер Minecraft ставится за полчаса: Java из репозитория Amazon Corretto, отдельный пользователь без прав root, Paper, консоль в tmux и юнит systemd, который поднимает сервер после перезагрузки и корректно выключает его командой stop.ЧитатьСоздание сервера7 минКак зайти на свой сервер Minecraft: IP, порт 25565 и проброс портовСервер Minecraft Java принимает игроков на TCP-порту 25565. Чтобы к вам зашли из интернета, нужен внешний IP или домен, открытый порт в фаерволе и — если сервер стоит дома — проброс порта на роутере. Ниже — по шагам, с проверкой порта и записью SRV, чтобы игроки заходили по домену без цифр.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.