###################################################################################### # # Сервер Minecraft # ###################################################################################### Подготовка для Minecraft Пользователь, которым вы вошли, должен иметь права root/sudo для установки пакетов. - Установим пакеты, необходимые для сборки инструмента mcrcon: apt update apt install git build-essential - Установка Java Minecraft 1.19.4 требует Java 18 или выше. Поскольку Minecraft Server не нуждается в графическом пользовательском интерфейсе, мы установим без-заголовочную версию JRE. Эта версия больше подходит для серверных приложений, поскольку имеет меньше зависимостей и использует меньше системных ресурсов. apt update apt search jre apt install openjdk-25-jre-headless - Проверьте установку, напечатав версию Java: java -version openjdk version "25.0.2" 2026-01-20 OpenJDK Runtime Environment (build 25.0.2+10-Ubuntu-124.04) OpenJDK 64-Bit Server VM (build 25.0.2+10-Ubuntu-124.04, mixed mode, sharing) - Создание пользователя Minecraft В целях безопасности Minecraft не должен запускаться под пользователем root. Мы создадим нового пользователя системы и группу с домашним каталогом, /opt/minecraft который будет запускать сервер Minecraft. Мы не собираемся устанавливать пароль для этого пользователя. Это для безопасности, этот пользователь не сможет войти через SSH. Чтобы сменить пользователя minecraft, необходимо войти на сервер как пользователь root или с правами sudo. useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft - Установка Minecraft на Ubuntu Перед началом процесса установки обязательно переключитесь на пользователя minecraft. sudo su - minecraft Создаем три новых каталога в домашней папке пользователя: mkdir -p ~/{backups,tools,server} В каталоге backups будет храниться резервная вашего сервера. Позже вы сможете синхронизировать этот каталог с вашим удаленным сервером резервного копирования. В каталоге tools будут храниться клиент mcrcon и скрипт резервного копирования. Каталог server будет содержать фактический сервер Minecraft и его данные. - Загрузка и компиляция mcrcon RCON – это протокол, который позволяет вам подключаться к серверам Minecraft и выполнять команды. mcrсon – это клиент RCON. Загрузим исходный код с 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] Send rcon commands to Minecraft server. Options: -H Server address (default: localhost) -P Port (default: 25575) -p Rcon password -t Terminal mode -s Silent mode -c Disable colors -r Output raw packets -w Wait for specified duration (seconds) between each command (1 - 600s) -h Print usage -v Version information Server address, port and password can be set with following environment variables: MCRCON_HOST MCRCON_PORT MCRCON_PASS - mcrcon will start in terminal mode if no commands are given - Command-line options will override environment variables - Rcon commands with spaces must be enclosed in quotes Example: mcrcon -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop - Загрузка Сервера Майнкрафт Существует несколько серверных модов Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на сервер и настраивать параметры. В этой статье мы установим последний сервер Minecraft от Fabric. На момент написания, последняя версия Minecraft 1.19.4, Fabric loader 0.14.19, Fabric launcher.0.11.2 Идем на https://fabricmc.ru/use?page=server Используем команду со страницы cd ~/server wget -O fabric-installer-1.1.1.jar https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.1.1/fabric-installer-1.1.1.jar После чего запускаем файл java -jar fabric-installer-1.1.1.jar server -downloadMinecraft В процессе он сам распакует все что нужно, скачает и установит нужную версию оригинального Minecraft сервера. Loading Fabric Installer: 1.1.1 Installing Fabric Loader 0.18.5(26.1) on the server Downloading required files Downloading library org.ow2.asm:asm:9.9 Downloading library org.ow2.asm:asm-analysis:9.9 Downloading library org.ow2.asm:asm-commons:9.9 Downloading library org.ow2.asm:asm-tree:9.9 Downloading library org.ow2.asm:asm-util:9.9 Downloading library net.fabricmc:sponge-mixin:0.17.0+mixin.0.8.7 Downloading library net.fabricmc:fabric-loader:0.18.5 Generating server launch JAR Downloading Minecraft server Done Done, start server by running fabric-server-launch.jar После окончания загрузки ванильного сервера при установке попытаемся запустить запустить. java -jar fabric-server-launch.jar После чего получаем ошибку: Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture [10:06:37] [main/INFO]: Loading Minecraft 26.1 with Fabric Loader 0.18.5 [10:06:37] [main/INFO]: Mappings not present! [10:06:37] [main/INFO]: Loading 4 mods: - fabricloader 0.18.5 \-- mixinextras 0.5.3 - java 25 - minecraft 26.1 [10:06:37] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=file:/opt/minecraft/server/libraries/net/fabricmc/sponge-mixin/0.17.0+mixin.0.8.7/sponge-mixin-0.17.0+mixin.0.8.7.jar Service=Knot/Fabric Env=SERVER WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/opt/minecraft/server/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/opt/minecraft/server/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar) WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release [10:06:49] [main/ERROR]: Failed to load properties from file: server.properties java.nio.file.NoSuchFileException: server.properties at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:213) at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:244) at java.base/java.nio.file.Files.newByteChannel(Files.java:357) at java.base/java.nio.file.Files.newByteChannel(Files.java:399) at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:371) at java.base/java.nio.file.Files.newInputStream(Files.java:154) at knot//net.minecraft.server.dedicated.Settings.loadFromFile(Settings.java:62) at knot//net.minecraft.server.dedicated.DedicatedServerProperties.fromFile(DedicatedServerProperties.java:154) at knot//net.minecraft.server.dedicated.DedicatedServerSettings.(DedicatedServerSettings.java:12) at knot//net.minecraft.server.Main.main(Main.java:114) at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:514) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72) at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) [10:06:49] [main/WARN]: Failed to load eula.txt [10:06:49] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info. При запуске сервера в первый раз, он создает файлы server.properties и eula.txt и останавливается. Как видно из приведенного выше вывода, нам нужно согласиться с лицензионным соглашением Minecraft. Откройте файл eula.txt и измените eula=false на eula=true Далее нам нужно отредактировать файл server.properties, чтобы настроить сервер под себя. Например включить протокол rcon и установить пароль для подключения к серверу с помощью инструмента mcrcon. Мой файл настроек прилагается к тексту. - Создание файла Systemd Unit Чтобы запускать Minecraft как сервис, создаем файл Systemd. Идем обратно к своему пользователю root, набрав exit. Создаем файл /usr/lib/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 -Xmx2G -Xms512M -Xmn256M -jar fabric-server-launch.jar ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 176.101.96.140 -P 25575 -p 4u4undra stop [Install] WantedBy=multi-user.target Проверить IP-адрес на котором висит сервер!!! Проверить имя файла для запуска сервера!! Изменить флаги Xmx и Xms в соответствии с серверными ресурсами. Флаг Xmx определяет максимальный пул выделения памяти для виртуальной машины Java (JVM), в то время как Xms определяет начальный пул распределения памяти. Также убедиться, что используем правильный порт rcon и пароль. После чего сообщить systemd, что мы создали новый файл модуля: systemctl daemon-reload Теперь запускаем сервер Minecraft, выполнив: systemctl start minecraft В первый раз, когда мы запустим сервер, он генерирует несколько конфигурационных файлов и каталогов, включая мир Minecraft. Минут через 5-10 в зависимости от ресурсов машины, генерация мира закончится. Проверить статус сервиса можно с помощью команды: systemctl status minecraft ● minecraft.service - Minecraft Server Loaded: loaded (/usr/lib/systemd/system/minecraft.service; disabled; preset: enabled) Active: active (running) since Mon 2026-03-30 14:55:59 MSK; 55s ago Main PID: 9169 (java) Tasks: 39 (limit: 9426) Memory: 668.1M (peak: 668.6M) CPU: 1min 20.719s CGroup: /system.slice/minecraft.service └─9169 /usr/bin/java -Xmx3G -Xms512M -Xmn256M -jar fabric-server-launch.jar Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: Starting remote control listener Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: Thread RCON Listener started Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: RCON running on 176.101.96.118:25575 Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: Saving chunks for level 'ServerLevel[Nice World]'/minecraft:overworld Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: Saving chunks for level 'ServerLevel[Nice World]'/minecraft:the_end Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: Saving chunks for level 'ServerLevel[Nice World]'/minecraft:the_nether Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved Mar 30 14:56:24 minecraft java[9169]: [14:56:24] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved Если ошибок нет, включаем сервис Minecraft для автоматического запуска во время загрузки: systemctl enable minecraft - Настройка брандмауэра Используем стандартный NFTables Файл /etc/nftables.conf прилагается Обязательно проверить все названия интерфейсов и адреса, особенно собственный адрес сервера. В моем случае виртуалки название интерфейса должно быть "v200" и адрес сервера 176.101.96.140 - Настройка резервных копий Создадим сценарий резервного копирования и задание cron для автоматического резервного копирования сервера Minecraft. Переключаемся обратно на пользователя minecraft: sudo su - minecraft Создадим файл /opt/minecraft/tools/backup.sh Файл прилагается Создадим файл /opt/minecraft/tools/terminal.sh Этот файл будет служить просто для входа в RCON-терминал сервера и последующего исполнения консольных команд. Обязательно правильно вбить IP-адрес, на котором висит сервер. Делаем файлы исполняемыми: chmod +x /opt/minecraft/tools/backup.sh chmod +x /opt/minecraft/tools/terminal.sh Открываем файл /etc/crontab и добавляем в конец задание cron, которое будет запускаться каждый день в 23:00. # # Minecraft server Backup 0 23 * * * minecraft /opt/minecraft/tools/backup.sh - Доступ к консоли Minecraft Для доступа к Minecraft Console нужно использовать утилиту mcrcon. Синтаксис следующий: нужно указать хост, порт rcon, пароль rcon и использовать переключатель -t, который включает режим терминала mcrcon: /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 23888 -p strong-password -t Или использовать созданный только что выше файл terminal.sh с этой командой. Если хочется картинку сервера нестандартную - по образцу вложенного файла server-icon.png 64x64 72px/in. Поддерживается и прозрачность. Из Фотошопа сохранять через "Экспорт в PNG", а не через "Сохранить как". - Установим NGINX для хранения модов, ресурспаков и пр. apt install nginx Сразу он не запустится - выдаст ошибку. Редактируем файл /etc/nginx/nginx.conf - просто заменяем на файл из комплекта. Аналогично копируем соответствующий файл (minecraft.netlux.org) в папку /etc/nginx/sites-avaliable/ После этого создаем символическую ссылку на этот файл в папке /etc/nginx/sites-enable/ Удалить из этой же папки символическую ссылку @default Создать папку /var/www/minecraft.netlux.org и поменять ей владельца на www-data chown -R www-data:www-data /var/www/minecraft.netlux.org Еще можно из приложенного файла скопировать favicon.ico (с такой же заменой владельца файла!!!) Перезагружаем сервис systemctl restart nginx Может понадобиться создать папку /var/log/nginx/minecraft.netlux.org Накатывать серверные моды на сервер: Под пользователем minecraft - копируются в папку /opt/minecraft/server/mods systemctl stop minecraft Дождаться пока остановится (systemctl status minecraft) systemctl start minecraft И смотреть в папке /opt/minecraft/server/logs почему не загружается и в каком файле ошибка. Или наблюдать как запускается. ###################################################################################### # # Сервер HyTale # ###################################################################################### Пользователь, которым вы вошли, уже имеет права root/sudo для установки пакетов. - Установим пакеты, необходимые для сборки инструмента mcrcon: # apt update # apt install git build-essential Установка Java. HyTale требует Java 21 или выше. Поскольку сервер не нуждается в графическом пользовательском интерфейсе, мы установим без-заголовочную версию JRE. Эта версия больше подходит для серверных приложений, поскольку имеет меньше зависимостей и использует меньше системных ресурсов. # apt update # apt search jre Устанавливаем последнюю версию. # apt install openjdk-25-jre-headless Проверьте установку, испросив версию Java: # java -version openjdk version "25.0.1" 2025-10-21 OpenJDK Runtime Environment (build 25.0.1+8-Ubuntu-124.04) OpenJDK 64-Bit Server VM (build 25.0.1+8-Ubuntu-124.04, mixed mode, sharing) Для сервера HyTale есть варианты, например рекомендуется установить Adoptium JDK https://adoptium.net/installation/linux # apt install wget apt-transport-https gpg # wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null # echo "deb [arch=amd64] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list # apt update # apt install temurin-25-jdk Иногда из-за санкций пакет может не скачиваться. Тогда лезем и пытаемся найти и скачать напрямую! https://packages.adoptium.net/ui/native/deb/dists/ Скачиваем оттуда вручную deb-пакет и устанавливаем. # apt install ./temurin-25-jdk_25.0.1.0.0+8-0_amd64.deb Зависимости установятся сами. Проверьте установку, испросив версию Java: # java -version openjdk version "25.0.1" 2025-10-21 LTS OpenJDK Runtime Environment Temurin-25.0.1+8 (build 25.0.1+8-LTS) OpenJDK 64-Bit Server VM Temurin-25.0.1+8 (build 25.0.1+8-LTS, mixed mode, sharing) Создание пользователя HyTale. В целях безопасности HyTale не должен запускаться под пользователем root. Мы создадим нового пользователя системы и группу с домашним каталогом, /opt/hytale который будет запускать сервер HyTale. Мы не собираемся устанавливать пароль для этого пользователя. Это для безопасности, этот пользователь не сможет войти через SSH. Чтобы сменить пользователя на hytale, необходимо войти на сервер как пользователь root или с правами sudo. # useradd -r -m -U -d /opt/hytale -s /bin/bash hytale Установка HyTale на Ubuntu. Перед началом процесса установки обязательно переключитесь на пользователя hytale. # sudo su - hytale Создаем три новых каталога в домашней папке пользователя: mkdir -p ~/{backups,tools,server,downloads} В каталоге backups будет храниться резервная вашего сервера. Позже вы сможете синхронизировать этот каталог с вашим удаленным сервером резервного копирования. В каталоге tools будут храниться клиент RCON и скрипт резервного копирования. Каталог server будет содержать фактический сервер HyTale и его данные. Загрузка Сервера HyTale. https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual Hytale Downloader CLI - Best for: Production servers. Easy to keep updated. A command-line tool to download Hytale server and asset files with OAuth2 authentication. See QUICKSTART.md inside the archive. Перейти в "~/downloads" $ wget https://downloader.hytale.com/hytale-downloader.zip Распаковать в ту же папку. Переименовать "./hytale-downloader-linux-amd64" в "./hytale-downloader". Им и будем пользоваться! $ ./hytale-downloader -check-update hytale-downloader is up to date (2026.01.09-49e5904) Скачиваем сервер. $ ./hytale-downloader Авторизуем свой сервер на свою учётку HyTale. Скачивание и проверка пройдут автоматически. Распаковываем Assets.zip и содержимое папки Server в архиве в папку "~/server/" https://support.hytale.com/hc/en-us/articles/45326769420827-Hytale-Server-Manual https://hytale.ru/articles/zapusk-svoego-servera-dlya-igry-s-rusifikatorom?ysclid=mkp30dw95r659755650