Raspberry Pi можно использовать в самых разных проектах. Одним из самых популярных вариантов использования Raspberry Pi является превращение Raspberry Pi в игровой сервер.
В этой статье мы познакомим вас с процессом установки и настройки сервера Minecraft на Raspberry Pi 3 или 4.
Minecraft – одна из самых популярных игр всех времен. Это видеоигра с песочницей, которая позволяет игрокам исследовать бесконечные миры и строить все, от простых домов до массивных небоскребов.
Мы предполагаем, что на вашем Raspberry Pi установлен Raspbian. Plex Media Server не нужен графический интерфейс, поэтому мы рекомендуем использовать образ Raspbian Stretch Lite и включить SSH. Таким образом, ваш Raspberry Pi будет иметь гораздо больше доступной вычислительной мощности и памяти для запуска медиа-сервера Plex.
Мы будем использовать утилиту mcrcon для подключения к серверу Minecraft. Установите пакеты, необходимые для сборки инструмента mcrcon:
sudo apt update sudo apt install git build-essential
Включите драйвер GL с помощью инструмента raspi-config:
raspi-config
Как только Pi вернется в сеть, перейдите к следующим шагам.
Minecraft требует Java 8 или выше для установки в системе.
Мы установим безголовую версию JRE. Эта версия больше подходит для серверных приложений, поскольку имеет меньше зависимостей и использует меньше системных ресурсов.
Чтобы установить безголовый тип OpenJRE 8:
sudo apt install openjdk-8-jre-headless
Проверьте установку, напечатав версию Java:
java -version
openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1+rpi1-b01) OpenJDK Client VM (build 25.212-b01, mixed mode)
В целях безопасности Minecraft не должен запускаться под пользователем root. Мы создадим нового пользователя системы и группу с домашним каталогом /opt/minecraft, который запустит сервер Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
Мы не собираемся устанавливать пароль для этого пользователя. Это хорошая практика безопасности, потому что пользователь не сможет войти через SSH.
Перед началом процесса установки убедитесь, что вы переключаетесь на пользователя «minecraft»:
sudo su - minecraft
Создайте две директории внутри домашней директории пользователя:
mkdir -p ~/{tools,server}
RCON – это протокол, который позволяет подключаться к серверам Minecraft и выполнять команды. mcron – это клиент RCON, встроенный в C.
Мы загрузим исходный код с GitHub и соберем двоичный файл mcrcon.
Перейдите в каталог ~/tools и клонируйте репозиторий Tiiffi/mcrcon из GitHub, выполнив следующую команду:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
Далее перейдите в каталог репозитория:
cd ~/tools/mcrcon
Начните компиляцию, набрав:
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
После завершения вы можете проверить это, набрав:
./mcrcon -h
Вывод будет выглядеть примерно так:
Usage: mcrcon [OPTIONS]... [COMMANDS]... Sends rcon commands to Minecraft server. ... mcrcon 0.6.1 (built: Sep 19 2019 20:52:13) Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/
Существует несколько серверных модов Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на ваш сервер и дополнительно настраивать и настраивать параметры. Мы установим последний официальный сервер Minecraft от Mojang.
Зайдем на страницу загрузки Minecraft , чтобы получить ссылку на загрузку из Java файла архива самые последние Minecraft сервера (JAR).
На момент написания, последняя версия 1.14.4. Перед выполнением следующей команды вы должны проверить страницу загрузки на наличие новой версии.
Выполните следующую команду wget, чтобы загрузить файл jar Minecraft в каталоге ~/server:
wget https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar -P ~/server
После завершения загрузки перейдите в каталог ~/server и запустите сервер Minecraft:
cd ~/server java -Xms512M -Xmx768M -jar server.jar nogui
При запуске в первый раз, сервер выполняет некоторые операции и создает файлы server.properties и eula.txt.
[21:06:23] [main/ERROR]: Failed to load properties from file: server.properties [21:06:24] [main/WARN]: Failed to load eula.txt [21:06:24] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Для запуска сервера вам необходимо согласиться с лицензионным соглашением Minecraft. Откройте файл eula.txt и измените eula=false на eula=true:
nano ~/server/eula.txt
~ /server/ Eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Thu Sep 19 21:06:24 BST 2019 eula=true
Закройте и сохраните файл.
Затем отредактируйте файл server.properties, чтобы включить протокол rcon, и установите пароль rcon. Откройте файл с помощью вашего текстового редактора:
nano ~/server/server.properties
Найдите следующие строки и обновите их значения, как показано ниже:
~ / сервер / server.properties
rcon.port=25575 rcon.password=strong-password enable-rcon=true
Не забудьте поменять пароль strong-password на более безопасный. Если вы не хотите подключаться к серверу Minecraft из удаленных мест, убедитесь, что ваш брандмауэр блокирует порт rcon.
Здесь вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о доступных настройках, посетите страницу server.properties.
Чтобы запустить Minecraft как сервис, мы создадим новый файл модуля Systemd.
Вернитесь к своему пользователю sudo, набрав exit.
Откройте ваш текстовый редактор и создайте файл с именем minecraft.service в /etc/systemd/system/:
sudo nano /etc/systemd/system/minecraft.service
Вставьте следующую конфигурацию:
/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 -Xmx768M -Xms512M -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 в соответствии с вашей версией Raspberry Pi и ресурсами. Флаг Xmx определяет максимальный пул выделения памяти для виртуальной машины Java (JVM), в то время как Xms определяет начальный пул распределения памяти. Также убедитесь, что вы используете правильный rcon порт и пароль.
Сохраните и закройте файл и перезагрузите конфигурацию systemd:
sudo systemctl daemon-reload
Запустите сервер Minecraft, выполнив:
sudo systemctl start minecraft
Проверьте статус службы с помощью следующей команды:
sudo systemctl status minecraft
● minecraft.service - Minecraft Server Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-09-20 14:32:12 BST; 2min 33s ago Main PID: 1342 (java) Tasks: 17 (limit: 1604) Memory: 338.9M CGroup: /system.slice/minecraft.service └─1342 /usr/bin/java -Xmx768M -Xms512M -jar server.jar nogui
При первом запуске сервиса он сгенерирует несколько файлов конфигурации и каталогов, включая мир Minecraft. Используйте команду tail для мониторинга файла журнала сервера:
tail -f /opt/minecraft/server/logs/latest.log
После запуска сервера Minecraft вывод будет выглядеть примерно так:
[14:34:22] [Server-Worker-3/INFO]: Preparing spawn area: 98% [14:34:22] [Server thread/INFO]: Time elapsed: 201586 ms [14:34:22] [Server thread/INFO]: Done (418.339s)! For help, type "help" [14:34:22] [Server thread/INFO]: Starting remote control listener [14:34:22] [RCON Listener #1/INFO]: RCON running on 0.0.0.0:25575
Включите сервис Minecraft для автоматического запуска во время загрузки:
sudo systemctl enable minecraft
Для доступа к Minecraft Console используйте утилиту mcrcon. Вам нужно указать хост, порт rcon, пароль rcon и использовать переключатель -t, который включает 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 на Raspberry Pi. Обратите внимание, что Minecraft может работать некорректно в системах с ограниченными ресурсами.
Если вы столкнулись с проблемой или у вас есть отзыв, оставьте комментарий ниже.
После того как все прочитал. Почему то закрались сомнения, стоит ли даже пробовать…..
после команды sudo nano /etc/systemd/system/minecraft.service стал требовать какой то [sudo] пароль для minecraft , а я его не знаю и даже не вводил
после команды sudo nano /etc/systemd/system/minecraft.service консоль требует какой то пароль minecraft, который я не знаю, и вроде даже не вводил, из за этого я не могу запустить сервер (
может кто то знает?
Это пароль суперпользователя, по стандарту паполь – raspberry
Не получается подключиться к серверу по локальной сети, в консоли Малина пишет Rcon connection from: *ip адрес компьютера*, но сам компьютер пишет что не удалось подключиться к серверу
Также не понял выходит ли такой сервер в онлайн для игры по сети и если да, то как
Получилось решить проблему?
после команды cd ~/serverjava -Xms512M -Xmx768M -jar server.jar пишет что слишком много аргументов
исправил
нагрузка 99% на все 4 ядра, даже без игроков на сервере. два вопроса:
автор вообще сам пользовался тем что написал?
как долго малина проработает под такой нагрузкой перед тем как сгорит?
“Xms определяет начальный пул распределения памяти”- может я не понимаю но зачем вообще эта функция? Её можно указать в 0 мб?
Это есть немного только при запуске сервера но точно не 99%, во время игры у меня малинка нагружаеться не больше 20%-30% (когда я активно бегаю и ставлю блоки), а вобщем у меня 5% нагрузки (я бы вставил скрин htop но нельзя).