Как установить сервер Minecraft на Ubuntu 18.04

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

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

Те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Linux Mint и Elementary OS.

Подготовка

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

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

sudo apt updatesudo apt install git build-essential

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

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

Установите безголовый пакет OpenJRE 8, запустив:

sudo apt install openjdk-8-jre-headless

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

java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

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

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

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

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

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

Прежде чем начать процесс установки, убедитесь, что вы переключились на пользователя 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.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 manager:

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: enabled)
   Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
 Main PID: 11262 (java)
    Tasks: 19 (limit: 2319)
   CGroup: /system.slice/minecraft.service
           `-11262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui

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

sudo systemctl enable minecraft

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

Если ваш сервер защищен брандмауэром, и вы хотите получить доступ к серверу 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 в своей системе Ubuntu 18.04 и настроили ежедневное резервное копирование.

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

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