Как установить сервер Minecraft на Debian 9

Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница о строительстве различных построек и приключениях.

В этом руководстве объясняется, как установить и настроить сервер Minecraft в Debian 9. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon для подключения к работающему экземпляру. Мы также покажем вам, как создать задание cron, которое будет выполнять регулярное резервное копирование сервера.

Подготовка

Пользователь, под которым вы вошли в систему, должен иметь права sudo .

Установите пакеты, необходимые для сборки инструмента mcrcon :

sudo apt updatesudo apt install git build-essential

Установка среды выполнения Java

Minecraft требует, чтобы в системе была установлена Java 8 .

Мы установим безголовую версию JRE. Эта версия больше подходит для серверных приложений, так как имеет меньше зависимостей и использует меньше системных ресурсов:

sudo apt install openjdk-8-jre-headless

Проверьте установку, запустив:

java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)

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

Следующим шагом является создание нового системного пользователя и группы с домашним каталогом /opt/minecraft которые будут запускать сервер Minecraft. Для этого выполните следующую команду:

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

У пользователя не будет пароля. Это хорошая практика безопасности, потому что этот пользователь не сможет войти через SSH.

Установка Minecraft на Debian

Прежде чем начать процесс установки, убедитесь, что вы переключились на пользователя minecraft .

sudo su - minecraft

Создайте три новых каталога внутри домашнего каталога пользователя:

mkdir -p ~/{backups,tools,server}
  • В каталоге backups будет храниться резервная копия вашего сервера. Позже вы можете синхронизировать этот каталог с удаленным сервером резервного копирования.
  • В каталоге tools будут храниться клиент mcrcon и сценарий резервного копирования.
  • Каталог server будет содержать фактический сервер Minecraft и его данные.

Скачивание и компиляция mcrcon

RCON — это протокол, который позволяет подключаться к серверам Minecraft и выполнять команды. mcron — это клиент RCON, встроенный в C.

Мы mcrcon исходный код с GitHub и mcrcon двоичный файл mcrcon .

Начните с Tiiffi/mcrcon в Tiiffi/mcrcon ~/tools и Tiiffi/mcrcon репозиторий Tiiffi/mcrcon из GitHub, используя следующую команду:

cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git

Перейдите в каталог репозитория:

cd ~/tools/mcrcon

Запустите компиляцию утилиты mcrcon , запустив:

gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

После завершения вы можете протестировать его, набрав:

./mcrcon -h

Результат будет выглядеть примерно так:

Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to Minecraft server.

Option:
  -h		Print usage
  -H		Server address
  -P		Port (default is 25575)
  -p		Rcon password
  -t		Interactive terminal mode
  -s		Silent mode (do not print received packets)
  -c		Disable colors
  -r		Output raw packets (debugging and custom handling)
  -v		Output version information

Server address, port and password can be set using following environment variables:
  MCRCON_HOST
  MCRCON_PORT
  MCRCON_PASS

Command-line options will override environment variables.
Rcon commands with arguments must be enclosed in quotes.

Example:
	mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop

mcrcon 0.6.1 (built: May 19 2019 23:39:16)
Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/

Скачивание сервера Minecraft

Существует несколько серверных модов Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на ваш сервер и дополнительно настраивать и настраивать параметры сервера. В этом руководстве мы установим последний официальный сервер Minecraft от Mojang.

Последний файл архива Java (JAR) сервера Minecraft доступен для загрузки на странице загрузки Minecraft .

На момент написания последняя версия — 1.14.1 . Перед тем, как перейти к следующему шагу, вам следует проверить страницу загрузки на предмет наличия новой версии.

Выполните следующую команду wget чтобы загрузить файл jar Minecraft в каталог ~/server :

wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server

Настройка Сервера Майнкрафт

После завершения загрузки перейдите в каталог ~/server и запустите сервер Minecraft:

cd ~/serverjava -Xmx1024M -Xms512M -jar server.jar nogui

Когда сервер запускается в первый раз, он выполняет некоторые операции, создает файлы server.properties и eula.txt и останавливается.

[23:41:44] [main/ERROR]: Failed to load properties from file: server.properties
[23:41:45] [main/WARN]: Failed to load eula.txt
[23:41:45] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Как видно из выходных данных выше, вам необходимо принять лицензионное соглашение Minecraft EULA, чтобы запустить сервер. Откройте файл eula.txt и замените eula=false на eula=true :

nano ~/server/eula.txt
~/server/eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun May 19 23:41:45 PDT 2019
eula=true

Закройте и сохраните файл.

Затем включите протокол rcon и установите пароль rcon, отредактировав файл server.properties :

nano ~/server/server.properties

Найдите следующие строки и обновите их значения, как показано ниже:

~/server/server.properties
rcon.port=25575
rcon.password=strong-password
enable-rcon=true
Не забудьте сменить надежный strong-password на более безопасный. Если вы не хотите подключаться к серверу Minecraft из удаленных мест, убедитесь, что порт rcon заблокирован вашим брандмауэром.

Вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о возможных настройках посетите страницу server.properties .

Создание файла модуля Systemd

Вернитесь к своему пользователю sudo, набрав exit .

Откройте текстовый редактор и создайте файл с именем minecraft.service в каталоге /etc/systemd/system/ :

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

Вставьте следующую конфигурацию:

/etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop

[Install]
WantedBy=multi-user.target

Измените флаги Xmx и Xms соответствии с ресурсами вашего сервера. Флаг Xmx определяет максимальный пул распределения памяти для виртуальной машины Java (JVM), а Xms определяет начальный пул распределения памяти. Также убедитесь, что вы используете правильный порт rcon и пароль.

Сохраните и закройте файл и сообщите systemd, что мы создали новый файл модуля:

sudo systemctl daemon-reload

Запустите и включите сервер Minecraft, выполнив:

sudo systemctl start minecraftsudo systemctl enable minecraft

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

Проверьте статус службы с помощью следующей команды:

sudo systemctl status minecraft
● minecraft.service - Minecraft Server
   Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
 Main PID: 7262 (java)
    Tasks: 19 (limit: 4915)
   CGroup: /system.slice/minecraft.service
           └─7262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui

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

Если ваш сервер защищен брандмауэром, и вы хотите получить доступ к серверу Minecraft извне вашей локальной сети, вам необходимо открыть порт 25565 .

Чтобы разрешить трафик на порт 25565 Minecraft по умолчанию, введите следующую команду:

sudo ufw allow 25565/tcp

Настройка резервного копирования

В этом разделе мы создадим сценарий оболочки резервного копирования и задание cron для автоматического резервного копирования сервера Minecraft.

Начнем с переключения на пользователя minecraft :

sudo su - minecraft

Откройте текстовый редактор и создайте следующий файл:

nano /opt/minecraft/tools/backup.sh

Вставьте следующую конфигурацию:

/opt/minecraft/tools/backup.sh
#!/bin/bash

function rcon {
  /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

Сохраните файл и сделайте скрипт исполняемым, введя следующую команду chmod :

chmod +x /opt/minecraft/tools/backup.sh

Затем создайте задание cron, которое будет запускаться автоматически один раз в день в определенное время.

Откройте файл crontab, набрав:

crontab -e

Чтобы запускать сценарий резервного копирования каждый день в 23:00, вставьте следующую строку:

0 23 * * * /opt/minecraft/tools/backup.sh

Доступ к консоли Minecraft

Для доступа к консоли Minecraft вы можете использовать утилиту mcrcon . Синтаксис следующий: вам нужно указать хост, порт rcon, пароль rcon и использовать переключатель -t который включает mcrcon терминала mcrcon :

/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
> 

Чтобы получить доступ к консоли Minecraft из удаленного места, убедитесь, что порт rcon не заблокирован.

Если вы регулярно подключаетесь к консоли Minecraft, вместо того, чтобы вводить эту длинную команду, вы можете создать псевдоним bash .

Выводы

Вы успешно установили сервер Minecraft в свою систему Debian 9 и настроили ежедневное резервное копирование.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Оставьте комментарий

Ваш адрес email не будет опубликован.