Jump to content

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


Recommended Posts

Posted

Во первых, начну с разговора об автоматизации, среди протестированных скриптов запуска, контроля упал ли сервер или нет, я нашел самый удобный и рабочий: 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 и пробуем запустить, на этом все, удачных экспериментов!

  • 5 months later...
Posted

Инструкция обновлена, мой опыт установки доп пакетов обновился, теперь знаю как проще и красивее.

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...