Обзор развертывания Rust Server¶
Предварительные требования и базовые условия¶
Перед развертыванием на целевом сервере должны быть выполнены следующие требования:
-
Операционная система: Ubuntu (совместимая с менеджером пакетов
apt). -
Привилегии: Для установки системных пакетов, создания пользователей и управления службами systemd требуются права root или привилегии
sudo. -
Пользовательская учетная запись: Создается выделенный системный пользователь
rustи группаrustдля запуска процессов сервера. -
Сетевые порты: Для обеспечения связности сервера следующие порты должны быть открыты в межсетевом экране (firewall):
-
28015: Игровой трафик (UDP/TCP). -
28016: Трафик RCON (удаленная консоль). -
28017: Трафик запросов (Query).
Структура файлов и каталогов¶
Файлы приложения, конфигурация и данные организованы в домашнем каталоге пользователя rust. Основные расположения:
-
Каталог сервера:
/home/rust/rust -
Содержит бинарный файл
RustDedicated, игровые данные и скрипт запускаrunds.sh. -
Каталог SteamCMD:
/home/rust/steamcmd -
Содержит клиент SteamCMD, используемый для загрузки и обновления файлов сервера.
-
Каталог секретов:
/home/rust/.rust -
Хранит конфиденциальные данные конфигурации, в частности пароль RCON в файле
rcon_password. -
Служба Systemd:
/etc/systemd/system/rust.service -
Определяет юнит службы для управления жизненным циклом сервера.
Процесс установки приложения¶
Выделенный сервер Rust устанавливается с использованием клиента SteamCMD. Процесс включает следующие шаги:
-
Архив
steamcmd_linux.tar.gzзагружается с адресаhttps://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz. -
Архив распаковывается в каталог
/home/rust/steamcmd. -
Файлы сервера загружаются и устанавливаются в
/home/rust/rustпутем выполнения SteamCMD с идентификатором приложения258550. -
Установка включает проверку целостности файлов.
Права доступа и безопасность¶
Безопасность и контроль доступа обеспечиваются через изоляцию пользователей и права на файлы:
-
Сервер работает от имени непривилегированного пользователя
rustи группыrust. -
Пользователь
rustимеет домашний каталог по пути/home/rust. -
Пароль RCON хранится в
/home/rust/.rust/rcon_passwordсо строгими правами доступа (0600) для предотвращения несанкционированного доступа. -
Сам каталог
.rustимеет права доступа0700. -
Основной каталог сервера (
/home/rust/rust) и каталог SteamCMD (/home/rust/steamcmd) имеют права доступа0755.
Контейнеры Docker и их развертывание¶
В данном развертывании контейнеры Docker не используются. Приложение работает как нативная служба systemd, управляемая операционной системой хоста.
Прокси-серверы¶
Данная конфигурация не включает прокси-сервер (такой как Nginx или Traefik) или терминацию SSL. Доступ к серверу осуществляется напрямую через настроенные порты.
Настройки прав доступа¶
Права доступа к файлам и каталогам настроены следующим образом:
-
/home/rust/rust:0755(Владелец:rust, Группа:rust). -
/home/rust/steamcmd:0755(Владелец:rust, Группа:rust). -
/home/rust/.rust:0700(Владелец:rust, Группа:rust). -
/home/rust/.rust/rcon_password:0600(Владелец:rust, Группа:rust). -
/home/rust/rust/runds.sh:0755(Владелец:rust, Группа:rust). -
/etc/systemd/system/rust.service:0644(Владелец:root, Группа:root).
Расположение файлов конфигурации и данных¶
Конфигурация в основном осуществляется через аргументы командной строки, передаваемые бинарному файлу RustDedicated через скрипт runds.sh. Ключевые расположения включают:
-
Скрипт запуска:
/home/rust/rust/runds.sh -
Содержит параметры идентификации сервера, порты, настройки карты и учетные данные RCON.
-
Пароль RCON:
/home/rust/.rust/rcon_password -
Алфавитно-цифровая строка длиной 32 символа, используемая для удаленного администрирования.
-
Файл журнала:
/home/rust/rust/rustserver.log -
Хранит логи выполнения сервера.
Доступные порты для подключения¶
Сервер слушает следующие порты:
-
28015: Основной игровой порт.
-
28016: Порт RCON.
-
28017: Порт запросов (Query).
Запуск, остановка и обновление¶
Сервер Rust управляется как служба systemd с именем rust. Используйте следующие команды для управления службой:
-
Запуск службы:
-
Остановка службы:
-
Перезапуск службы:
-
Проверка статуса службы:
-
Включение автоматического запуска при загрузке:
Служба настроена на автоматический перезапуск в случае сбоя (Restart=always) с задержкой в 10 секунд (RestartSec=10).