1. Обновим все пакеты
sudo apt update
sudo apt upgrade
2. Устанавливаем необходимые пакеты для загрузки и запуска сервера
- java
- wget
sudo apt install openjdk-21-jre-headless wget
3. Далее нам нужно создать пользователя и перейти в него
sudo useradd -m mc_server
sudo -u mc_server -s
4. Создаем каталог где будет храниться сервер и переходим в него
mkdir -p /home/mc_server/minecraft
cd /home/mc_server/minecraft
5. Переходим на сайт MCVersions и выбираем версию Minecraft в разделе Stable. Далее нажимаем Download на нужной версии - > копируем ссылку Server jar и выполняем команду
wget https://piston-data.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar
6. Запускаем сервер командой
java -Xms1024M -Xmx2048M -jar ./server.jar nogui
- Xms - позволяет указать начальный размер пула выделения памяти
- Xmx - позволяет указать максимальный размер пула выделения памяти
Число указывается в байтах, если после него не стоит буква. K или k — килобайты. M или m — мегабайты
7. Сервер не запустится до конца. Он напишет что нужно принять лицензионное соглашение. Для этого нужно отредактировать файл eula.txt
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info
nano eula.txt
Нужно заменить true на false
8. Еще раз запустите сервер командой из пункта 6
9. После того как сервер запустится введите команду stop чтобы остановить сервер
stop
10. Далее поменяем настройки сервера. Для этого отредактируем файл server.properties
nano server.properties
- difficulty - Определяет сложность (например, урон, наносимый мобами, и то, как голод и отравление влияют на игроков) сервера
- мирный ( 0 )
- легко( 1 )
- нормальный ( 2 )
- жесткий ( 3 )
- gamemode - Определяет режим игрового процесса. Если указан устаревший номер игрового режима, он автоматически преобразуется в название игрового режима.
- выживание ( 0 )
- творческий ( 1 )
- приключение ( 2 )
- зритель ( 3 )
- max-players - Максимальное кол-во игроков на сервере
- motd - Название сервера
- online-mode - Нужно обязательно поставить false, чтобы игроки к вам могли подключаться
Остальные параметры можно посмотреть на сайте ( ссылка или ссылка )
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
11. Далее создадим скрипт, который будет запускать наш сервер
sudo nano start_server.sh
И вставим в него строки:
#!/usr/bin/env bash
/usr/bin/screen -dmS mcjava /usr/bin/java -Xms1024M -Xmx2048M -jar /home/mc_server/minecraft/server.jar nogui
/usr/bin/screen -rD mcjava -X multiuser on
/usr/bin/screen -rD mcjava -X acladd root
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
12. И создадим скрипт остановки сервера
sudo nano stop_server.sh
И вставим в него строки:
#!/usr/bin/env bash
/usr/bin/screen -Rd mcjava -X stuff "stop \r"
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
13. Затем нужно сделать файлы исполняемыми
chmod +x /home/mc_server/minecraft/start_server.sh
chmod +x /home/mc_server/minecraft/start_server.sh\
14. После настройки сервера, нужно зайти под пользователем с правами администратора и создать службу, которая при запуске или перезагрузки машины с Linux, будет запускать сервер
exit
sudo nano /etc/systemd/system/mc_server.service
Вставляем в файл строки
[Unit]
Description=Minecraft Server
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
User=mc_server
Group=mc_server
WorkingDirectory=/home/mc_server/minecraft/
ExecStart=/usr/bin/bash /home/mc_server/minecraft/start_server.sh
ExecStop=/usr/bin/bash /home/mc_server/minecraft/stop_server.sh
Restart=always
TimeoutStartSec=600
[Install]
WantedBy=multi-user.target
После завершения написания службы сохраните и закройте её, нажав CTRL + X, затем Y и ENTER
15. Теперь нужно включить запуск сервера при запуске машины и запустить его
sudo systemctl enable mc_server
sudo systemctl start mc_server
Так же можно остановить работу сервера
sudo systemctl stop mc_server
И перезапустить работу сервера
sudo systemctl restart pw_server
16. Для того чтобы подключиться к серверу зайдите в клиент игры -> Сетевая игра -> По адресу -> Введите ip:порт сервера
( 127.0.0.1:25565 )
Если сервер находится у вас в локальной сети не забудьте пробросить порты на своем маршрутизаторе, которые указали в настройках сервера ( стандартные 25565), чтобы игроки из вне подключались к вашему серверу
17. Если на Linux машине включен firewall ( ufw ), нужно добавить порты в разрешенные
sudo ufw allow 25565
------------ Раздел Моды ------------
18. Зайдем под пользователем mc_server
sudo -u mc_server -s
cd /home/mc_server/minecraft
19. Чтобы установить моды на сервер для начало нужно установить forge с официального сайта ( ссылка ). Выбираем версию как на сервере, лучше выбирать версию stable. Нажимаем Installer, ждем время и копируем ссылку с кнопки skip и скачиваем
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.21.5-55.0.12/forge-1.21.5-55.0.12-installer.jar
20. Устанавливаем forge
java -jar forge-1.21.5-55.0.12-installer.jar --installServer
21. После установки запускаем файл run.sh
sh run.sh
После того как сервер запустится, его нужно остановить командой stop
stop
Появилась новая структура и конкретно папка mods. Можно посмотреть командой
ls
22. Чтобы установить моды нужно перекинуть их в папку mods. Скачать моды можно с сайта ( ссылка ). Можно также скачивать готовые сборки модов, но смотрите чтобы были файлы для сервера, как например в сборке TerraFirmaGreg-Modern ( ссылка )
23. После установки модов запускаем сервер
sh run.sh
Смотрите ошибки, которые могут выходить в консоли и по возможности их исправить. Некоторые моды могут конфликтовать друг с другом!
24. Если сервер запустился, останавливаем его и редактируем файлы run.sh
nano run.sh
Вставляем в файл строки
/usr/bin/screen -dmS mcjava /usr/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.20.1-47.4.0/unix_arg>/usr/bin/screen -rD mcjava -X multiuser on
/usr/bin/screen -rD mcjava -X acladd root
Обратите внимание на версию forge у вас должна быть своя версия!
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
25. Редактируем файлы службы, для этого нужно выйти из пользователя
exit
sudo nano /etc/systemd/system/mc_server.service
Вставляем в файл строки
[Unit]
Description=Minecraft Server
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
User=mc_server
Group=mc_server
WorkingDirectory=/home/mc_server/minecraft/
ExecStart=/usr/bin/bash /home/mc_server/minecraft/run.sh
ExecStop=/usr/bin/bash /home/mc_server/minecraft/stop_server.sh
Restart=always
TimeoutStartSec=600
[Install]
WantedBy=multi-user.target
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
26. Запускаем сервер
sudo systemctl start mc_server
27. Чтобы работать с сервером и вводить команды сервера ( say Привет мир! )
sudo screen -r mc_server/mcjava
Если вы вводите команду из под пользователя mc_server
screen -r mc_server/mcjava
Чтобы свернуть работу с сервером нажмите CTRL + A -> CTRL + D