Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница, в которой игроки исследуют бесконечные миры и строят различные конструкции, от простых домов до высоких небоскребов.
В этом руководстве объясняется, как создать сервер Minecraft на Ubuntu 20.04. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon
для подключения к запущенному экземпляру. Мы также покажем вам, как создать задание cron, которое выполняет регулярное резервное копирование сервера.
Содержание
Подготовка
Согласно официальному сайту Minecraft, в качестве минимальной конфигурации для типичной установки рекомендуется 4 ГБ ОЗУ.
Установите пакеты, необходимые для сборки инструмента mcrcon
:
sudo apt update
sudo apt install git build-essential
Установка среды выполнения Java
Minecraft требует Java 8 или выше. Серверу Minecraft не нужен графический пользовательский интерфейс, поэтому мы установим безголовую версию Java. Эта версия больше подходит для серверных приложений, поскольку у нее меньше зависимостей и меньше системных ресурсов.
Выполните следующую команду, чтобы установить пакет OpenJRE 11 без заголовка:
sudo apt install openjdk-11-jre-headless
Проверьте установку, распечатав версию Java :
java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Создание пользователя 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
будут храниться резервные копии вашего сервера Minecraft. Вы можете синхронизировать этот каталог с вашим удаленным сервером резервного копирования. - Каталог
tools
будет содержать клиентmcrcon
и скрипт резервного копирования. - Каталог
server
будет содержать фактический сервер Minecraft и его данные.
Скачивание и компиляция mcrcon
RCON — это протокол, который позволяет подключаться к серверам Minecraft и выполнять команды. mcron — это клиент RCON, написанный на C.
Мы mcrcon
исходный код с GitHub и mcrcon
двоичный файл mcrcon
.
Tiiffi/mcrcon
репозиторий Tiiffi/mcrcon
с GitHub в каталог ~/tools/mcron
:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
По завершении mcron
каталог mcron
и mcron
утилиту:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
После завершения убедитесь, что mcrcon
успешно скомпилирован, распечатав его версию:
./mcrcon -v
Результат будет выглядеть примерно так:
mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
tiiffi+mcrcon at gmail
https://github.com/Tiiffi/mcrcon/issues/
Скачивание сервера Minecraft
Существует несколько модов сервера Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на ваш сервер и дополнительно настраивать и настраивать параметры сервера.
В этом руководстве мы установим последний официальный ванильный сервер Minecraft от Mojang. Те же инструкции применимы и для установки других серверных модов.
Перейдите на страницу загрузки Minecraft, чтобы получить ссылку для загрузки последней версии файла архива Java (JAR) сервера Minecraft. На момент написания последняя версия — 1.16
.
Загрузите файл jar в каталог ~/server
с помощью wget
:
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Настройка Сервера Майнкрафт
После завершения загрузки переключитесь в каталог ~/server
и запустите сервер Minecraft:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
При первом запуске сервер выполняет некоторые операции, создает файлы server.properties
и eula.txt
и останавливается.
[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [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
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 и запустим Minecraft как службу.
Вернитесь к своему пользователю 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 -Xms1024M -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 Tue 2020-06-23 17:48:44 UTC; 8s ago
Main PID: 1338035 (java)
Tasks: 15 (limit: 1074)
Memory: 465.3M
CGroup: /system.slice/minecraft.service
└─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
Наконец, включите автоматический запуск службы Minecraft во время загрузки:
sudo systemctl enable minecraft
Настройка брандмауэра
Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр , и вы хотите получить доступ к серверу Minecraft извне вашей локальной сети, вам необходимо открыть порт 25565
:
sudo ufw allow 25565/tcp
Настройка резервного копирования
В этом разделе мы создадим сценарий оболочки резервного копирования и задание 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 +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 20.04 и настроить ежедневное резервное копирование.
Теперь вы можете запустить свой клиент Minecraft , подключиться к серверу и начать свое приключение в Minecraft.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Добрый вечер, есть вопрос по поводу статуса сервера. А именно можно ли смотреть за статусом, чтобы не приходилось постоянно вводить *sudo systemctl status minecraft*? то есть чтобы сервер сам продолжал писать строки о своём состоянии, кто зашёл или тд
Меня смущает что сервер запускается не в screen
Лучше, сервер запускается в systemd без всяких ненужных screen
Сейчас сервера создают все на хостингах типо хостинга под названием «Zorotex» или ещё есть кафтхостин.
А как на него зайти?
не работает, на моменте создания systemd все сломалось
Добрый вечер дорогой создатель этого гайда. Хочу вам сказать что последний подпункт с доступом к консоли Майнкрафта не работает от слово совсем и выдаёт ошибку
Connection failed
Error 111: Connection refused
Попрошу от вас обратной связи по поводу этой проблемы