Главная › Форумы › JUST FOR FUN › Create gaming servers › Создаем сервер V Rising на CentOS
- В этой теме 0 ответов, 1 участник, последнее обновление 1 год, 10 месяцев назад сделано E-tec.
-
АвторСообщения
-
12.01.2023 в 10:40 #2278
Обращайте внимание на знаки $, #, >, они не являются частью команд, но показывают от какого пользователя или в каком приложении они вводятся, это важно. Разворачивать сервер будем на 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
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.