Перейти к содержанию

Обзор развертывания 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.

  1. Подготовка системы: Устанавливается библиотека libc6-i386, необходимая для работы игровых компонентов.

  2. Создание пользователя: В системе создается выделенный пользователь rust и группа rust.

  3. Установка SteamCMD:

  4. Создается каталог /home/rust/steamcmd.

  5. Загружается официальный архив SteamCMD.

  6. Архив распаковывается, а скрипту steamcmd.sh предоставляются права на выполнение.

  7. Загрузка игровых файлов: С помощью команды steamcmd.sh выполняется загрузка и проверка целостности файлов приложения Rust (AppID: 258550) в директорию /home/rust/rust.

  8. Настройка безопасности: Если пароль для RCON еще не создан, генерируется случайный пароль длиной 32 символа и сохраняется в защищенном файле .rust/rcon_password с правами доступа 0600.

  9. Создание запускающего скрипта: В директории сервера создается исполняемый файл runds.sh, который настраивает переменные окружения (включая пути к плагинам) и параметры запуска игры.

  10. Регистрация сервиса: Настройка системного юнита 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

После завершения обновления необходимо перезапустить сервис:

sudo systemctl restart rust

Расположение конфигурационных файлов и данных

  • Запускной скрипт: /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

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×