Обзор развертывания Rust Server на сервере¶
Предварительные требования¶
Для корректной работы сервера должны быть соблюдены следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: Необходим доступ с правами
sudoдля установки системных пакетов и настройки сервисов. -
Зависимости: Система должна иметь возможность загрузки файлов из интернета (для SteamCMD).
-
Порты: Для работы сервера должны быть открыты следующие порты:
| Порт | Назначение |
|---|---|
28015 | Основной игровой порт |
28016 | RCON порт (удаленное управление) |
28017 | Query порт (запросы информации о сервере) |
Структура файлов и каталогов¶
Все основные данные приложения сосредоточены в домашнем каталоге пользователя rust.
-
/home/rust/rust— основной каталог игрового сервера. -
/home/rust/steamcmd— каталог установщика SteamCMD. -
/home/rust/.rust/rcon_password— файл с паролем для удаленного управления (RCON).
Процесс установки приложения¶
Установка выполняется путем подготовки окружения и использования официального загрузчика SteamCMD.
-
Подготовка системы: Устанавливается библиотека
libc6-i386, необходимая для работы игровых компонентов. -
Создание пользователя: В системе создается выделенный пользователь
rustи группаrust. -
Установка SteamCMD:
-
Создается каталог
/home/rust/steamcmd. -
Загружается официальный архив SteamCMD.
-
Архив распаковывается, а скрипту
steamcmd.shпредоставляются права на выполнение. -
Загрузка игровых файлов: С помощью команды
steamcmd.shвыполняется загрузка и проверка целостности файлов приложения Rust (AppID:258550) в директорию/home/rust/rust. -
Настройка безопасности: Если пароль для RCON еще не создан, генерируется случайный пароль длиной 32 символа и сохраняется в защищенном файле
.rust/rcon_passwordс правами доступа0600. -
Создание запускающего скрипта: В директории сервера создается исполняемый файл
runds.sh, который настраивает переменные окружения (включая пути к плагинам) и параметры запуска игры. -
Регистрация сервиса: Настройка системного юнита
systemdдля обеспечения автоматического запуска сервера при загрузке системы.
Права доступа и безопасность¶
-
Для работы игровых компонентов используется отдельный пользователь
rust. -
Директория с паролем RCON имеет ограниченный доступ (
0600), разрешенный только владельцу. -
Сервер настроен на автоматический перезапуск в случае аварийного завершения процесса.
-
Установлено ограничение на количество открытых файлов (
LimitNOFILE=65535) для обеспечения стабильной работы сетевых соединений.
Базы данных¶
В данной конфигурации база данных не используется; все данные игрового мира и настройки хранятся в файловой системе сервера.
Контейнеры Docker и их запуск¶
Приложение развертывается непосредственно на хостовой операционной системе (bare metal) без использования контейнеров Docker.
Кастомные скрипты и дополнительные настройки¶
Для управления процессом запуска используется исполняемый файл runds.sh, расположенный в /home/rust/rust/.
Назначение скрипта:
-
Установка переменной окружения
LD_LIBRARY_PATHдля корректного поиска библиотек плагинов в папкахRustDedicated_Data/PluginsиRustDedicated_Data/Plugins/x86_64. -
Запуск процесса
RustDedicatedс передачей параметров конфигурации: -
Режим работы:
-batchmode -nographics. -
Идентификация сервера: используется имя хоста системы.
-
Параметры карты: процедурная карта, размер мира
4500, сид1337. -
Ограничения: максимум 50 игроков.
-
Настройка RCON: привязка к интерфейсу
0.0.0.0и использование сгенерированного пароля.
Инструкция по обновлению приложения¶
Для обновления игровых файлов используется стандартный механизм SteamCMD. Необходимо выполнить команду через пользователя rust:
/home/rust/steamcmd/steamcmd.sh +force_install_dir /home/rust/rust +login anonymous +app_update 258550 validate +quit
После завершения обновления необходимо перезапустить сервис:
Расположение конфигурационных файлов и данных¶
-
Запускной скрипт:
/home/rust/rust/runds.sh -
Лог-файл сервера:
/home/rust/rust/rustserver.log -
Системный юнит:
/etc/systemd/system/rust.service
Доступные порты для подключения¶
| Порт | Тип соединения |
|---|---|
28015 | Игровой трафик (UDP) |
28016 | RCON (TCP) |
28017 | Query (UDP) |
Запуск, остановка приложения¶
Управление сервером осуществляется через системный менеджер systemctl:
-
Запуск сервера:
sudo systemctl start rust -
Остановка сервера:
sudo systemctl stop rust -
Перезагрузка сервера:
sudo systemctl restart rust -
Проверка статуса:
sudo systemctl status rust