Как перенести сервер с прошлого хостинга на proxify.cloud
Подготовка на стороне старого хостинга
1. Остановка сервера и создание архива
Зайдите на старый сервер по SSH. Остановите игровой процесс корректно, чтобы сохранить мир и конфиги.
# Если используется systemd
sudo systemctl stop minecraft
# Если запущен в screen/tmux — заходите в сессию и пишете stop
screen -r minecraft
# В консоли сервера:
stop
Создайте архив всей папки сервера. Исключите лишнее (логи, кэш, бэкапы), чтобы ускорить передачу.
cd /home/minecraft
tar --exclude='logs' --exclude='cache' --exclude='backups' --exclude='*.log' -czvf server_backup.tar.gz .
Проверьте размер архива: ls -lh server_backup.tar.gz.
2. Перенос архива на новый сервер (proxify.cloud)
В панели proxify.cloud откройте ваш выделенный сервер → вкладка Console (или подключитесь по SSH с вашего ПК). Узнайте IP нового сервера в разделе Network.
Вариант А: rsync через SSH (рекомендуется, поддерживает докачку).
На старом сервере выполните:
rsync -avz --progress server_backup.tar.gz root@<NEW_IP>:/root/
Вариант Б: scp (если rsync нет).
scp server_backup.tar.gz root@<NEW_IP>:/root/
Вариант В: Если старый хостинг дает только SFTP/панель — скачайте архив к себе, затем загрузите на новый через SFTP (FileZilla/WinSCP) в папку /root/ или /home/minecraft/.
Настройка чистого Ubuntu на proxify.cloud
3. Подключение и обновление системы
В панели proxify.cloud перейдите в Console вашего сервера. Логин: root, пароль — из письма с доступом или установленный вами при заказе.
apt update && apt upgrade -y
apt install -y openjdk-21-jre-headless screen unzip tar rsync curl wget git ufw fail2ban
Важно: Версию Java выбирайте под версию ядра сервера (Paper/Spigot 1.20.4+ → Java 21, 1.18-1.20.1 → Java 17, старые → Java 8/11). На proxify.cloud вы выбираете ISO при заказе, но пакеты ставите сами.
4. Создание пользователя и директорий
Не запускайте сервер от root.
adduser --disabled-password --gecos "" minecraft
usermod -aG sudo minecraft # опционально, для удобства обновлений
mkdir -p /home/minecraft/server
chown -R minecraft:minecraft /home/minecraft
5. Настройка firewall (UFW)
Откройте только нужные порты. Стандартный порт Minecraft — 25565 (TCP). Если используете VoiceChat — 24454 (UDP). RCON — 25575 (TCP, только для локали/VPN).
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment 'SSH'
ufw allow 25565/tcp comment 'Minecraft'
ufw allow 24454/udp comment 'VoiceChat'
ufw enable
В панели proxify.cloud проверьте, что на уровне дата-центра (внешний фаервол) эти порты не заблокированы. Обычно они открыты по умолчанию для выделенных серверов.
Развертывание сервера на новом месте
6. Распаковка архива
Переключитесь на пользователя minecraft и распакуйте файлы.
su - minecraft
cd /home/minecraft/server
tar -xzvf /root/server_backup.tar.gz
# Если архив лежит в /home/minecraft/server_backup.tar.gz — укажите правильный путь
ls -la # проверьте наличие server.jar, eula.txt, папок world, plugins, mods
7. Проверка и исправление eula.txt
Файл должен содержать eula=true.
echo "eula=true" > eula.txt
8. Подбор запускального скрипта (start.sh)
Создайте файл запуска с оптимальными флагами JVM для выделенного сервера. Определите объем RAM: на proxify.cloud смотрите тариф (например, 32 ГБ). Оставьте 2-4 ГБ под систему.
cat > start.sh << 'EOF'
#!/bin/bash
# Настройки памяти: -Xms (начальная) = -Xmx (максимальная) для избежания пауз GC
# Пример для 28ГБ из 32ГБ:
JAVA_ARGS="-Xms28G -Xmx28G"
# Современные флаги G1GC/ZGC (Java 17/21):
JAVA_ARGS="$JAVA_ARGS -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200"
JAVA_ARGS="$JAVA_ARGS -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC"
JAVA_ARGS="$JAVA_ARGS -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40"
JAVA_ARGS="$JAVA_ARGS -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5"
JAVA_ARGS="$JAVA_ARGS -Dterminal.jline=false -Dterminal.ansi=true"
# Определение jar-файла (Paper/Spigot/Purpur/Fabric/Forge)
SERVER_JAR=$(ls -1 *.jar | grep -E '(paper|spigot|purpur|fabric|forge|server)' | head -n1)
if [ -z "$SERVER_JAR" ]; then
echo "JAR файл не найден!"
exit 1
fi
echo "Запуск $SERVER_JAR с аргументами: $JAVA_ARGS"
java $JAVA_ARGS -jar "$SERVER_JAR" --nogui
EOF
chmod +x start.sh
9. Тестовый запуск в screen
Запустите сервер впервые, чтобы сгенерировать недостающие конфиги (paper.yml, bukkit.yml, server.properties) и проверить ошибки.
screen -S mc ./start.sh
# Ждите "Done (X.Xs)! For help, type "help""
# Остановите командой stop в консоли сервера
# Выход из screen: Ctrl+A, затем D
10. Настройка server.properties
Отредактируйте ключевые параметры под новый IP и требования.
nano server.properties
Обязательно проверьте/измените:
server-ip=0.0.0.0
server-port=25565
enable-rcon=false # включите только если нужен, с паролем и whitelist
rcon.port=25575
rcon.password=strong_random_password
max-players=100
view-distance=10
simulation-distance=6
network-compression-threshold=256
online-mode=true # false только для крэк-серверов
Автозапуск и управление через systemd
11. Создание unit-файла
Выход из пользователя minecraft (exit или Ctrl+D), действия от root.
cat > /etc/systemd/system/minecraft.service << 'EOF'
[Unit]
Description=Minecraft Server
After=network.target
[Service]
Type=forking
User=minecraft
Group=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/usr/bin/screen -DmS mc /home/minecraft/server/start.sh
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "say Сервер выключается через 10 секунд...\015"'
ExecStop=/bin/sleep 10
ExecStop=/usr/bin/screen -p 0 -S mc -X eval 'stuff "stop\015"'
TimeoutStopSec=60
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
MemoryLimit=30G # чуть больше -Xmx, для overhead JVM
[Install]
WantedBy=multi-user.target
EOF
12. Включение и проверка автозапуска
systemctl daemon-reload
systemctl enable minecraft
systemctl start minecraft
systemctl status minecraft # проверьте active (running)
Посмотрите логи в реальном времени:
journalctl -u minecraft -f
# Или заходите в консоль: screen -r mc
Пост-миграционные проверки
13. Проверка подключения
- В панели proxify.cloud убедитесь, что у сервера есть публичный IPv4 (обычно 1 шт. входит в тариф).
- Подключитесь из клиента Minecraft по IP:
ВАШ_IP:25565. - Проверьте TPS командой
tps(если есть плагин Spark/LuckPerms) или в консоли:lag/gc.
14. Настройка домена (опционально)
В панели регистратора домена создайте A-запись @ и play на IP сервера proxify.cloud.
SRV-запись для удобства (порт 25565):
_minecraft._tcp.play 3600 IN SRV 0 5 25565 play.yourdomain.com.
15. Бэкапы на новом хостинге
Настройте ежедневные бэкапы. Простейший вариант — скрипт в cron от пользователя minecraft.
su - minecraft
crontab -e
Добавьте строку (каждый день в 04:00):
0 4 * * * /home/minecraft/backup.sh >> /home/minecraft/backup.log 2>&1
Скрипт /home/minecraft/backup.sh:
#!/bin/bash
DATE=$(date +%F_%H-%M)
DEST="/home/minecraft/backups"
mkdir -p "$DEST"
cd /home/minecraft/server
tar --exclude='logs' --exclude='cache' -czf "$DEST/server_$DATE.tar.gz" .
find "$DEST" -name "server_*.tar.gz" -mtime +7 -delete # храним 7 дней
chmod +x /home/minecraft/backup.sh.
Возможные проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
java: not found / Unsupported class version |
Не та версия Java или не в PATH. | Проверьте java -version. Установите нужную: apt install openjdk-17-jre-headless или 21. Используйте полный путь /usr/lib/jvm/java-21-openjdk/bin/java в start.sh. |
Connection refused / Таймаут подключения |
Порт закрыт фаерволом или сервер не слушает 0.0.0.0. | 1. ufw status — порт 25565 открыт? 2. ss -tlnp | grep 25565 — слушает ли Java? 3. server.properties → `server-ip=0.0. |
Комментарии (0)