Создаем сервер V Rising на CentOS - Geek-Speak

Создаем сервер V Rising на CentOS

Главная Форумы JUST FOR FUN Create gaming servers Создаем сервер V Rising на CentOS

Помечено: , , , ,

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #2278
    E-tec
    Хранитель

      Обращайте внимание на знаки $, #, >, они не являются частью команд, но показывают от какого пользователя или в каком приложении они вводятся, это важно. Разворачивать сервер будем на CentOS 8 Stream, потому что по какой-то причине на текущий день (30.12.22) ни в одном репозитории Centos 9 Stream нет wine.

      Да, да, по сути будет использоваться “костыль” в виде wine, потому что билда сервера под linux по сути не существует))) Устанавливаем ос на свой вкус в плане первоначального выбора пакетов, я выполнил минимальную установку без выбора дополнительных приложений, что понадобиться установим позднее… При первоначальной настройке пользователей можно сразу создать пользователя steam (к примеру) и не выставлять ему права администратора, нужно для большей безопасности.

      После полной установки ОС логинимся под root пользователем. Как я и говорил ранее по сути у V Rising нет сборки сервера под линукс по этому мы будем запускать виндовые библиотеки под wine и xvfb. Wine используется для запуска исполняемых файлов Windows в LInux, и мы будем использовать xvfb для создания виртуального монитора, поэтому нам не нужно подключать настоящий монитор к серверу.

      Нам также разумеется понадобиться steamcmd для загрузки и обновления файлов сервера.

      Для начала установим необходимые библиотеки и утилиты для работы steamcmd а так же что пригодиться для дальнейшей установки и настройки:
      # yum install glibc.i686 libstdc++.i686 tar wget nano mc net-tools -y

      Самый простой способ установить цшту — использовать репозиторий EPEL, поэтому добавляем его следующим образом:
      # yum install epel-release -y

      После чего устанавливаем wine и xvfb:
      # yum install wine xorg-x11-server-Xvfb -y

      Т.к. я устанавливал минимальный сервер, для установки xvfb мне понадобился sdl2.0 но о оф. репозиториях его не оказалось, по этому идем на сайт и в ручную его скачиваем и устанавливаем:

      # wget https://centos.pkgs.org/8/centos-powertools-aarch64/SDL2-2.0.10-2.el8.aarch64.rpm
      # yum localinstall SDL2-2.0.10-2.el8.aarch64.rpm -y

      Установка SteamCMD

      После чего можно перейти к установке steamcmd. Если вы создали нового пользователя в самом начале установки ОС то ни чего делать не нужно, если не создавали, нужно создать через useradd. И так у меня есть пользователь steam НЕ являющийся администратором ОС. Переходим в этого пользователя и создаем папки для steamsmd в домашнем каталоге:
      # su steam
      $ cd
      $ mkdir steamcmd
      $ cd steamcmd
      $ mkdir VRising`

      Теперь скачиваем и извлекаем steamcmd:
      $ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

      Установка игрового сервера V Rising

      Запускаем steamcmd с помощью скрипта, извлеченного на предыдущем шаге:
      $ ./steamcmd.sh

      Первый запуск steamcmd займет некоторое время и загрузит обновления. После завершения обновления мы можем использовать steamcmd. Для начала указываем ранее созданный каталог в качестве каталога установки для игры:
      > force_install_dir VRising

      Прежде чем мы загрузим файлы сервера, нам нужно войти в Steam, но я советую использовать анонимный вход просто чтоб не заморачиваться со steam guard:
      > login anonymous

      Идентификатор приложения для сервера V Rising — 1829350, поэтому мы можем установить сервер следующим образом:
      > app_update 1829350

      После установки сервера и верификации файлов можно выходить из steamcmd:
      > quit

      Запуск и настройка игрового сервера

      Переходим в каталог, куда мы установили сервер:
      $ cd VRising

      Затем запустите сервер следующим образом:

      $ export WINEARCH=win64
      $ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine VRisingServer.exe -persistentDataPath ./save-data -logFile server.log

      Эта команда запустит сервер и создаст каталог для сохранения данных игры.

      Подождите немного, а затем закройте сервер, нажав Ctrl-C.

      Настройка сервера V Rising

      Создайте папку Settings внутри каталога save-data:
      $ mkdir save-data/Settings

      Теперь скопируем настройки по умолчанию в этот новый каталог:
      $ cp VRisingServer_Data/StreamingAssets/Settings/*.json save-data/Settings

      Папка настроек теперь содержит два файла конфигурации: ServerHostSettings.json для конфигурации хоста, такой как имя сервера, пароль, порты и т.д., и ServerGametSettings.json для игровых настроек, таких как скорость создания, множители урона и т.д.

      Вы можете использовать предпочитаемый текстовый редактор для редактирования настроек в этих файлах.

      Использование Systemd для управления сервером

      Теперь мы можем использовать команду, которую мы использовали ранее, для запуска сервера, но это потребует от нас всегда держать терминал, который мы используем, открытым, чтобы поддерживать работу сервера. Вместо этого мы настроим systemd для настройки сервера как службы, работающей в фоновом режиме.

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

      #!/bin/bash
      export WINEARCH=win64
      /usr/bin/xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' /usr/bin/wine VRisingServer.exe -persistentDataPath save-data/ -logFile server.log

      Сохраните файл как run_server.sh в каталоге игрового сервера. Сделайте файл исполняемым с помощью этой команды:
      $ chmod ug+x run_server.sh

      Это все, что нам нужно сделать как пользователю Steam. Теперь мы можем вернуться к пользователю с привилегиями root, используя:
      $ su -
      или
      $ exit

      Создайте новый файл для службы systemd со следующим содержимым:

      [Unit]
      After=network.target
      
      [Service]
      User=steam
      Group=steam
      WorkingDirectory=/home/steam/steamcmd/VRising
      ExecStart=/home/steam/steamcmd/VRising/run_server.sh
      
      [Install]
      WantedBy=multi-user.target

      И сохраните файл как:
      /etc/systemd/system/VRising.service

      Теперь мы можем использовать systemctl для запуска и остановки сервера. Для запуска сервера используйте:
      # systemctl start VRising

      Если мы хотим остановить сервер, мы можем использовать:
      # systemctl stop VRising

      Мы также можем проверить, запущен ли процесс:
      # systemctl status VRising

      Обратите внимание, что в случае сбоя сервера он может отображать, что процесс активен, потому что произошел сбой только серверного процесса, но wine может все еще работаеть.

      Настройка брандмауэра

      Теперь, когда мы запустили сервер с помощью systemd, осталось только настроить брандмауэр.

      Если вы не изменяли параметры в ServerHostSettings.json, игра будет использовать порты udp 9876 и 9877.

      Добавьте правила для этих двух портов в брандмауэр:

      # firewall-cmd --add-port=9876/udp
      # firewall-cmd --add-port=9877/udp

      Затем мы сохраняем новые правила, чтобы порт оставался открытым даже после перезапуска, и перезагружаем брандмауэр:

      # firewall-cmd --runtime-to-permanent
      # брандмауэр-cmd --reload

      Обновление файлов сервера

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

      # systemctl stop VRising
      # su steam
      $ cd ~/steamcmd
      $ ./steamcmd

      Войдите в анонимный профиль Steam, обновите игру, дождитесь окончания обновления и закройте steamcmd:

      > login anonymous
      > app_update 1829350
      > quit

      Теперь игра обновлена, и мы можем снова запустить сервер.
      # systemctl start VRising

    Просмотр 1 сообщения - с 1 по 1 (всего 1)
    • Для ответа в этой теме необходимо авторизоваться.
    Авторизация
    *
    *
    Регистрация
    *
    *
    *
    Пароль не введен
    *
    Генерация пароля