Как установить сервер Minecraft на CentOS 7

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

В этом руководстве мы рассмотрим шаги, необходимые для установки и настройки сервера Minecraft на CentOS 7. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon для подключения к работающему экземпляру. Мы также покажем вам, как запланировать автоматическое резервное копирование сервера с помощью задания Cron.

Подготовка

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

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

sudo yum install gitsudo yum group install "Development Tools"

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

Minecraft требует Java 8 или выше. Поскольку серверу Minecraft не нужен графический пользовательский интерфейс, мы установим версию openjdk. Эта версия больше подходит для серверных приложений, поскольку у нее меньше зависимостей и меньше системных ресурсов.

Установка Java довольно проста, достаточно запустить:

sudo yum install java-1.8.0-openjdk-headless

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

java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

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

Запуск сервисов как Minecraft под пользователем root не рекомендуется из соображений безопасности.

Мы создадим нового системного пользователя и группу minecraft с домашним каталогом /opt/minecraft который будет запускать сервер Minecraft:

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

Мы не собираемся устанавливать пароль для этого пользователя. Это хорошая практика безопасности, потому что этот пользователь не сможет войти через SSH. Чтобы перейти к пользователю minecraft вам необходимо войти на сервер как пользователь root или пользователь с привилегиями sudo.

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

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

sudo su - minecraft

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

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

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

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

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

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

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

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

cd ~/tools/mcrcon

Соберите утилиту mcrcon с помощью компилятора GCC :

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 и останавливается.

[14:33:44] [main/ERROR]: Failed to load properties from file: server.properties
[14:33:45] [main/WARN]: Failed to load eula.txt
[14:33: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.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

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

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

nano ~/server/server.properties

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

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

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

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

Чтобы запустить Minecraft как службу, мы создадим новый файл модуля 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 minecraft

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

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

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

Включите автоматический запуск службы Minecraft при загрузке:

sudo systemctl enable minecraft

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

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

sudo firewall-cmd --permanent --zone=public --add-port=25565/tcpsudo firewall-cmd --reload

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

В этом разделе мы создадим сценарий резервного копирования и задание 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

Откройте файл crontab и создайте задание cron, которое будет запускаться автоматически один раз в день в определенное время:

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, вместо того, чтобы вводить эту длинную команду, вам следует создать псевдоним bash .

Выводы

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

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

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