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

Обзор развертывания 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. Процесс включает следующие шаги:

  1. Архив steamcmd_linux.tar.gz загружается с адреса https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz.

  2. Архив распаковывается в каталог /home/rust/steamcmd.

  3. Файлы сервера загружаются и устанавливаются в /home/rust/rust путем выполнения SteamCMD с идентификатором приложения 258550.

  4. Установка включает проверку целостности файлов.

Права доступа и безопасность

Безопасность и контроль доступа обеспечиваются через изоляцию пользователей и права на файлы:

  • Сервер работает от имени непривилегированного пользователя 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. Используйте следующие команды для управления службой:

  • Запуск службы:

    sudo systemctl start rust
    

  • Остановка службы:

    sudo systemctl stop rust
    

  • Перезапуск службы:

    sudo systemctl restart rust
    

  • Проверка статуса службы:

    sudo systemctl status rust
    

  • Включение автоматического запуска при загрузке:

    sudo systemctl enable rust
    

Служба настроена на автоматический перезапуск в случае сбоя (Restart=always) с задержкой в 10 секунд (RestartSec=10).

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