🐹 Minecraft: Создание и настройка сервера с игрой версии 1.17.1. Серверная модификация Spigot. Скрипты сопровождения. Резервное копирование каталога с игровым сервером.

Содержание:

1. Что такое Minecraft?
2. Особенности сборки.

2.1. Сервер Minecraft.
2.2. Серверная модификация Spigot.

3. Установка и настройка серверной части.

3.1. Установка mc, git, java.
3.2. Установка и настройка межсетевого экрана.

3.2.1. Отключение firewalld.
3.2.2. Установка и настройка iptables.

4. Технология BuildTools: получение Spigot.

4.1. Где взять?
4.2. Создание технического пользователя.
4.3. Применение BuildTools.
4.4. Первый запуск Spigot.
4.5. Настройка и конфигурирование сервера.
4.6. Создание каталогов для плагинов.
4.7. Тонкая настройка запуска игрового сервера.

5. Создание shell-скрипта start.sh.
6. Установка и настройка файлов клиентской части.
7. Настройка системы rcon.
8. Создание shell-скриптов — restart.sh, save_all.sh, stop.sh.

8.1. Скрипт restart.sh.
8.2. Скрипт save_all.sh.
8.3. Скрипт stop.sh.

9. Автоматизация запуска сервера Minecraft.

9.1. Автоматизация запуска с помощью crontab.
9.2. Автоматизация запуска в качестве отдельного сервиса.

10. Организация резервного копирования игрового мира.
11. Организация доступа к ресурсам сервера по sFTP.

11.1. Отключение shell-оболочки.
11.2. Подключение FTP.

12. Мелкий тюнинг.

12.1. Как добавить текстуры на сервер?
12.2. Как загрузить свой мир на сервер?

13. Если что-то пошло не так.

13.1. Ошибка лицензии при запуске.
13.2. Игровой сервер Minecraft завис.

14. Оригиналы источников информации.



1. Что такое Minecraft?

Наверняка почти все слышали о такой компьютерной игре как Minecraft от детей, друзей, знакомых и так далее и, возможно, задавались вопросом, почему эта игра такая популярная?

Minecraft — компьютерная инди-игра в жанре песочницы, разработанная шведским программистом Маркусом Перссоном и выпущенная его компанией Mojang AB, то же LEGO, но только в компьютерной игре. Строй и разрушай различные блоки с определёнными характеристиками и текстурой. Всего в игре больше 250 различных блоков.

Minecraft появилась в 2009 году. На тот момент игра была сырой — с огромным количеством технических проблем и багов. Всё равно вокруг проекта сформировалось сообщество поклонников. Что и говорить, тогда концепция безграничной «песочницы» казалась необычной и притягательной. Minecraft позволила игрокам создавать все что угодно: от хлипких хибар до величественных средневековых замков.

Minecraft пробуждает в человеке творца. Игра про строительство дарит возможность творить в рамках пиксельного мира. И это ее главный козырь. Еще в Minecraft нужно выживать — отбиваться или прятаться от всяческой нечисти, которая без приглашения приходит в мир игрока с наступлением ночи.

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

В данном руководстве мы создадим свой игровой сервер Minecraft для игры с друзьями по локальной сети или сети Интернет, если вы арендуете белый IP-адрес у провайдера.

И так, нам понадобится:

Дополнительно сделаем для управления сервером Minecraft оператора-администратора minecraftuser, дадим ему возможность управлять сервером Minecraft удаленно и безопасно для сервера CentOS 7, а так же создадим ограниченный допуск по sFTP к каталогу с игровыми ресурсами.

2. Особенности сборки.

2.1. Сервер Minecraft.

На момент написания этой инструкции крайней актуальной версией сервера Minecraft была версия 1.17.1.

2.2. Серверная модификация Spigot.

Spigot — глобальная серверная модификация, предоставляющая API для взаимодействия с игровым миром и созданная для упрощения создания плагинов к SMP-серверу. Spigot создан на основе ядра CraftBukkit и призван заменить «старшего брата» стабильностью и производительностью. Кроме этого, почти все плагины, написанные для CraftBukkit, пойдут и на Spigot, но на Spigot написаны и собственные, недоступные CraftBukkit плагины.

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

Ссылка: https://getbukkit.org/download/spigot.

Скачивать мы Spigot не будем, так как соберем свою сборку Spigot. Воспользуемся BuildTools — удобный инструмент Spigot Api для получения необходимой, стабильной версии ядра Spigot. Слетаем его сами и получим самую свежую и стабильную версию сервера, даже если версия уже выше 1.17.1.

3. Установка и настройка серверной части.

3.1. Установка mc, git, java.

Обновим все компоненты CentOS 7 под пользователем root и их зависимости до крайних версий:

# yum -y update && yum -y upgrade

Установим текстовый редактор mc для редактирования файлов конфигурации:

# yum -y install mc

Когда вы устанавливаете CentOS 7, функция SELinux включена по умолчанию. Из-за этого некоторые приложения в вашей системе могут фактически не поддерживать этот механизм безопасности. Поэтому, чтобы такие приложения функционировали нормально, вам необходимо отключить SELinux.

Ссылка: «CentOS 7: Как временно или навсегда отключить SELinux».

Для получения актуального алгоритма, для сборки программного обеспечения для сервера Minecraft, потребется установить систему контроля версий програмного обеспечения.

Одной из наиболее популярных систем контроля версий является Git. Репозиторий Git хранит файлы огромного количества проектов, а сайты GitHub и Bitbucket позволяют быстро и просто распространить и улучшить код.

Проще и быстрее всего установить Git с помощью стандартного репозитория CentOS 7.

Итак, чтобы установить Git используйте:

# yum -y install git

Если команда не выдала ошибок, система управления версиями Git будет загружена и установлена.

Чтобы протестировать установку программы, запустите встроенную проверку версии:

# git --version

Если эта команда выдала номер установленной версии, то установка прошла успешно.

Чего бы у вас не было предустановленно, оно уже устарело для версии игры Minecraft 1.17.1 и нам нужно будет установить версию Java 17.

Самую крайнюю и актуальную версию Java можно получить только на официальном сайте производителя этого программного обеспечения, но для этого приёдется зарегистрироваться на сайте.

Примечание: Если регистрироваться лень, то далее по иструкции, крайняя версия установочного пакета Java 17 отлично скачивается утилитой wget и без регистрации на сайте. Ссылка на скачивание ничем не ограничена. В итоге, можете не регистрироваться и не заходить на сайт вообще. Установлено опытным путем.

Ссылка на сайт: https://www.oracle.com/.

Переходим в раздел Downloads.

Ссылка: https://www.oracle.com/java/technologies/downloads/#java17.

К примеру, скачаем в каталог /tmp:

# cd /tmp

# wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

Устанавливаем:

# rpm -ivh /tmp/jdk-17_linux-x64_bin.rpm

Кроме того, можно проверить, какой конкретный пакет RPM предоставляет файлы JAVA:

# rpm -q --whatprovides java

Ссылка на официальную документацию по установке: https://docs.oracle.com/en/java/javase/17/install/installation-jdk-linux-platforms.html.

# java -version

Ответ:

3.2. Установка и настройка межсетевого экрана.

Для корректной работы сервера Minecraft нужно настроить правила межсетевого экрана.

В данном руководстве используется программа iptables, как установить и настроить iptables читайте в отдельном материале на моем сайте.

Ссылка: «CentOS 7: Некоторые примеры использования iptables для системных администраторов.»

3.2.1. Отключение firewalld.

Первым делом отключим firewalld, который присутствует в CentOS 7 по-умолчанию:

# systemctl stop firewalld

Теперь удалим его из автозагрузки, чтобы он не включился снова после рестарта:

# systemctl disable firewalld

Удалим с сервера CentOS 7 межсетевой экран firewalld:

# yum -y remove firewalld

После этого на сервере настройки сетевого экрана становятся полностью открытыми.

Посмотреть правила iptables можно командой:

# iptables -L -v -n

Как видно, правила межсетевого экрана полностью отключены.

3.2.2. Установка и настройка iptables.

На самом деле межсетевой экран у нас на сервере уже стоит и работает, просто нет никаких правил, все открыто. Установить нам нужно будет дополнительные утилиты управления, без которых конфигурировать iptables невозможно.

Вводим команду:

# yum -y install iptables-services

Теперь можно добавить iptables в автозагрузку и запустить:

# systemctl start iptables.service

# systemctl enable iptables.service

Открываем файл конфигурации iptables текстовым редактором:

# mcedit /etc/sysconfig/iptables

И в середине массива строк, под разрешением работы с портом 22, добавляем строку точно такую же строку:

  • порт игрового сервера MInecraft — это порт 25565, на него будут заходить игроки;
  • порт для Rcon — это порт 25575, через него будет происходить управление сервером.

Теперь строки конфигурации для межсетевого экрана:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25575 -j ACCEPT

Изменения должны получиться такими:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25575 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Чтобы iptables это учел в работе, нужно его перезапустить:

# systemctl restart iptables

Если после этой команды вышла ошибка:

Внимательно проверяйте, что вы там написали. В вашем конфигурационном файле содержатся опечатки!

Проверим какие правила межсетевого экрана у нас установились:

# iptables -L -v -n

Ответ:

Сервер игнорирует входящие соединения по всем портам, кроме тех, которые мы указали в файле конфигурации, не пересылает ничего, но, при этом, сам может отправлять всё что ему потребуется кому угодно.

Для доступа из интернета игрового сервера Minecraft просто пробросите порты через маршрутизатор и можно будет пользоваться ими вне локальной сети.

4. Технология BuildTools: получение Spigot.

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

4.1. Где взять?

Скачиваем BuildTools можно на официальном сайте Spigotmc.ORG, в разделе Maven project BuildTools.

Нужно нажать на ссылку крайняя стабильная сборка, это означает, что вы скачаете крайнюю актуальную протестированную сообществом сборку.

Ссылка: https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/.

Следующим шагом, нажимаем на ссылку с BuildTools.jar, после чего происходит скачивание .jar файла, который нам и нужен! Сохраняем его в любом удобном для вас месте. Ниже по тексту инструкции этот файл BuildTools.jar нам пригодится.

Для заскачивания в CentOS 7 установим программу для скачивания из Интернета:

# yum -y install wget

И скачаем по ссылке BuildTools.jar:

# cd /tmp/

# wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/artifact/target/BuildTools.jar

4.2. Создание технического пользователя.

Можно скачать готовый сервер Minecraft, а можно его сделать самому с помощью технологии BuildTools. Этим мы и займёмся в этом разделе инструкции.

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

# adduser minecraftuser

Обращаю внимание, что мы создали пользователя minecraftuser с полноценной возможностью пользоваться консолью и заходить на сервер по ssh. Данную способность у этой учетной записи мы отключим позднее, когда настроим автоматический запуск игрового сервера.

# passwd minecraftuser

Будет предложено ввести 2 раза пароль, чтобы его запомнить в системе.

Для ленивых существует генератор паролей онлайн.

Ссылка: https://passgenerator.ru/.

Вместе с пользователем у нас появился каталог /home/minecraftuser.

4.3. Применение BuildTools.

Скопируем туда заранее скачанный, любым удобным для вас способом, нами файл BuildTools.jar.

Ссылка: https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/.

Пройдем по пути /home/minecraftuser/ и приступим к работе:

# cd /home/minecraftuser/

# wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/artifact/target/BuildTools.jar

# git config --global --unset core.autocrlf

# java -Xmx512M -jar BuildTools.jar --rev latest

Таким способом, по аналогии, можно поставить и старые версии сервера Spigot.

Список версий и команд прилагается!

Разверните вкладку, чтобы увидеть весь список возможных версий Spigot.
  • --rev 1.17.1
  • --rev 1.17
  • --rev 1.15.2
  • --rev 1.15
  • --rev 1.14.4
  • --rev 1.14.3
  • --rev 1.14.2
  • --rev 1.14.1
  • --rev 1.14
  • --rev 1.13.2
  • --rev 1.13.1
  • --rev 1.13
  • --rev 1.12.2
  • --rev 1.12.1
  • --rev 1.12
  • --rev 1.11
  • --rev 1.10
  • --rev 1.9.4
  • --rev 1.9.2
  • --rev 1.9
  • --rev 1.8.8
  • --rev 1.8.7
  • --rev 1.8.3
  • --rev 1.8

На экране побегут строки… Много-много разных строк! В каталоге /home/minecraftuser/ начнут появляться новые каталоги и файлы. Это будет длиться довольно долго. Порой будет казаться что он просто завис, но это не так! Запаситесь терпением и всё пройдет исправно.

Полная версия инструкции по установки находится на официальном сайте Spigot.

Ссылка: https://www.spigotmc.org/wiki/buildtools/.

Внимание! Ждем завершения процедур, не в коем случае не закрываем!

Можно смело идти пить чай до самого окончания процесса создания серверной модификация Spigot. Процесс реально будет долгим.

Окончание долгой установки будет отмечено вот такими строками:

Таким образом вы можете быстро получить чистое ядро серверной модификации Spigot для крайней Minecraft версии 1.17.1.

4.4. Первый запуск Spigot.

И так, у нас есть Spigot, который мы получили любым способом в каталог /home/minecraftuser/.

Добавим права на использование ресурсов игры в каталоге /home/minecraftuser/ пользователем minecraftuser:

# chown -R minecraftuser:minecraftuser /home/minecraftuser/

# chmod -R 700 /home/minecraftuser/

Запустим результаты нашей работы с минимальными настройками из под пользователя minecraftuser.

Перейдем в учетную запись minecraftuser:

# su minecraftuser

Проверим, как прошел процесс сборки ядра серверной модификации Spigot:

# java -Xms512M -Xmx1024M -XX:+UseG1GC -XX:ParallelGCThreads=1 -jar /home/minecraftuser/spigot-1.17.1.jar nogui

Серверная модификация Spigot добросовестно запустится, сгенерирует еще несколько новых файлов с своем каталоге и предложит прочитать и принять лицензионное соглашение от разработчиков сервера Minecraft:

Нужно утвердительно ответить ему в файле eula.txt, что да, мы читали и согласны со всем написанным!

Открываем текстовый файл eula.txt в текстовом редакторе.

# mcedit /home/minecraftuser/eula.txt

Что мы видим?

Меняем false на true значение по смыслу.

Сохраняем файл.

Внимание! Если к будущем у нас начнется постоянное требование принять лицензию, то смотрите от какого пользователя запускаете сервер с игрой или проверьте расположение файлов лиценщии и натроек сервера. Теперь лицензия у вас будет засчитываться только при запуске сервера с игрой только от пользователя minecraftuser.

4.5. Настройка и конфигурирование сервера.

Пришло время отредактировать файл конфигурации сервера server.properties.

Посмотрим у сервера CentOS 7 его текщий IP-адрес:

# ip a

Наш сервер получил IP-адрес. Запомним его.

В файле конфигурайии нужно отключить проверку лицензий на клиентах сервера Minecraft и добавить в него IP-адрес нашего сервера CentOS 7.

Эти параметры находится в файле конфигурации сервера Minecraft server.properties, который распаковывается всегда рядом с eula.txt:

# mcedit /home/minecraftuser/server.properties

Содержимое файла server.properties:

#Minecraft server properties
enable-jmx-monitoring=false
rcon.port=25575
level-seed=
gamemode=survival
enable-command-block=false
enable-query=false
generator-settings=
level-name=world
motd=A Minecraft Server
query.port=25565
pvp=true
generate-structures=true
difficulty=hard
network-compression-threshold=256
require-resource-pack=false
max-tick-time=60000
max-players=15
use-native-transport=true
online-mode=false
enable-status=true
allow-flight=false
broadcast-rcon-to-ops=true
view-distance=10
resource-pack-prompt=
server-ip=192.168.0.19
allow-nether=true
server-port=25565
enable-rcon=false
sync-chunk-writes=true
op-permission-level=4
prevent-proxy-connections=false
resource-pack=
entity-broadcast-range-percentage=100
rcon.password=
player-idle-timeout=0
force-gamemode=false
debug=false
rate-limit=0
hardcore=false
white-list=false
broadcast-console-to-ops=true
spawn-npcs=true
spawn-animals=true
snooper-enabled=false
function-permission-level=2
level-type=default
text-filtering-config=
spawn-monsters=true
enforce-whitelist=false
resource-pack-sha1=
spawn-protection=16
max-world-size=5000

Ищем главные строки ‘server-ip=‘ (он содержит пустой параметр), ‘online-mode=true‘ (активирована проверка), ‘debug=false‘ (параметр разрешает отправку с вашего сервера), которые содержат некоторые обязательные параметры и заменяем их на вот эти значения:

server-ip=ip_вашего_игрового_сервера
online-mode=false
debug=false

Вот официальная страничка этого файла конфигурации.

Ссылка: https://minecraft.fandom.com/wiki/Server.properties.

Рассмотрим подробнее каждый пункт и его возможные значения:

  • enable-jmx-monitoring — Управленческие расширения Java, предназначенные для контроля и управления приложениями, системными объектами, устройствами и компьютерными сетями. По умолчанию false. Если не знаете что это, значит вам это не надо. Совсем не надо.
  • rcon.port — Задает сетевой порт RCON. По умолчанию порт 25575.
  • level-seed — Входные данные для генератора уровней. Чтобы иметь возможность создавать случайные миры, это поле нужно оставить пустым. По умолчанию после знака равно ничего не стоит.
  • gamemode — Определяет режим игрового процесса: 0 — выживание , 1 — креатив, 2 — адвенчер, 3 — наблюдатель. Значения: survival (0), creative (1), adventure (2), spectator (3).
  • enable-command-block — Включает блоки команд. По умолчанию false.
  • enable-query — Включает прослушиватель сервера протокола GameSpy4. Используется для получения информации о сервере. По умолчанию false.
  • generator-settings — Параметры, используемые для настройки генерации мира. Следуйте его формату и напишите соответствующую строку JSON задает шаблон генерации суперплоского мира. По умолчанию значение пустое, после знака равно ничего нет.
  • level-name — Имя каталога с файлами карты, которая будет использоваться во время игры. По умолчанию установлен каталог world. Каталог размещается в том же каталоге, где находятся файлы сервера. Если такого каталога нет, сервер автоматически создает новый мир и помещает его в каталог с таким же именем — world.
  • motd — Небольшое текстовое поле, видное при запущенном сервере в списке серверов игры (клиента) Minecraft. Это сообщение отображается в списке серверов клиента под именем.
  • query.port — Задает порт для сервера запросов (смотрите enable-query).
  • pvp — Разрешает или запрещает игрокам воевать друг с другом. Если этот параметр имеет значение true, то игроки могут уничтожать друг друга. Если установлено значение false, то игроки не могут наносить друг другу прямой урон.
  • generate-structures — Включает (true) или отключает (false) генерацию структур: сокровищницы, крепости, деревни и так далее. Примечание: Подземелья по-прежнему генерируются, если для этого параметра установлено значение false.
  • difficulty — Определяет сложность, например, урон, наносимый мобами, и то, как голод и яд влияют на игроков. Уровень сложности от 0 до 3. Чем больше значение в этом диапазоне, тем сложнее и свирепее мобы. Значения: peaceful (0), easy (1), normal (2), hard (3).
  • network-compression-threshold — По умолчанию он позволяет пакетам размером n-1 байт проходить нормально, но пакет из n байт или более сжимается. Таким образом, меньшее число означает большее сжатие, но сжатие небольших объемов байтов на самом деле может привести к большему результату, чем то, что было введено. -1 — полностью отключить сжатие. 0 — сжать все. Примечание: Спецификация Ethernet требует, чтобы пакеты размером менее 64 байт были дополнены до 64 байт. Таким образом, установка значения ниже 64 байт может оказаться невыгодной. Также не рекомендуется превышать MTU, обычно 1500 байт. По умолчанию 256.
  • require-resource-pack — Когда эта опция включена в значение true, игрокам будет предложено ответить положительно или они будут отключены, если они откажутся от требуемого пакета. По умолчанию стоит значение false.
  • max-tick-time — Максимальное количество миллисекунд, которое может занять один тик, прежде чем сторожевой таймер сервера остановит сервер с сообщением «A single server tick took 60.00 seconds (should be max 0.05); Considering it to be crashed, server will forcibly shutdown. Once this criterion is met, it calls System.exit(1)». Значение -1 полностью отключить сторожевой таймер. По умолчанию 60000.
  • max-players — Максимальное количество игроков, которые могут играть на сервере одновременно. Обратите внимание, что больше игроков на сервере потребляют больше ресурсов. Максимальное допустимое количество игроков на сервере (от 0 до 999).
  • use-native-transport — Улучшения производительности сервера GNU/Linux: оптимизирована отправка и получение пакетов в GNU/Linux. По умолчанию true.
  • online-mode — Включает проверку премиум-аккаунтов пользователей, подключающихся к серверу. Если для этого параметра установлено значение true, но на сервер смогут заходить только владельцы премиум-аккаунтов. Если проверка аккаунтов отключена (установлено значение false), то на сервер могут заходить любые пользователи (в том числе, например, и игроки, подделавшие ник), что создает дополнительные риски безопасности. При отключенной проверке можно играть в Minecraft по локальной сети или с друзьями через NAT, без доступа к официальной лицензионной копии игры Minecraft. По умолчанию стоит true.
  • enable-status — Позволяет серверу отображаться в списке серверов как «онлайн». Если установлено значение false, он будет подавлять ответы от клиентов. Это означает, что он будет отображаться как автономный «offline», но все равно будет принимать подключения. По умолчанию стоит true.
  • allow-flight — Позволяет пользователям использовать полет на сервере в режиме выживания, если у них установлен мод, обеспечивающий полет. С включенным разрешением на полет гриферы могут стать более распространенными, потому что это облегчает их работу. В творческом режиме это не имеет никакого эффекта. По умолчанию false.
  • broadcast-rcon-to-ops — Отправьте выходные данные консольных команд RCON всем онлайн-операторам. По умолчанию true.
  • view-distance — Максимальная дальность видимости. Задает объем мировых данных, которые сервер отправляет клиенту, измеряемый в порциях в каждом направлении игрока (радиус, а не диаметр). Он определяет расстояние просмотра на стороне сервера. 10 — значение по умолчанию/рекомендуется. Если у игрока большое отставание, это значение рекомендуется уменьшить. Возможный интервал значений от 3 до 32.
  • resource-pack-prompt — Необязательно, но есть возможность, добавляет пользовательское сообщение, которое будет отображаться в приглашении пакета ресурсов при использовании require-resource-pack. Возможен синтаксис в компонентах чата, может содержать несколько строк. По умолчанию после знака равно ничего не стоит.
  • server-ip — Это IP-адрес вашего сервера, к нему будут подключаться игроки по локальной сети или через NAT. По умолчанию после знака равно ничего не стоит.
  • allow-nether — Определяет возможность перехода в Нижний мир. Если установлено значение false, то все игроки из Нижнего мира будут перемещены в обычный, а порталы перестанут работать. По умолчанию для этого параметра установлено значение true.
  • server-port — Порт сервера. Указывает порт, который будет использоваться сервером игры. Значение этого параметра изменять не рекомендуется. Можно указать свой, предварительно открыв его на своём роутере и брандмауэре. Стандартный порт для Minecraft — это 25565.
  • enable-rcon — Открывает удаленный доступ к консоли сервера. Можно включить — true. Включает удаленный доступ к консоли сервера. Не рекомендуется предоставлять RCON доступ к Интернету, потому что протокол RCON передает все без шифрования. Все (включая пароль RCON), передаваемое между сервером RCON и клиентом, может быть передано кому-либо, прослушивающему ваше соединение. По умолчанию он отключен — false.
  • sync-chunk-writes — Включает синхронную запись фрагментов. По умолчанию true.
  • op-permission-level — Устанавливает уровень разрешений по умолчанию для операций при использовании команды /op (дать права администратора игроку по нику). По умолчанию значение 4, может принимать значение от 0 до 4.
  • prevent-proxy-connections — Если ISP/AS, отправленный с сервера, отличается от сервера аутентификации Mojang Studios, игрок будет удален. По умолчанию false.
  • resource-pack — Файл текстур, который будет использоваться при подключении игрока к серверу. В качестве значения этого параметра указывается имя zip-архива с текстурами, который хранится в том же каталоге, что и сервер. По умолчанию после знака равно ничего не стоит. Размер файла пакета ресурсов не может превышать 100 Мбайт. Обратите внимание, что успешная или неудачная загрузка регистрируется клиентом, а не сервером. По умолчанию после знака равно ничего не стоит.
  • entity-broadcast-range-percentage — Определяет, насколько близкими должны быть объекты перед отправкой клиентам. Более высокие значения означают, что они будут отображаться с более дальнего расстояния, что может привести к большему запаздыванию. Это выражается в процентах от значения по умолчанию. Например, установка значения 50 сделает его вдвое меньше обычного. Это имитирует функцию в настройках видео клиента, в отличие от расстояния рендеринга, которое клиент может настроить, если оно соответствует настройкам сервера. По умолчанию стоит значение 100. Может принмать значение от 10 до 1000.
  • rcon.password — Устанавливает пароль для RCON: протокола удаленной консоли, который позволяет другим приложениям подключаться и взаимодействовать с сервером Minecraft через Интернет.
  • player-idle-timeout — Время бездействия (в минутах), по истечении которого игроки автоматически отключаются от сервера. Если значение не равно нулю, игроки удаляются с сервера, если они простаивают более этого количества минут.
  • force-gamemode — Уставливает для игроков, подключающихся к серверу, стандартный режим игры. false — игроки присоединяются к игровому режиму, в котором они вышли. true — Игроки всегда присоединяются к игровому режиму по умолчанию.
  • debug — Программа-отладчик, которую используют для проверки и отладки выполняемых файлов. Позволяет активировать режим отладки на сервере. По умолчанию false.
  • rate-limit — Устанавливает максимальное количество пакетов, которые пользователь может отправить до того, как его кикнут. Установка значения 0 отключает эту функцию. По умолчанию установлено значение 0.
  • hardcore — Если установлено значение true, сложность сервера игнорируется и устанавливается в значение hard, а игроки переводятся в режим наблюдателя, если они умрут.
  • white-list — Включает и отключает использование белого списка игроков на сервере. Если установлено значение true, то администратор сможет формировать белый список, добавляя в него ники игроков вручную. Если же установлено значение false, то на сервер может заходить любой пользователь, знающий его IP-адрес и порт. Администраторы сервера автоматически попадают в белый список, и нет необходимости добавлять их в белый список.
  • broadcast-console-to-ops — Разрешает посылать в чат сообщения об использовании команд вида /op, например, /give или /gamemode. По умолчанию true.
  • spawn-npcs — Определяет, могут ли появляться жители деревни. true — жители появляются, false — жители не появляются.
  • spawn-animals — Разрешает автоматическое появление дружелюбных мобов. Определяет, могут ли животные размножаться. true — Животные размножаются как обычно. false — животные немедленно исчезают. Если у игрока большая задержка, рекомендуется отключить/установить значение false.
  • snooper-enabled — Разрешает серверу отправлять статистику и данные разработчикам. Задает, регулярно ли сервер отправляет данные snoop на http://snoop.minecraft.net. false — отключить отслеживание. true — включить отслеживание.
  • function-permission-level — Позволяет изменять права операторов. Может принимать разные значения: (от 1 до 4) права операторов (/op). 1 — Операторы могут ломать и ставить блоки внутри радиуса защиты территории спавна (spawn-protection). 2 — Операторы могут использовать команды /clear, /difficulty, /effect, /gamemode, /gamerule, /give, /tp, и могут изменять командные блоки. 3 — Операторы могут использовать команды /ban, /deop, /kick, и /op. 4 — Операторы могут использовать команду /stop. По умолчанию значение 2.
  • level-type — Определяет тип создаваемой карты. default — стандартный мир с холмами, долинами, водой и так далее. flat — плоский мир без каких-либо функций, может быть изменен с помощью настроек генератора. largeBiomes — то же, что и по умолчанию, но все биомы больше. amplified — то же, что и по умолчанию, но ограничение по высоте для игрового мира увеличено.
  • text-filtering-config — Настройка, которая позволяет связать определенный сервис с сервером для автоматической фильтрации текста в чате и написанных книгах. По умолчанию после знака равно ничего не стоит.
  • spawn-monsters — Определяет, могут ли монстры появляться. Монстры появляются ночью и в темноте. Разрешает, если установлено значение true, порождение враждебных мобов. Эта настройка не действует, если difficulty = 0 (peaceful) Если сложность not = 0 монстр все равно может появиться из спавнера. Если у игрока большая задержка, рекомендуется отключить/установить значение false.
  • enforce-whitelist — Применяет белый список на сервере. При включении функции сервер перед каждым заходом игрока будет автоматически перезагружать вайтлист для поиска новых никнеймов, то есть, когда эта опция включена, пользователи, которых нет в белом списке (если он включен), удаляются с сервера после того, как сервер перезагрузит файл белого списка. false — Ни один пользователь не будет выгнан, если он не внесен в белый список. true — Онлайн-пользователей, не внесенных в белый список, выгоняют. По умолчанию стоит значение false.
  • resource-pack-sha1 — Специальный метод SHA-1 для более скоростного хеширования пакета ресурсов. Указывается в шестнадцатеричном виде. Примечание: Если пакет ресурсов отличается, при запуске сервера в консоли появляется желтое сообщение «Недопустимый sha1 для пакета ресурсов-sha1«. Из-за природы хэш-функций вероятность возникновения ошибок очень мала, поэтому это следствие не имеет никакого эффекта.
  • spawn-protection — Определяет длину стороны квадратной зоны, защита спавна от разрушения блоков, как 2x+1. Установка этого значения в 0 отключает защиту спавна. Значение 1 защищает квадрат 3×3 с центром в точке возрождения. Значение 2 защищает 5×5, значение 3 защищает 7×7 и так далее. Эта опция не генерируется при первом запуске сервера и появляется, когда присоединяется первый игрок. Если на сервере не установлены никакие значения, то защита спавна автоматически отключается и можно там творить всё, что угодно и разрушать все блоки на спавне. По умолчанию 16.
  • max-world-size — Это задает максимально возможный размер в блоках, выраженный в виде радиуса, который может получить граница мира. Установка большей границы мира приводит к успешному завершению команд, но фактическая граница не выходит за пределы этого ограничения блока. Установка максимального размера мира выше значения по умолчанию, похоже, ничего не дает. Ограничте этот размер, если не хотите, чтобы игроки плодили игровой мир, который будет занимать конские размеры на вашем жеском диске. Размер мира определяется количеством игроков на сервере, обычно ставят 5000х5000 (стандарт). Адекватный размер карты около 10000 на 50 человек, на маленькое короткое время застройки. Размер 2000-3000 очень хороший размер, примерно на 6-12 месяцев строительства для небольшой играющей компании из 5 человек. Принимает значения от 1 до 29999984.

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

  • max-build-height — Максимально возможная высота в мире. Максимальная высота, разрешенная для строительства. Рельеф все еще может естественным образом генерироваться выше низкого предела высоты. 256 — это максимально возможное число, оно также должно быть кратно 8.

Сохраняем файл конфигурации после настройки под ваши возможности оборудования и игровые планы.

4.6. Создание каталогов для плагинов.

С принятием лицензии и первоначальной настройкой сервера мы закончили.

Снова запустим сервер, но уже из-под пользователя minecraftuser с минимальными настройками, чтобы он прогрузился и создал еще несколько каталогов и файлов.

# su minecraftuser

# java -Xms1024M -Xmx4096M -XX:ParallelGCThreads=1 -jar /home/minecraftuser/spigot-1.17.1.jar nogui

Внимание! Снова прийдется подождать некоторое время. Иногда будет казаться, что сервер подвис и ничего не происходит. Он генерирует первоначальную нового карту мира и создает новые каталоги для плагинов и настроек. Ждем завершения процедур, не в коем случае не закрываем!

Окончанием успешно развернутого в оперативной памяти сервера будут вот такие строки:

Сервер запущен! Поставим на него плагины!

Сохраняем сгенерированную карту своего игрового мира:

> save-all

Останавливаем работу сервера сервисной командой stop:

> stop

4.7. Тонкая настройка запуска игрового сервера.

Для комфортной и интересной игры нужно настроить запуск сервера с конкретными параметрами, которые подойдут именно вам и и менно для вашего оборудования.

Minecraft требует наличия 1 Gb оперативной памяти для работы операционной системы сервера + 4 Gb оперативной памяти на компанию из 10 игроков.

Памяти на 2 Gb вполне хватит для одиночной игры, но всё равно рекомендуется увеличить объем оперативной памяти для повышения производительности! Для этого замените 1024 в параметрах -Xmx и -Xms на 2048 и так далее по аналогии с обьемом вашей операвной памяти.

Подробнее обоснования таких параметров запуска сервера можете почитать в Интернете.

Максимальное и минимальное значение выделяемой памяти не рекомендуется делать равным. Это приводит к медленной работе сервера Minecraft.

Вариант щедрого запуска сервера на 4 Gb оперативной памяти.

Запускаем снова из-под пользователя minecraftuser:

# java -Xms1024M -Xmx4096M -server -XX:+UseG1GC -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=1 -jar /home/minecraftuser/spigot-1.17.1.jar nogui

где:

  • java — строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems.
  • -Xms1024M – минимум памяти выделяемой под сервер Minecraft.
  • -Xmx4096M – максимум памяти выделяемой под сервер Minecraft.
  • -server – гарантирует, что сервер использует виртуальную машину сервера, помогает производительности, но мы ставить это не будем, если у нас всё в железе.
  • -XX:+UseG1GC – Это устанавливает сборщик мусора, чтобы быть сборкой мусора в первую очередь, который разработан, чтобы иметь минимальные задержки даже с большими размерами кучи. Это самый рекомендуемый сборщик мусора для серверов Minecraft, особенно с большим количеством выделенной оперативной памяти.
  • -Dfile.encoding=UTF-8 – это позволяет убрать зависимость от окружения, делает поведение программ детерминированным и совместимым с большинством операционных систем. Если всё работает, то это подключать не надо.
  • -XX:ParallelGCThreads=1 – количество потоков Garbage Collector‘а (1 физическое ядро = 1 поток, если у вас включен Hyperthreading, то 1 физическое ядро = 2 потока). Установите согласно количеству ядер вашего процессора.
  • nogui – консоль графического интерфейса сервера, которая появляется при запуске сервера, обычно вызывает большую нагрузку на ресурсы сервера. Добавление “nogui” (без кавычек) в конце ваших аргументов запуска позволит запустить сервер без этого лагового консольного графического интерфейса.

Сохраняем карту игрового мира:

> save-all

Останавливаем работу сервера:

> stop

5. Создание shell-скрипта start.sh.

Всё у нас работает, всё у нас хорошо, но почему бы не упростить себе запуск сервера с любимой игрой?

Если вам надоело каждый раз вводить длинную команду и пользоваться утилитой screen:

# java -Xms1024M -Xmx4096M -server -XX:+UseG1GC -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=1 -jar /home/minecraftuser/spigot-1.17.1.jar nogui

Выход есть — это создание shell (*.sh) скрипта и запуск его в фоновом режиме при любой перезагрузке сервера.

Если вы были под пользователем minecraftuser, то переключаемся обратно на пользователя root.

Создадим файл start.sh — скрипт запуска игрового сервера Minecraft и поместим его отдельно от каталога пользователя minecraftuser в каталог /sh/minecraft/. Это потребуется для того, чтобы сервер CentOS 7 сам мог запускать игровой сервер Minecraft от имени пользователя minecraftuser, а пользователь minecraftuser не имел возможности понаписать туда всякой опасной диверсионной ерунды для самого сервера CentOS 7.

Создадим из под root:

# sudo su

# mkdir -p /sh/minecraft

# mcedit /sh/minecraft/start.sh

Поместим в него строки:

#!/bin/bash
echo "Внимание! Вы активировали запуск игрового сервера Minecraft."
java -Xms1024M -Xmx4096M -server -XX:+UseG1GC -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=1 -jar /home/minecraftuser/spigot-1.17.1.jar nogui

Сохраним файл start.sh и выйдем из текстового редактора.

Чтобы в будущем сервер мог пользоваться данным файлом из crontab программы в определенное время от имени пользователя minecraftuser, добавим права пользования на данный файл для пользователя minecraftuser:

# chown minecraftuser:minecraftuser /sh/minecraft/start.sh

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

Для этого используется команда chmod +x и имя файла скрипта:

# chmod +x /sh/minecraft/start.sh

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH. Один из них тот, который предназначен для ручной установки программ – /usr/local/bin.

# ln -s /sh/minecraft/start.sh /usr/local/bin/start.sh

Теперь вы можете выполнять данный скрипт и под пользователем minecraftuser. Если запустить под пользователем root, сервер Minecraft будет бесконечно простить принять лицензионное соглашение. Будем запускать скрипт под учетной записью minecraftuser.

Для запуска сервера Minecraft просто введите, из под пользователя minecraftuser, в командной строке:

# su minecraftuser

Очень удобно! Сервер запускается всего с одной простой команды.

# start.sh

Сохраняем карту игрового мира:

> save-all

Останавливаем работу сервера:

> stop

На этом этапе можно начать пользоваться запуском игрового сервера в фоновом режиме с помощью утилиты screen.

Ссылка: «CentOS 7: Установка, настройка и эксплуатация утилиты screen.»

6. Установка и настройка файлов клиентской части.

Пришло время настроить клиент игры Minecraft и погрузиться в этот удивительный игровой мир:

Ссылка: «Minecraft: Программа-клиент для игры — TLauncher.»

7. Настройка системы rcon.

Rcon — это система, которая может локально или удаленно управлять вашим Minecraft сервером через web-интерфейс, если вы находясь далеко от компьютера на котором запущен сервер.

Ссылка: «Minecraft: Настройка системы rcon. Удалённое управление сервером под Windows и под GNU/Linux. Утилита mcrcon.»

8. Создание shell-скриптов — restart.sh, save_all.sh, stop.sh.

Почему бы не автоматизировать и други основные команды сервера Minecraft: перезапуск, сохранение игрового Мира и полную остановку?

Внимание! Дальнейшие действия в инструкции предусматривают, что вы настроили rcon и mcrcon на предыдущем, шаге №7, данной инструкции.

Для осуществления задуманного потребуется создать скрипт перезапуска сервера — restart.sh, скрипт сохранения игрового Мира — save_all.sh и скрипт остановки сервера — stop.sh.

Если вы были под пользователем minecraftuser, то самое время переключаемся обратно на пользователя root.

8.1. Скрипт restart.sh.

Создадим файл restart.sh — скрипт перезапуска игрового сервера Minecraft:

# mcedit /sh/minecraft/restart.sh

Поместим в него строки:

#!/bin/bash
echo "Внимание! Вы активировали перезапуск игрового сервера Minecraft."
mcrcon -H 192.168.0.19 -P 25575 -p rconpassword restart

Сохраним файл и выйдем из текстового редактора.

Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:

# chmod +x /sh/minecraft/restart.sh

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH. Один из них тот, который предназначен для ручной установки программ – /usr/local/bin.

# ln -s /sh/minecraft/restart.sh /usr/local/bin/restart.sh

Чтобы сервер CentOS 7 сам мог запустить игровой сервер Minecraft после перезапуска игрового сервера Minecraft командой restart, а пользователь minecraftuser не имел возможности сделать подлог в фоновом запуске посторонних программ для сервера CentOS 7, сделаем ссылку на файл из дальней локации в домашнюю каталог пользователя minecraftuser.

# ln -s /sh/minecraft/start.sh /home/minecraftuser/start.sh

Протестируем в консоли пользователя minecraftuser:

# restart.sh

Если сервер Minecraft функционировал на сервере CentOS 7, то он успешно уйдет на перезагрузку. Перезагрузится, подхватит скрипт start.sh по ссылке в его игровом каталоге и успешно запустится!

8.2. Файл save_all.sh.

Создадим файл save_all.sh — скрипт запуска игрового сервера Minecraft:

# mcedit /sh/minecraft/save_all.sh

Поместим в него строки:

#!/bin/bash
echo "Внимание! Вы активировали сохранение игрового Мира на сервере Minecraft."
mcrcon -H 192.168.0.19 -P 25575 -p rconpassword save-all

Сохраним файл и выйдем из текстового редактора.

Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:

# chmod +x /sh/minecraft/save_all.sh

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH. Один из них тот, который предназначен для ручной установки программ – /usr/local/bin.

# ln -s /sh/minecraft/save_all.sh /usr/local/bin/save_all.sh

Протестируем в консоли пользователя minecraftuser:

# save_all.sh

8.3. Скрипт stop.sh.

Создадим файл stop.sh — скрипт запуска игрового сервера Minecraft:

# mcedit /sh/minecraft/stop.sh

Поместим в него строки:

#!/bin/bash
echo "Внимание! Вы активировали остановку игрового сервера Minecraft."
mcrcon -H 192.168.0.19 -P 25575 -p rconpassword stop

Сохраним файл и выйдем из текстового редактора.

Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:

# chmod +x /sh/minecraft/stop.sh

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH. Один из них тот, который предназначен для ручной установки программ – /usr/local/bin.

# ln -s /sh/minecraft/stop.sh /usr/local/bin/stop.sh

Протестируем в консоли пользователя minecraftuser:

# stop.sh

Если сервер Minecraft функционировал на сервере CentOS 7, то он успешно сохранит файлы с Миром игры и полностью отключится. После выключения сервера Minecraft, его прийдется включать любым удобным способом. После данной команды он окончательно и бесповоротно отключен!

Для обратного ввода в эксплуатацию сервера Minecraft активируйте скрипт start.sh из под учетной записи пользователя minecraftuser:

# start.sh

Сервер запустится в штатном режиме.

9. Автоматизация запуска сервера Minecraft.

9.1. Автоматизация запуска с помощью crontab.

Для реализации данного способа требуется внести задачу скрипта start.sh в каталоге /sh/minecraft/ на исполнение в программу cron на сервере CentOS 7.

Проверим, работает ли у нас вообще cron в фоновом режиме?

# ps -ef | grep cron

Открываем файл заданий cron:

# mcedit /etc/crontab

Добавляем строки по смыслу общего синтаксиса в файле:

# Minecrafr Server
# Run start.sh after reboot CentOS 7
@reboot minecraftuser /usr/bin/bash /sh/minecraft/start.sh &>/dev/null

Где указаны следующие параметры:

  • @reboot — задание выполняется после загрузки системы CentOS 7;
  • minecraftuser — пользователь от имени которого будет произведен запуск;
  • /usr/bin/bash — с помощью чего обрабатывать файл;
  • /sh/minecraft/start.sh — путь до необходимого файла;
  • &>/dev/null — смысл вкратце — “весь вывод указанной команды спихнуть в черную дыру!”, это один из способов сделать программу по-настоящему безмолвной.

В консоли останавливаем сервер Minecraft и перезагружаем сервер CentOS 7:

# stop.sh

# shutdown -r now

Ждем некоторое время. Минут 3-5, в зависимости от производительности сервера CentOS 7.

Готово! Сервер CentOS 7 перезагрузился и стартовал сервер Minecraft.

9.2. Автоматизация запуска в качестве отдельного сервиса.

Данный раздел зарезервирован для создания сценария запуска minecraft.service.

10. Организация резервного копирования игрового мира.

Создадим файл backup.sh — скрипт запуска игрового сервера Minecraft:

# mcedit /sh/minecraft/backup.sh

Поместим в него строки:

#!/bin/bash
echo "Внимание! Вы активировали резервное копирование Мира игрового сервера Minecraft."
function backup {
  mcrcon -H 192.168.0.29 -P 25575 -p rconpassword "$1"
                }
echo "Внимание! Происходит отключение автосохранения Мира игрового сервера Minecraft."  
  backup "save-off"
echo "Внимание! Происходит сохранение Мира игрового сервера Minecraft." 
  backup "save-all"
echo "Внимание! Происходит архивация Мира игрового сервера Minecraft."
  tar -cvpzf /files/minecraft_backups/minecraft_server-$(date +%F_%R).tar.gz /home/minecraftuser/
echo "Внимание! Происходит включение автосохранения Мира игрового сервера Minecraft." 
  backup "save-on"  
echo "Внимание! Происходит удаление старых архивов Мира игрового сервера Minecraft старше 5 дней от момента создания." 
  /usr/bin/find /files/minecraft_backups/ -type f -mtime +5 -exec rm -rf {} \;

Сохраним файл и выйдем из текстового редактора.

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

Для этого используется команда chmod +x и имя файла скрипта:

# chmod +x /sh/minecraft/backup.sh

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH.

Один из них, который предназначен для ручной установки программ – /usr/local/bin:

# ln -s /sh/minecraft/backup.sh /usr/local/bin/backup.sh

Протестируем в консоли пользователя minecraftuser:

# backup.sh

Запустится скрипт backup.sh результатом работы которого будет увесистый архивный файл вида minecraft_server-2020-02-18_16:08.tar.gz в каталоге /files/minecraft_backups/.

Для реализации автоматического резервного копирования игрового мира требуется внести задачу скрипта backup.sh в каталоге /home/minecraftuser на исполнение в программу cron на сервере CentOS 7.

Проверим, работает ли у нас вообще cron в фоновом режиме?

# ps -ef | grep cron

Открываем файл заданий cron:

# mcedit /etc/crontab

Добавляем строки по смыслу общего синтаксиса в файле:

# Minecrafr Server
# Run 6:10 backup.sh every day
10 6 * * * root /usr/bin/bash /home/minecraftuser/backup.sh &>/dev/null

Где указаны следующие параметры:

  • 10 6 * * — задание выполняется в 6 часов 10 минут утра, каждый день;
  • root — пользователь которому принадлежит файл;
  • /usr/bin/bash — с помощью чего обрабатывать файл;
  • /home/minecraftuser/backup.sh — путь до необходимого файла;
  • &>/dev/null — смысл вкратце — “весь вывод указанной команды спихнуть в черную дыру!”, это один из способов сделать программу по-настоящему безмолвной.

11. Организация доступа к ресурсам сервера по sFTP.

11.1. Отключение shell-оболочки.

Ранее мы создавали пользователя minecraftuser с возможностью пользоваться shell-оболочкой в CentOS 7. Это было нам полезно. Мы с вами всё настроили из под него. Все работает в автоматическом режиме. Данную способность у пользователя нужно забрать, так как если мы передадим учетку посторонним людям на администрирование сервера, то у нас будет некоторая прямая угроза в безопасности сервера CentOS 7.

Зайдем в системный файл, где хранятся все записи о пользователях:

# mcedit /etc/passwd

Найдем строку про нашего minecraftuser:

minecraftuser:x:1001:1001::/home/minecraftuser:/bin/bash

Заменяем ее на эту строку по смыслу синтаксиса:

minecraftuser:x:1001:1001::/home/minecraftuser:/sbin/nologin

Таким образом, если minecraftuser соберется воспользоваться консолью, то сервер CentOS 7 ему это сделать не даст!

11.2. Подключение FTP.

Как это сделать описано в статье «CentOS 7: Установка и настройка vsftpd».

12. Мелкий тюнинг.

12.1. Как добавить текстуры на сервер?

В server.properties пропишите путь к *.zip архиву с текстурпаком:

texture-pack=http://site.ru/pack.zip

12.2. Как загрузить свой мир на сервер?

Для того, чтоб загрузить свой мир, Вам нужно зайти по FTP, удалить содержимое каталога world (или другого каталога с миром, если у вас не стандартное название мира) и загрузить свой мир в каталог с тем же названием.

13. Если что-то пошло не так.

13.1. Ошибка лицензии при запуске.

Ошибка: Бывает, что вы запускаете сервер Minecraft, а он постоянно простит принять лицензию в файле eula.txt и никак не хочет стартовать.

Решение: запускайте сервер Minecraft под пользователем minecraftuser и убедитесь, что параметр online-mode=false в главном файле конфигурации server.properties.

Удалите файл лицензионного соглашения, затем запустите сервер, затем закройте сервер, затем перейдите к новому файлу лицензионного соглашения и установите значение true, затем сохраните и закройте его, затем запустите сервер.

13.2. Игровой сервер Minecraft завис.

Ошибка: Игровой сервер Minecraft глюканул, вышел из под контроля, не хочет перезапускаться, пишет что уже запущен и не стартует, ведет себя странно? Выход есть!

Решение: Остановим все процессы без разбора, которые принадлежат пользователю minecraftuser:

# killall -9 -u minecraftuser

Сбрасываем. Готово! Можно запустить всё заново и с чистого листа!

# start.sh

14. Оригиналы источников информации.

  1. pikabu.ru «Minecraft — что это такое и почему он такой популярный.»
  2. igromania.ru «Игра в кубики. В чем сила Minecraft?»
  3. habr.com «Создание и настройка сервера Minecraft.»
  4. minecraft-ru.gamepedia.com «Spigot.»
  5. minecraft-ru.gamepedia.com «DynMap.»
  6. minecamp.ru «ClearLagg.»
  7. minecraft-ru.gamepedia.com «CoreProtect.»
  8. 8host.com «Установка Git на CentOS 7.»
  9. mine-mods-info.ru «[Гайд] Spigot Api BuildTools, использование, применение, скачать ядро.»
  10. spigotmc.org «BuildTools — Simple instructions to build CraftBukkit and Spigot.»
  11. linuxize.com «How to Install Minecraft Server on CentOS 7.»
  12. serveradmin.ru «Доступ к сайту по sftp вместо обычного ftp с ограничением директории» от 12.04.2016.
  13. my.srvgame.ru «Полезные советы.»
  14. minecraft.fandom.com «server.properties»
  15. wiki.spacecore.pro «Настройка server.properties.»

Читайте также: