Как запустить сервер Hytale на Ubuntu?

# [Гайд] Установка и настройка сервера Hytale на Ubuntu 22.04 LTS

Подробное пошаговое руководство по установке, базовой настройке и запуску выделенного сервера (Dedicated Server) Hytale на чистой операционной системе **Ubuntu 22.04 LTS**.

Гайд рассчитан как на владельцев домашних стендов, так и на администраторов арендных VPS/VDS.

---

### Системные требования

* **ОС:** Ubuntu 22.04 LTS (64-bit)
* **Процессор:** 2 ядра (рекомендуется от 4 ядер с высокой частотой на ядро)
* **Оперативная память:** Минимум 4 ГБ (рекомендуется от 8 ГБ для стабильной работы с игроками)
* **Диск:** Минимум 20 ГБ свободного места (желательно NVMe/SSD)
* **Сеть:** Статический публичный IPv4-адрес

---

### Шаг 1. Обновление системы и установка утилит

Подключитесь к вашему серверу по SSH под пользователем `root` или с правами `sudo`. Первым делом обновите пакетную базу и установите базовые вспомогательные утилиты:

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git tar ufw nano screen jq

Шаг 2. Создание изолированного пользователя

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

Создадим отдельного системного пользователя hytale без лишних привилегий:

Bash

sudo adduser --disabled-password --gecos "" hytale

Перейдем в рабочую директорию нового пользователя:

Bash

sudo -i -u hytale
mkdir -p ~/server
cd ~/server

Шаг 3. Установка Java Runtime Environment (JRE)

Серверная часть Hytale построена на платформе Java. Для актуальной стабильной работы рекомендуется использовать OpenJDK 21 (или актуальную LTS-версию, указанную в спецификациях релиза).

Вернитесь в сессию с правами администратора (exit или откройте второй терминал) и установите OpenJDK:

Bash

sudo apt install -y openjdk-21-jre-headless

Проверьте корректность установки:

Bash

java -version

В выводе должна отображаться версия Java (openjdk version "21.x.x").

Шаг 4. Размещение серверных файлов

Переключитесь обратно на пользователя hytale:

Bash

sudo -i -u hytale
cd ~/server

Загрузите архив с серверными бинарниками (замените ссылку на актуальный архив релиза или скопируйте файлы через SFTP/rsync):

Bash

# Пример загрузки архива:
wget [https://example.com/hytale-server-release.tar.gz](https://example.com/hytale-server-release.tar.gz)

# Распаковка:
tar -xvf hytale-server-release.tar.gz
rm hytale-server-release.tar.gz

Убедитесь, что основной исполняемый jar-файл или скрипт запуска имеет права на выполнение:

Bash

chmod +x start.sh

Шаг 5. Настройка скрипта запуска и выделение памяти

Создайте удобный скрипт для запуска с оптимизированными параметрами памяти Java Virtual Machine:

Bash

nano start.sh

Вставьте следующую конфигурацию (для сервера с 8 ГБ RAM рекомендуется выделить под процесс около 6 ГБ, оставив 2 ГБ под саму систему):

Bash

#!/usr/bin/env bash
# Запуск выделенного сервера Hytale

MEM_MIN="4G"
MEM_MAX="6G"
SERVER_JAR="hytale-server.jar"

java -Xms${MEM_MIN} -Xmx${MEM_MAX} \
     -XX:+UseG1GC \
     -XX:+ParallelRefProcEnabled \
     -XX:MaxGCPauseMillis=200 \
     -XX:+UnlockExperimentalVMOptions \
     -XX:+DisableExplicitGC \
     -XX:+AlwaysPreTouch \
     -jar ${SERVER_JAR} nogui

Сохраните файл (Ctrl + O → Enter, Ctrl + X) и сделайте его исполняемым:

Bash

chmod +x start.sh

Шаг 6. Настройка службы systemd (Автозапуск)

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

Выйдите из сессии пользователя hytale:

Bash

exit

Создайте юнит-файл службы:

Bash

sudo nano /etc/systemd/system/hytale.service

Добавьте конфигурацию:

Ini, TOML

[Unit]
Description=Hytale Dedicated Server
After=network.target

[Service]
User=hytale
Group=hytale
WorkingDirectory=/home/hytale/server
ExecStart=/bin/bash /home/hytale/server/start.sh
Restart=on-failure
RestartSec=10s
StandardInput=null

# Ограничения безопасности процесса
ProtectSystem=full
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Перезагрузите демон systemd и активируйте сервис:

Bash

sudo systemctl daemon-reload
sudo systemctl enable hytale.service

Управление сервером через systemd:

  • Запуск: sudo systemctl start hytale

  • Остановка: sudo systemctl stop hytale

  • Перезагрузка: sudo systemctl restart hytale

  • Просмотр статуса: sudo systemctl status hytale

  • Просмотр логов в реальном времени: journalctl -u hytale -f

Шаг 7. Настройка брандмауэра (UFW)

Чтобы внешние игроки могли подключиться к серверу, необходимо открыть порт (по умолчанию для игровых серверов используется протокол UDP и TCP):

Bash

# Разрешаем стандартный SSH (чтобы не потерять доступ)
sudo ufw allow 22/tcp

# Открываем порт игрового сервера (укажите порт из конфигурации сервера, например 25565 или дефолтный порт Hytale)
sudo ufw allow 25565/tcp
sudo ufw allow 25565/udp

# Включаем брандмауэр
sudo ufw enable
sudo ufw status

Шаг 8. Проверка работы

Запустите сервер и проверьте его статус:

Bash

sudo systemctl start hytale
sudo systemctl status hytale

Если статус окрашен в зеленый цвет (active (running)), ваш сервер успешно запущен и ожидает подключений игроков по вашему внешнему IP-адресу.

:speech_balloon: Возникли сложности с запуском или вылезает ошибка в логах?

Оставляйте вывод команды journalctl -u hytale -n 50 в комментариях к этой теме в блоке кода — разберем проблему вместе!

Источник: перевод с английского