Minetest - бесплатная альтернатива популярной игре Minecraft с открытым исходным кодом. Сервер чрезвычайно прост в настройке и запуске.
Предпосылки
- Экземпляр объемом 1 ГБ + VPS или выделенный, работающий под управлением Ubuntu 17.04.
- Wget (устанавливается с помощью
apt install wget
).
- Текстовый редактор.
Шаг 1. Добавление стабильного репозитория Minetest и установка серверного программного обеспечения.
Поскольку Ubuntu имеет тенденцию отставать с пакетами для Minetest, вы будете использовать вместо этого стабильный PPA. Это можно добавить с помощью следующих команд.
# add-apt-repository ppa:minetestdevs/stable
# apt update
После этого вы можете установить сервер.
# apt install minetest
Шаг 2. Создание пользователя, открытие портов и тестирование сервера
Из соображений безопасности всегда полезно запускать службы внутри своего пользователя, как показано на рисунке.
# useradd -mU minetest
Это создаст вашего minetest
пользователя с его собственной группой и домашним каталогом для запуска сервера.
Перед тестированием вы должны открыть порт 30000
на брандмауэре Ubuntu по умолчанию, иначе вы не сможете подключиться.
# ufw allow 30000
Сейчас самое время протестировать сервер и посмотреть, работает ли он.
# su minetest
$ minetest --server
Если все прошло хорошо, вас встретит следующий вывод:
WARNING[Main]: BanManager: creating /home/minetest/.minetest/worlds/world/ipban.txt
WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
WARNING[Main]: /!\ You are using old player file backend. This backend is deprecated and will be removed in next release /!\
WARNING[Main]: Switching to SQLite3 or PostgreSQL is advised, please read http://wiki.minetest.net/Database_backends.
ACTION[Main]: .__ __ __
ACTION[Main]: _____ |__| ____ _____/ |_ ____ _______/ |_
ACTION[Main]: / \| |/ \_/ __ \ __\/ __ \ / ___/\ __\
ACTION[Main]: | Y Y \ | | \ ___/| | \ ___/ \___ \ | |
ACTION[Main]: |__|_| /__|___| /\___ >__| \___ >____ > |__|
ACTION[Main]: \/ \/ \/ \/ \/
ACTION[Main]: World at [/home/minetest/.minetest/worlds/world]
ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:30000.
Если вы получили вышеупомянутое предупреждение о бэкенде игрока, не беспокойтесь слишком сильно, так как это будет исправлено на следующем шаге.
Подключитесь к вашему серверу с вашим клиентом, чтобы увидеть, все ли работает. Вы можете в любой момент остановить сервер, нажав Ctrl+C
на клавиатуре внутри оболочки.
Шаг 3: Настройка сервера Minetest
Сначала вы захотите скачать пример minetest.conf
файла конфигурации.
$ cd ~/.minetest
$ wget https://raw.githubusercontent.com/minetest/minetest/master/minetest.conf.example
$ mv minetest.conf.example minetest.conf
Этот файл содержит обширный список возможных настроек, которые вы можете изменить и включить (раскомментировав строки), однако на данный момент есть несколько важных, которые вам нужно установить.
Название и описание вашего сервера (например):
server_name = Minetest server
server_description = Welcome to my Minetest Server
IP-адрес и желаемый порт вашего сервера (например):
bind_address = 203.0.113.1
port = 30000
Если вы установили порт, отличный от порта по умолчанию, 30000
обязательно обновите правила брандмауэра.
#ufw delete allow 30000
#ufw allow <port>
Еще один важный вариант name
. Любой, кто подключится к серверу Minetest с указанным значением, получит права администратора. Установите это имя пользователя, которое вы хотите, и установите пароль для вашей учетной записи позже.
Вы, вероятно, вспомните предупреждение о бэкэнде проигрывателя ранее, поэтому переход на SQLite3 является обязательным, поскольку старый бэкэнд устарел и будет удален в более позднем выпуске, если это еще не было сделано. Если вы не получили это сообщение при тестировании сервера на шаге 2, вы можете сразу перейти к шагу 4.
$ minetest --server --migrate-players sqlite3 --world ~/.minetest/worlds/world
После этого вы должны увидеть что-то вроде следующего сообщения.
ACTION[Main]: Successfully migrated 1 players
ACTION[Main]: world.mt updated
Шаг 4: Запуск сервера при загрузке
Для запуска сервера при загрузке необходим служебный файл systemd. К счастью, это довольно просто создать.
Вернитесь обратно в корневую оболочку и добавьте следующее в /etc/systemd/system/minetest.service
[Unit]
Description=Minetest Server
After=network.target
[Service]
Type=simple
User=minetest
Group=minetest
WorkingDirectory=/home/minetest
ExecStart=/usr/bin/minetest --server
Restart=on-abort
[Install]
WantedBy=multi-user.target
С этого момента сервер Minetest может быть запущен systemctl
(и будет делать это автоматически после перезагрузки или в случае сбоя сервера Minetest)
# systemctl enable minetest.service
# systemctl start minetest.service
Также вы можете проверить состояние или остановить / перезапустить сервер Minetest, заменив «start» в приведенной выше команде.
Вывод
Ваш сервер Minetest должен быть активным и работоспособным. Если у вас возникли проблемы с подключением, убедитесь, что ваш порт открыт и IP-адрес правильно указан в minetest.conf
. Информацию об управлении разрешениями игроков и различных командах сервера можно найти на вики- сайте Minetest .