Как создать сервер Minecraft на VPS или выделенном сервере
Это руководство объясняет, как установить и настроить сервер Minecraft Java Edition на вашем VPS или выделенном Linux-сервере.
Заказать сервер
Для размещения вашего сервера Minecraft, HostMyServers предлагает несколько вариантов, оптимизированных для игр:
- Performance VPS - Идеально для игровых серверов
- NVMe VPS - Отличное соотношение цены и качества
- Эко выделенные серверы - Для серверов с большим количеством игроков
- Выделенные серверы Performance - Максимальная производительность для крупных серверов
Предварительные требования
- SSH-доступ как root или пользователь с правами sudo
- Обновлённая система Debian/Ubuntu
- Минимум 2 ГБ оперативной памяти (4 ГБ рекомендуется для 10+ игроков)
- Порт 25565 доступен (TCP)
- Стабильное интернет-соединение
Требуемая конфигурация
| Количество игроков | Минимум RAM | Рекомендуемый RAM |
|---|---|---|
| 1-5 | 1 ГБ | 2 ГБ |
| 5-10 | 2 ГБ | 4 ГБ |
| 10-20 | 4 ГБ | 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 вместо ванильного сервера для лучшей производительности