Jump to content

[L4D2] Установка и настройка сервера под Linux


Electr0
 Share

Recommended Posts

Во первых, начну с разговора об автоматизации, среди протестированных скриптов запуска, контроля упал ли сервер или нет, я нашел самый удобный и рабочий: Linux Game Server Managers - Quick, simple deployment and management of various dedicated game servers Linux Game Server Managers, на этой базе и будем рассматривать установку и настройку.

Обращаю ваше внимание на то, что для VDS/VPS в качестве операционной системы рекомендуется Debian, в данном руководстве я рассматриваю Debian 8 X64. 

Нам понадобится следующее программное обеспечение:

  1. ExtraPuTTY - для входа на сервер через протокол SSH
  2. WinSCP - это файловый менеджер, через который мы будем работать с файлами.

А так же необходимые пакеты для корректной работы SteamCMD, расширения dbi.mysql.ext входящей в состав SourceMod, HLstatsX:CE, а так же самого скрипта автоматизации:

Эта библиотека нужна расширению работы с mysql базами данных dbi.mysql.ext

apt-get install lib32z1

Нужное для корректной работы скрипта:

sudo dpkg --add-architecture i386; sudo apt update; sudo apt install mailutils postfix curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 lib32stdc++6 steamcmd

Для запуска серверного Daemon HLstatsX:CE необходим модуль работы с базами данных:

apt-get install libdbd-mysql-perl

Чтобы HLstatsX:CE корректно распознавала местоположение игроков устанавливаем модуль Geo :: IP :: PurePerl

wget http://search.cpan.org/CPAN/authors/id/B/BO/BORISZ/Geo-IP-PurePerl-1.25.tar.gz
tar -zxf Geo-IP-PurePerl-1.25.tar.gz
cd Geo-IP-PurePerl-1.25
perl Makefile.PL
make
make test
make install
apt-get install libgeo-ip-perl

 

Если у вас будет использоватся параметр -debug ставим дебагер, если его не будет сервер будет просить установить:

apt-get install gdb 

 


Установка:

Создаем нового пользователя с названием сервера, можно как хотите это просто для понятности, т.к. под root не безопасно и крайне не рекомендуется самой Valve, в процессе вас попросят указать пароль, если пароль одинаков с названием учетной записи то, он спрашиваться не будет.

adduser l4d2_test_coop

Заходим под только созданным пользователем:

su - l4d2_test_coop

Скачиваем скрипт управления сервером:

wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh l4d2server

 

Теперь заходим в WinSCP заходим под учетной записью root админа и идем в каталог /home/<имя учетной записи созданной ранее> и переименовываем название скрипта l4d2server в желаемое название через файловый менеджер, допустим l4d2_test_coop, и после открываем этот файл двойным кликом мыши прямо в файловом менеджере.

В открывшемся окне, в разделе # Start Variables настраиваем:

  • defaultmap - это начальная карта с которой стартует сервер
  • maxplayers - максимальное кол-во игроков
  • port - желаемый порт сервера.
  • ip - ип текущего сервера.

После ниже находим и заменяем:

parms="-game left4dead2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"

На:

parms="-game left4dead2 -ip ${ip} -port ${port} +map ${defaultmap} -maxplayers ${maxplayers} +servercfgfile ${servercfg}"

т.к. из-за  strictportbind сервер не видно в списках игровых серверов Steam в меню игры.

Сохраняем и переходим к следующему шагу.

Запускаем установку, и следуем указаниям:

./l4d2_test_coop install

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

 

Автоматический мониторинг сервера:

crontab -e
0 5 * * *  /home/l4d2_test_coop/l4d2_test_coop monitor > /dev/null 2>&1

Теперь наш сервер каждые 5 минут проверяется, и если он зависнет или упадет то запустится вновь.


Разберем команды управления сервером:

Официальная документация тут

Запуск:

Запуск:

./l4d2_test_coop start

Остановка:

./l4d2_test_coop stop

Перезапуск:

./l4d2_test_coop restart

Обновление:

обновление:

./l4d2_test_coop update

проверка файлов:

./l4d2_test_coop validate

Мониторинг:

./l4d2_test_coop monitor

Консоль сервера:

Для выхода из консоли сервера нажмите “CTRL+b d”.

Заметка: нажатие “CTRL+c” выключает сервер.

./l4d2_test_coop console

Настройка

Для того чтобы сервер корректно отображался и к нему можно было подключится нужно добавить конфиг сервера, он называется server.cfg и содержит:

// *Server settings* //

// Название сервера
hostname "l4d2_coop_server"

sv_lan 0

sv_region 255

// Ваш ркон пароль
rcon_password "l4d2_coop_server"

// Кол-во неудачных попыток перед баном IP адреса того кто пытается зайти
sv_rcon_maxfailures 5

sv_search_key "l4d2_coop_server"
sv_tags "теги"
sv_contact "сайт или почта"

// *Additional settings* //
// Разрешенные режимы игры,если их несколько то через запятую без пробелов
sm_cvar sv_gametypes "coop,realism"

sm_cvar sv_alltalk 1
sm_cvar sv_cheats 0

// *Slot and players settings* //
// Allow or disallow the wait command on clients connected to this server
sm_cvar sv_allow_wait_command 0
sm_cvar sv_allow_lobby_connect_only 0
sm_cvar sv_maxplayers 4
sm_cvar sv_visiblemaxplayers 4
sm_cvar sv_force_unreserved 1

Кладем server.cfg в папку /l4d2_test_coop/serverfiles/left4dead2/cfg и пробуем запустить, на этом все, удачных экспериментов!

Link to comment
Share on other sites

  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...