Это практическое дополнение к нашей странице VPS под игровой сервер. Та — про то, какой тариф подходит; эта — про то, как реально поднять сервер: Paper, нормальный сервис systemd, конфиг, экономящий RAM, фаервол и бэкапы. К концу у вас будет сервер Minecraft, который переживёт падение, переживёт перезагрузку и не сожрёт тихо всю машину.
Одна честная ремарка перед стартом: лимиты CPU и RAM со страницы юзкейса никуда не делись. Paper на тарифе Small или Medium отлично идёт для компании друзей. Модпак на 150 модов для большого комьюнити — не то, подо что эти тарифы, и никакой конфиг это не чинит. С этим ясно — строим.
1. Установить Java
Paper работает на Java. Ставим headless JDK — для актуальной версии Minecraft это Java 21:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
Если ваша версия Minecraft старее, ставьте Java, которую она просит (17 для эпохи 1.18-1.20). Логи сервера громко пожалуются, если версия не та.
2. Настроить каталог сервера и Paper
Запускайте сервер под своим пользователем, не под root — если что-то пойдёт не так, радиус поражения должен быть маленьким.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
Скачайте jar Paper под вашу версию Minecraft (URL возьмите на их странице загрузок) и сохраните как server.jar:
sudo -u minecraft wget -O server.jar "ВСТАВЬТЕ_URL_ЗАГРУЗКИ_PAPER"
Запустите один раз, чтобы сгенерировать конфиги, затем примите EULA:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# он сразу остановится и попросит принять EULA
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G — это потолок кучи JVM. На тарифе Small с 4 ГБ ~3 ГБ под JVM оставляют ОС воздух. Не ставьте всю RAM — у JVM есть накладные сверх кучи, а OOM-killer не договаривается.
3. Настроить server.properties для экономии RAM
Вот где вы покупаете себе производительность бесплатно. Откройте server.properties и задайте:
view-distance=8
simulation-distance=6
max-players=10
view-distance— сколько чанков держится загруженными вокруг каждого игрока. Дефолтные 10 щедры; 8 (или даже 6) заметно срезают RAM и CPU, и почти никто не замечает разницы.simulation-distance— как далеко реально тикают сущности, редстоун и рост посевов. Ниже — дешевле. 6 — разумная стартовая точка.max-players— ставьте то, что реально ожидаете, чтобы внезапная толпа не взорвала бюджет RAM.
Помните про реальность одного потока: тик Minecraft упирается в одно ядро. Если TPS падает, больше RAM не поможет — помогут более низкий simulation-distance и лимиты мобов.
4. Запустить как сервис systemd
Это та часть, что превращает «jar, который я разок запустил» в «сервер». Создайте /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
[Install]
WantedBy=multi-user.target
Restart=on-failure — та самая важная строка: если JVM упадёт, systemd вернёт её через десять секунд. SuccessExitStatus=... 143 не даёт systemd считать штатное завершение по SIGTERM падением. Включаем и запускаем:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # живые логи
Теперь он стартует при загрузке, рестартует при падении, а логи идут в journald.
5. Открыть порт в фаерволе
Minecraft по умолчанию слушает TCP 25565. Открываем только его:
sudo ufw allow 25565/tcp
sudo ufw enable
Дайте друзьям IP сервера (и :25565, если меняли порт). Не открывайте ничего лишнего — весь смысл своей машины в том, что вы решаете, что доступно.
6. Делать бэкап мира
Тот пункт, что пропускают до дня, когда жалеют. Простой скрипт:
#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end
Запускайте из крона и — вот важная половина — копируйте архив с сервера, в объектное хранилище или на другую машину. Бэкап на том же диске, что и мир, умрёт вместе с диском. Если мир вам дорог, выполните save-off и save-all в консоли сервера перед tar, чтобы не снять снимок в момент записи.
Это всё целиком
Java, Paper, настроенный конфиг, сервис systemd с авто-рестартом, порт в фаерволе и бэкапы, живущие в другом месте. Это сервер Minecraft, который ведёт себя как сервер.
Если машины ещё нет: выберите тариф — Small ($8) для небольшой компании, Medium ($12), если жмёте до десяти игроков, — оплатите в USDC или USDT (без KYC, без документов), и root будет примерно за 60 секунд. Дальше идите по этой странице. И честное напоминание в последний раз: это верная настройка для ванильного или Paper-сервера с друзьями. Тяжёлому модпаку для большого комьюнити нужно другое железо, и мы предпочтём, чтобы вы услышали это от нас первыми.