Minecraft (Майнкрафт) - это строительная игра жанра «песочница» (Mine — «шахта; добывать» + Сraft — «ремесло; создавать»). Создана шведским программистом Маркусом Перссоном в 2009 году, а в конце 2011 года была выпущена стабильная версия для компьютеров Windows, Linux и macOS с распространением через официальный сайт. В 2017 году было выпущено кроссплатформенное обновление, объединившее различные версии Minecraft для разных устройств в единую мастер-версию — общую для Windows 10, iOS, Android и др. Движок новой объединённой версии игры и сама эта версия получили название Bedrock Edition, а позднее стала называться просто Minecraft без уточнений. Старая версия игры, работающая на Java, получила подзаголовок Java Edition. На момент написания статьи доступна версия 1.21.1, но в альтернативных раздачах она называется просто Minecraft.
Миры, сохранения и моды из версии Bedrock Edition несовместимы с версией Java Edition.
Что такое Fabric
Fabric — это модульный, легкий загрузчик модов для Minecraft.
Ссылки
О операционной системе.
Сервер Майнкрафт можно установить на Linux, в свою очередь Linux может стоять на виртуальной машине или на реальной.
Установка на виртуальную машину проста, собственно разворачиваем виртуальную машину, на виртуальной машине устанавливаем соединение типа мост.
Так как мы запускаем сервер то и операционка будет серверная, и конечно это будет Linux, а именно Linux Ubuntu, еще точнее Ubuntu Server (ubuntu.com/server). Напомню о том, что Ubuntu ответвление ОС Debian.
Работа с терминалом.
Putty.
Можно воспользоваться Putty (Официальный сайт, на моем дискe Яндекс.Диск, Гугл.Диск). Про работу с SSH и Putty у меня было в множестве статей, вот они:
Статьи на моем канале
Терминал Windows.
А можно терминалом Windows, для этого нажмите Win+R наберите cmd и Enter
введите:
ssh [user]@[IP_adress]
Например вот так :
ssh linuxcraft@192.168.1.35
где "linuxcraft" - имя пользователя, а "192.168.1.35" - IP адрес компьютера.
Затем вводим пароль пользователя (сам пароль не отображается)
MobaXterm
Альтернатива выше названным программам MobaXterm. Мне надоело каждый раз вбивать пароли (MobaXterm сохраняет пароли хотя это не безопасно) и я перешел на эту программу, пока "на попробовать"
Скачать можно тут: mobaxterm.mobatek.net/download.html, есть портативная и с установкой, но она платная. Есть бесплатная версия с ограниченны функционалом, для работы под SSH, telnet, а также посмотреть функционал вполне подойдёт, ну а так вы сами знаете об альтернативах.
Мне программа не очень понравилась, она с очень большим функционалом и для меня это плохо, мне бы, хотелось бы, что-то по принципу Putty, но с сохранение паролей и копированием - вставкой в одно нажатие. Пока я в поисках
Безопасность
Создаем пользователя ("Имя_пользователя"):
adduser имя_пользователя
Например:
adduser mineuser
и предоставляем ему права администратора
usermod -aG sudo имя_пользователя
Например:
usermod -aG sudo mineuser
и права удаленного доступа по SSH:
rsync --archive --chown=mineuser:mineuser ~/.ssh /home/mineuser
Например для пользователя linuxcraft все будет выглядеть вот так:
adduser linuxcraft
usermod -aG sudo linuxcraft
rsync --archive --chown=linuxcraft:linuxcraft ~/.ssh /home/linuxcraft
Напомню, что:
открыть оболочку root
sudo -s
А сменить пользователя
su - имя_пользователя
Перезагрузить систему под обычным пользователем можно, выполнив команду:
systemctl
Под root
reboot
java
Серверная часть работает на java и она нам понадобится
Проверка установленной версии java:
java -version
Устанавливаем Java Development Kit командой:
sudo apt install default-jdk
Еще раз проверяем версию
java -version
Установка официальной версии сервера Minecraft Java Edition.
Мы можем установить официальный сервер Minecraft: Java Edition, то у меня связка клиент и сервер не заработала по очень простой причине, для последнего сервера нужна последняя программа клиент (обычный Minecraft в который вы играете на своем компьютере) , а где его взять? Понятно что можно купить, но мы не ищем легких путей, а с альтернативными путями можно взять только более раннюю версию игры, но на последнем официальном сервере она не заработает, а где найти официальный сервер прошлых версий я так и не нашел. Поэтому я скачал альтернативный сервер PaperMC который как пишут даже лучше официального, о нем будет ниже, а настройку и скачку официального сервера я привожу ниже просто что бы было. Итак, кто хочет настроить все как надо читайте "сервер PaperMC" ниже.
Для установки официальной версии сервера Minecraft Java Edition создаем директорию, в которой будет располагаться сервер Minecraft:
mkdir minecraft_server
И переходим в неё:
cd minecraft_server
Переходим на официальный сайт Minecraft и копируем ссылку при помощи правой кнопки мыши на актуальный файл JAR.
wget <Ваша ссылка> или вот так
wget https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar
Запускаем сервер Minecraft с помощью следующей команды:
java -Xmx1024M -Xms1024M -jar server.jar nogui
Параметры Xmx1024M, Xms1024M задают минимальный и максимальный объем оперативной памяти, который будет использован сервером. Параметр nogui означает, что программа будет запущена без графического интерфейса.
Открываем eula.txt с помощью редактора nano:
nano eula.txt
Заменяем в файле значение параметра eula с false на true тем самым принимая пользовательское соглашение. Далее выходим из редактора сочетанием клавиш Ctrl + X. Соглашаемся на сохранение файла, нажав на клавишу Y. И подтверждаем сохранение изменений в eula.txt клавишей Enter.
Открываем конфигурационный файл server.properties через редактор nano:
nano server.properties
На 23 строчке документа находим параметр online-mode и выставляем ему значение false
Дополнительную информацию о параметрах, представленных в файле server.properties, вы можете узнать на Minecraft Wiki.
Снова пробуем запустить наш сервер командой:
java -Xmx1024M -Xms1024M -jar server.jar nogui
На этом все.
Сервер PaperMC
Paper — игровой сервер Minecraft на базе Spigot.
Для меня важно, что можно скачать сборку на не самый новый Майнкрафт.
На самом деле существует несколько альтернативных реализаций сервера, один из самых популярных Paper (papermc.io). Актуальная, самая последняя версия: https://papermc.io/downloads/paper. Старые сборки можно скачать вот тут: https://papermc.io/downloads/all они подходят для не новых клиентов которые Вы затем установите на свой компьютер, для меня это оказалось очень важно так как я пользуюсь клиентом версии 1.21.1
Установка Paper
Создаем директорию, в которой будет располагаться сервер Minecraft paper (minecraft_server_paper):
mkdir minecraft_server_paper
И переходим в нее:
cd minecraft_server_paper
wget <Ваша ссылка> или вот так
Ссылка отсюда, старые сборки доступны по этому адресу: https://papermc.io/downloads/all
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/132/downloads/paper-1.21.1-132.jar
Создадим файл eula.txt
touch eula.txt
Теперь отредактируем его
nano eula.txt
Внесем туда данные, сохраним его и закроем
eula=true
Теперь запустим игровой сервер:
java -jar paper-1.21.1-132.jar --nogui
Ключ --nogui запрещает запускать графическую оболочку, у нас же сервер!
Отредактировать файл конфигурации (для выключение проверки на официальном сервере):
nano server.properties
Поменять значение true на false
online-mode=false
Настройка
Помимо настройки "online-mode=false" возможны другие настройки, опять открываем файл конфигурации:
nano server.properties
где
motd=Название вашего сервера
enable-status=false Будет показывать, что сервер offlain, но он будет работает как обычно.
Остальные настройки Вы можете узнать на Minecraft Wiki или вот тут
Для включения функции whitelist выполняем команду:
- whitelist on
Добавить игрока можно по команде:
whitelist add <имя_игрока>
Быстрый запуск сервера
Для старта сервера мы должны попасть в каталог: "minecraft_server_paper", где хранится наш сервера , именно наш "paper", например во так:
cd minecraft_server_paper
или вот так:
cd /home/mineuser/minecraft_server_paper
или индивидуально для Вас, куда Вы сохранили свой сервер.
И ввести:
java -jar paper-1.21.1-132.jar --nogui
Но это долго и нудно поэтому создадим файл с расширением .sh. Такие файлы, использующие расширение SH, содержат код скриптов, которые могут быть использованы оболочкой Bash, а соответственно сами скрипты, написаны на языке Bash. Создаем файл:
touch start.sh
Отредактируем его через текстовый редактор "nano"
nano start.sh
Внесем туда данные (а как сохранять вы помните)
#!/bin/bash
clear
echo -e "\033[32m Start server paper!"
echo -e "\033[0m"
java -jar paper-1.21.1-132.jar --nogui
Где:
- #!/bin/bash (или #!/bin/sh) — это обязательная строка указывает где расположен интерпретатор языка bash (это интерпретатор командной строки, или shell (shell значит оболочка) эта та программа, которая принимает команды от пользователя и исполняет их, есть много подвидов какая у вас установлена можно узнать если ввести: echo $SHELL), все комментарии начинаются с символа #, но кроме вот этой самой первой строки. Она еще может быть: "#!/bin/sh", иными словами "#!/bin/bash" = "#!/bin/sh"
- clear - очистим экран терминала.
- echo - надпись на экране терминала
- -e "\033[32m" - пишем зелененькими буквами
- -e "\033[0m" - сбрасываем цвет на дефолтный серый цвет.
Назначим ему права, позволяющие ему исполнять задачу которая заложена в него:
chmod +x start.sh
Запустим его
./start.sh
Вообще запустить можно одним из следующих способов.
- ./имя_файла.sh
- sh имя_файла.sh
- bash имя-скрипта-здесь.sh
Остановка сервера производится по команде:
stop
Итак, что бы запустить сервер нужно нажать
sh /home/mineuser/minecraft_server_paper/start.sh
Автозагрузка
В автозагрузку мы будем добавлять с помощью демона cron, что это такое и зачем читайте далее.
cron
cron - от анг. chronos, по греческий время, специальная программа работающая в фоновом режиме без прямого взаимодействие с пользователем (такие программы в среде UNIX называются демон(ы)), использующийся для периодического выполнения заданий в определённое время.
Набираем:
crontab -e
При первом запуске спросит какой использовать текстовый редактор:
Далее следуют настройка конфигурационного файла, при новом вызове команды:
crontab -e
уже не будет настройки текстового редактора, но мы попадём в конфигурационный файл.
* * * * * [Команда]
или
[Минуты] [Часы] [Дни] [Месяцы] [Дни недели] [Имя пользователя] [Команда]
где:
- [Имя пользователя] - может быть упущено.
- [Команда] - выполнимая команда.
Например:
0 12 * * 1-5 /usr/local/my_script.sh
выполнять заданную команду или скрипт каждый будний день (с понедельника по пятницу) в 12:00.
есть отдельные команды вот такие:
- @reboot — команда выполнится один раз при перезагрузке системы;
- @yearly — задание будет выполняться один раз в год;
- @annually — вариация команды @yearly, делает то же самое, но в Новый год;
- @monthly — ежемесячное выполнение задания;
- @weekly — скрипт будет срабатывать раз в неделю;
- @daily — ежедневное выполнение;
- @midnight — срабатывание раз в день в полночь;
- @hourly — скрипт выполняется ежечасно.
А теперь перейдем к содержимому файла:
# as usual, comments start with '#'
# use /bin/sh as the shell
# crontab -e
# Preliminary setup
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#### The task starts here
# Minecraft server start
@reboot cd /home/mineuser/minecraft_server_paper/;sh ./start.sh;
#End
Очень важна предпоследняя строчка с "@reboot" она самая главная и в точности должна быть такая до точки, естественно вы ставите свой путь и название файла.
Возможно вам придется поменять права доступа, но у меня все и так работало.
Права доступа выставлены вот так (смотрим: ls -l /home/mineuser/minecraft_server_paper/paper-1.21.1-132.jar)
Мне пришлось изменить права доступа и поставить для владельца вот так:
chmod -R 764 /home/mineuser/minecraft_server_paper/paper-1.21.1-132.jar
И получилось вот так:
Резервирование
Мир на сервере хранится в папке "world", а нижний мир и верхний мир в каталогах соответственно в "world_nether", "world_the_end". Обычный мир хранится одинаково для серверов в папке "world", как сказано выше. А вот с сохранением Nether и End есть различия и если обычный сервер - Vanilla Nethe хранит в /world/DIM-1, а End хранит в /world/DIM1. То Paper то же самое, но /world_nether/DIM-1 и /world_the_end/DIM1
Табличка
Подробнее вот тут: docs.papermc.io/paper/migration
Скачать миры можно например с помощью WinSCP, а посмотреть удобнее с Midnight Commander (mc).
WinSCP
WinSCP (официальный сайт: https://winscp.net, на моем дискe Яндекс.Диск, Гугл.Диск) Вот тут в статье об этом: "Установка дополнительных программ для комфортной работы с роутером" очень подробно расписано что такое WinSCP и как им пользоваться.
Установка сервера
sudo apt update
sudo apt upgrade
sudo apt install openssh-sftp-server
Но это не понадобится так как сервер sftp уже установлен по умолчанию.
Устанавливаем Midnight Commander (mc)
Установка дополнительных программ для комфортной работы с роутером
sudo apt update
sudo apt upgrade
sudo apt install mc
Теперь набираем
mc
И вот она магия.
Putty плохо по умолчанию воспроизводит псевдографику, нужно настраивать.
Можно автоматизировать процесс.
Создание резервной копии миров, команда CP
Для копирования файлов подойдёт команда "cp", вот как она будет выглядеть:
cp -r /папка1/папка1/Исходная_папка1/* /папка2/Конечная_папкапапка2/Конечная_папка2
Где:
Исходная_папка - папка с файлами откуда копируется
Конечная_папка - папка куда копируются.
-a -копируется включая все ссылки и учитывая все права доступа, используйте опцию
или
-r - копирует вместе с каталогами
-f - копирование с заменой существующих файлов
Например пусть полный путь до папок с мирами:
/home/mineuser/minecraft_server_paper/world/
/home/mineuser/minecraft_server_paper/world_nether/
/home/mineuser/minecraft_server_paper/world_the_end/
А путь сохранения:
/mnt/satawd/samba/public/backup/minecraft_world/world
/mnt/satawd/samba/public/backup/minecraft_world/world_nether
/mnt/satawd/samba/public/backup/minecraft_world/world_the_end
Все вместе будет выглядеть так:
cp -a /home/mineuser/minecraft_server_paper/world/* /mnt/satawd/samba/public/backup/minecraft_world/world
cp -a /home/mineuser/minecraft_server_paper/world_nether/* /mnt/satawd/samba/public/backup/minecraft_world/world_nether
cp -a /home/mineuser/minecraft_server_paper/world_the_end/* /mnt/satawd/samba/public/backup/minecraft_world/world_the_end
Скрипт копирования (backup.sh)
Теперь напишем скрипт, создадим файл с расширением .sh. Такие файлы могут быть использованы оболочкой Bash. Создаем файл:
touch backup.sh
Отредактируем его через "nano"
nano backup.sh
Внесем туда данные
#!/bin/bash
# Backup world minecraft
clear
echo -e "\033[32m --- Start backup! ---"
cp -r -f /home/mineuser/minecraft_server_paper/world/* /mnt/satawd/samba/public/backup/minecraft_world/world
cp -r -f /home/mineuser/minecraft_server_paper/world_nether/* /mnt/satawd/samba/public/backup/minecraft_world/world_nether
cp -r -f /home/mineuser/minecraft_server_paper/world_the_end/* /mnt/satawd/samba/public/backup/minecraft_world/world_the_end
echo -e " --- End backup! ---"
echo -e "\033[0m"
#End
Назначим ему права, позволяющие ему исполнять задачу которая заложена в него:
chmod +x backup.sh
Запустим его
cd /home/mineuser/minecraft_server_paper
./backup.sh
Отлично, вручную мы можем сохранять миры, но теперь напишем автоматизацию для cron
Автоматизацию для cron
Запускаем конфигурационный файл
crontab -e
Добавим строчки (мы создавали файл выше)
# Backup of worlds minecraft
* */2 * * * cd /home/mineuser/minecraft_server_paper/;sh ./backup.sh;
Будем запускать резервирование каждые 2 часа
Локальный компьютер
Ничего сложного нет, скачиваем Minecraft, Minecraft официальный сайт, устанавливаем. Добавляем наш сервер по кнопке "Add Server" или "Добавить":
И подключаемся
Вот и всё, но как только новая информация появится я дополняю статью, поэтому как всегда...
Продолжение следует...
Подписывайтесь на мой канал TehnoZet-2, там много интересного! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх!
Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"