Skip to main content

Как создать сервер Minecraft на VPS или выделенном сервере

Это руководство объясняет, как установить и настроить сервер Minecraft Java Edition на вашем VPS или выделенном Linux-сервере.

Заказать сервер

Для размещения вашего сервера Minecraft, HostMyServers предлагает несколько вариантов, оптимизированных для игр:

Предварительные требования

  • SSH-доступ как root или пользователь с правами sudo
  • Обновлённая система Debian/Ubuntu
  • Минимум 2 ГБ оперативной памяти (4 ГБ рекомендуется для 10+ игроков)
  • Порт 25565 доступен (TCP)
  • Стабильное интернет-соединение

Требуемая конфигурация

Количество игроковМинимум RAMРекомендуемый RAM
1-51 ГБ2 ГБ
5-102 ГБ4 ГБ
10-204 ГБ6 ГБ
20+6 ГБ8 ГБ+

Обновление системы

sudo apt update && sudo apt upgrade -y

Установка Java

Minecraft 1.17+ требует минимум Java 17. Для последних версий (1.20+) рекомендуется Java 21.

Установка Java 21 (рекомендуется)

sudo apt install -y openjdk-21-jdk

Проверка установки

java --version

Вы должны увидеть вывод, похожий на:

openjdk 21.0.x 2024-xx-xx
OpenJDK Runtime Environment (build 21.0.x+xx-xx)
OpenJDK 64-Bit Server VM (build 21.0.x+xx-xx, mixed mode, sharing)

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

По соображениям безопасности никогда не запускайте сервер от имени root. Создайте выделенного пользователя:

sudo adduser --system --home /opt/minecraft --shell /bin/bash minecraft

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

sudo apt install -y screen wget curl unzip
  • screen: поддерживает работу сервера после отключения SSH
  • wget/curl: для загрузки файлов
  • unzip: для распаковки архивов

Загрузка сервера Minecraft

Подключитесь как пользователь minecraft

sudo -u minecraft bash
cd /opt/minecraft
mkdir server
cd server

Загрузите официальный сервер

Получите ссылку на последнюю версию с minecraft.net/download/server затем:

wget -O server.jar https://piston-data.mojang.com/v1/objects/XXXXXXX/server.jar
Примечание

Замените URL на официальную ссылку нужной версии.

Принятие EULA

Вы должны принять лицензионное соглашение Minecraft:

echo "eula=true" > eula.txt

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

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

java -Xms1G -Xmx2G -jar server.jar nogui

Параметры памяти:

  • -Xms1G: начальная память (1 ГБ)
  • -Xmx2G: максимальная память (2 ГБ)
  • nogui: отключает графический интерфейс

Остановите сервер командой stop или Ctrl+C после первого запуска.

Настройка сервера

Отредактируйте файл server.properties по своим потребностям:

nano server.properties

Важные настройки

# Порт сервера (по умолчанию: 25565)
server-port=25565

# Максимальное количество игроков
max-players=20

# Режим игры (survival, creative, adventure, spectator)
gamemode=survival

# Сложность (peaceful, easy, normal, hard)
difficulty=normal

# Сообщение в списке серверов
motd=Мой Minecraft Сервер

# Дистанция отрисовки (уменьшить при лагах)
view-distance=10

# Включить whitelist
white-list=false

# Онлайн-режим (проверка аккаунтов Mojang)
online-mode=true

# Включить PvP
pvp=true

# Защита спавна (радиус в блоках)
spawn-protection=16

Настройка брандмауэра

Откройте порт Minecraft в брандмауэре:

С UFW

sudo ufw allow 25565/tcp
sudo ufw reload

С iptables

sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Запуск с screen

Чтобы сервер работал после отключения SSH:

Запустите сервер в screen

screen -S minecraft
cd /opt/minecraft/server
java -Xms1G -Xmx2G -jar server.jar nogui

Отсоедините сессию

Нажмите Ctrl+A затем D для отсоединения сессии.

Вернуться к сессии

screen -r minecraft

Список сессий

screen -ls

Настройка как сервис systemd

Для автоматического запуска при загрузке сервера:

Создание файла сервиса

sudo nano /etc/systemd/system/minecraft.service

Содержимое файла:

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

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar /opt/minecraft/server/server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=20
StandardInput=null

[Install]
WantedBy=multi-user.target

Активация и запуск сервиса

sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service

Команды управления

# Проверить статус
sudo systemctl status minecraft.service

# Остановить сервер
sudo systemctl stop minecraft.service

# Перезапустить сервер
sudo systemctl restart minecraft.service

# Просмотр логов
sudo journalctl -u minecraft.service -f

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

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

После подключения к консоли сервера (через screen):

КомандаОписание
stopКорректно останавливает сервер
save-allСохраняет мир
listПоказывает подключённых игроков
op <игрок>Даёт права админа игроку
deop <игрок>Забирает права админа
kick <игрок>Выгоняет игрока
ban <игрок>Банит игрока
whitelist add <игрок>Добавляет игрока в whitelist
whitelist remove <игрок>Удаляет игрока из whitelist
gamemode <режим> <игрок>Меняет режим игры
difficulty <уровень>Меняет сложность

Оптимизация производительности

Оптимизированный скрипт запуска

Создайте скрипт запуска с оптимизированными флагами:

nano /opt/minecraft/server/start.sh
#!/bin/bash
cd /opt/minecraft/server

java -Xms2G -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 \
-jar server.jar nogui

Сделайте скрипт исполняемым:

chmod +x /opt/minecraft/server/start.sh

Уменьшение лагов

В server.properties:

# Уменьшить дистанцию отрисовки
view-distance=8

# Уменьшить дистанцию симуляции
simulation-distance=6

# Ограничить сущности
max-tick-time=60000

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

Скрипт резервного копирования

sudo nano /opt/minecraft/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"
DATE=$(date +%Y-%m-%d_%H-%M-%S)

mkdir -p $BACKUP_DIR

# Резервная копия мира
tar -czf $BACKUP_DIR/world_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end

# Удаление резервных копий старше 7 дней
find $BACKUP_DIR -name "world_*.tar.gz" -mtime +7 -delete

echo "Резервное копирование завершено: world_$DATE.tar.gz"
chmod +x /opt/minecraft/backup.sh

Планирование резервного копирования

sudo crontab -e

Добавьте:

# Ежедневное резервное копирование в 4 утра
0 4 * * * /opt/minecraft/backup.sh

Подключение к серверу

Игроки могут подключиться, используя:

  • Адрес: IP_ВАШЕГО_СЕРВЕРА или ваш_домен.com
  • Порт: 25565 (по умолчанию)

В Minecraft: Сетевая игра → Добавить сервер → Введите адрес

При возникновении проблем

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

  • Проверьте логи: tail -f /opt/minecraft/server/logs/latest.log
  • Проверьте, что Java установлена: java --version
  • Проверьте, что EULA принят: cat eula.txt

Игроки не могут подключиться

  • Проверьте, что порт 25565 открыт: sudo ufw status
  • Проверьте, что сервер работает: sudo systemctl status minecraft.service
  • Протестируйте порт: nc -zv IP_СЕРВЕРА 25565

Проблемы с производительностью

  • Увеличьте выделенную RAM (-Xmx)
  • Уменьшите view-distance в server.properties
  • Используйте Paper или Spigot вместо ванильного сервера для лучшей производительности