Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница о размещении блоков и приключениях.
В этом руководстве мы рассмотрим шаги, необходимые для установки и настройки сервера Minecraft на CentOS 7. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon
для подключения к работающему экземпляру. Мы также покажем вам, как запланировать автоматическое резервное копирование сервера с помощью задания Cron.
Содержание
Подготовка
Пользователь, под которым вы вошли в систему, должен иметь права sudo, чтобы иметь возможность устанавливать пакеты.
Установите пакеты, необходимые для сборки инструмента mcrcon
:
sudo yum install git
sudo 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 ~/server
java -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
#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
Найдите следующие строки и обновите их значения, как показано ниже:
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
Вставьте следующую конфигурацию:
[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/tcp
sudo firewall-cmd --reload
Настройка резервного копирования
В этом разделе мы создадим сценарий резервного копирования и задание cron для автоматического резервного копирования сервера Minecraft.
Начните с переключения на пользователя minecraft
:
sudo su - minecraft
Откройте текстовый редактор и создайте следующий файл:
nano /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 и настроили ежедневное резервное копирование.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.