Установка l4d2 сервера на CentOS 8 x64



 Для установки серверной части Left 4 Dead 2 будем использовать арендованный vds

  1. 2 ядра процессора
  2. 2 Гб оперативной памяти
  3. 40Гб SSD накопителя

 В панели управлением хостинга переустанавливаем сервер.

Панель управления хостингом

Заходим в консоль сервера под root и вводим.

Подключаем дополнительный репозиторий:
 yum install epel-release

Линуксовая консоль

Обновляем все пакеты:
 yum update

Линуксовая консоль

Линуксовая консоль

Линуксовая консоль

Перезагружаем сервер:
 reboot

Удаляем устаревшие пакеты:
 yum autoremove

Линуксовая консоль

Устанавливаем дополнительные пакеты:
 yum install glibc.i686 libstdc++.i686 zlib.i686 screen tar python3 nano

Линуксовая консоль

Открываем необходимый порт фаервола для l4d2:
 firewall-cmd --permanent --add-port=27015/udp

Перезагружаем правила фаервола:
 firewall-cmd --reload

 

 

 Если нужен ftp доступ.

Устанавливаем пакет отвечающий за ftp:
 yum install vsftpd

Линуксовая консоль

Открываем необходимые порты фаервола для ftp:
 firewall-cmd --permanent --add-port=21/tcp
 firewall-cmd --permanent --add-port=49000-55000/tcp

Перезагружаем правила фаервола:
 firewall-cmd --reload

Открываем конфигурационный файл ftp и правим примерно так:
 nano /etc/vsftpd/vsftpd.conf

Запуск ftp и добавление в авто запуск:
 systemctl start vsftpd
 systemctl enable vsftpd

Если необходимо перезапустить ftp:
 systemctl restart vsftpd

 

 

Создаем обычного пользователя с ограниченными правами.

Создаем обычного пользователя под именем game:
 adduser game
 passwd game

Линуксовая консоль

Рекомендую перезагрузить сервер (Не обязательно):
 reboot

Дальше есть несколько путей. Первый это установка готового набора скриптов для быстрого развертывания игрового сервера linuxgsm. Второй это с скриптом github.com/TyUser/l4d2_install_hx . Третий способ это самостоятельная установка SteamCMD и ручное отслеживание зависаний сервера (не рекомендуется

 

 

Установка l4d2 сервера с помощью готовых скриптов linuxgsm.

Устанавливаем несколько пакетов:
 yum install mailx postfix curl wget tar bzip2 gzip unzip python3 binutils bc jq tmux glibc.i686 libstdc++ libstdc++.i686

Заходим под учетную запись обычного пользователя:
 su - game

Скачиваем скрипт:
 wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh l4d2server

Устанавливаем скрипт:
 ./l4d2server install

Если установка прошла успешно то будет доступны следующие команды:

Запуск l4d2:
 ./l4d2server start

Остановка l4d2:
 ./l4d2server stop

Рестарт l4d2:
 ./l4d2server restart

Поиск битых фалов и обновление l4d2:
 ./l4d2server validate

Проверить запущен ли сервер l4d2:
 ./l4d2server monitor

Настраиваем крон для отслеживания падений, рестарта и автоматического обновления l4d2 сервера

Вводим в консоли:
 crontab -e

Открывается консольный редактор крона в который копируем:
 */5 * * * * su - game -c '/home/game/l4d2server monitor' > /dev/null 2>&1
 30 6 * * * su - game -c '/home/game/l4d2server force-update' > /dev/null 2>&1

 

 

Установка l4d2 сервера скриптами github.com/TyUser/l4d2_install_hx

Данные скрипты написаны на python3 и предназначены для автоматизации рутинных действий. Скрипт l4d2_cron.py прописывается в крон и отслеживает зависание l4d2 сервера. Если l4d2 сервер завис или упал то принужительно перезагрузит его. Скрипты расчитаны только под учетную запись game

 adduser game
 passwd game
 su game
 wget https://www.russerver.com/blog/file/l4d2_install.sh && chmod +x ./l4d2_install.sh
 ./l4d2_install.sh
 nano l4d2_cron.py

В консольном редакторе найдите переменную и отредактируйте sg_ip = 'ип адрес сервера'
Зайдите под учетной записью root
 su root
 nano /var/spool/cron/root
 */2 * * * * su - game -c 'python3 /home/game/l4d2_cron.py' > /dev/null 2>&1
 30 6 * * * su - game -c 'python3 /home/game/l4d2_restart.py' > /dev/null 2>&1

Использование:
 su game
 python3 ./l4d2_update.py         [данная команда обновляет l4d2]
 python3 ./l4d2_stop.py             [данная команда останавливает l4d2. нужно учитывать что крон в 6:30 утра запустит автоматически]
 python3 ./l4d2_restart.py         [если l4d2 работает то перезапускает. Если l4d2 остановлен то запускает]

После перезапуска VDS сервера скрипы сами запустят l4d2 сервер от имени пользователя game. В 6:30 утра сервер автоматически перезагрузится. Каждых 2 минуты скрипт проверяет на зависание или падение сервера.

Данная автоматизация избавляет от рутиннных операций и делает ваш l4d2 сервер более удобным для игроков.

 

 

Установка l4d2 сервера с самостоятельной настройкой SteamCMD.

Заходим под учетную запись обычного пользователя:
 su - game

Создайте директорию для SteamCMD и перейдите в неё:
 mkdir ~/steamcmd
 cd ~/steamcmd

Загрузите SteamCMD:
 wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

Извлеките содержимое в директорию:
 tar -xvzf steamcmd_linux.tar.gz

Запустите установку l4d2 сервера:
 ./steamcmd.sh +login anonymous +force_install_dir ./l4d2/ +app_update 222860 +validate +quit

После успешной установки еще раз наберите ту же самую команду чтобы проверти проверку и исправление битых файлов:
 ./steamcmd.sh +login anonymous +force_install_dir ./l4d2/ +app_update 222860 +validate +quit

Чтобы запустить Left 4 Dead 2 сервер через screen надо набрать в консоле:
 screen -dmS l4d2 ./steamcmd/l4d2/srcds_run -game left4dead2 -port 27015 +map c1m1_hotel -maxplayers 16 -secure +sv_lan 0

Линуксовая консоль

Чтобы остановить Left 4 Dead 2 сервер через screen надо набрать в консоле:
 screen -r l4d2 -X quit

 

 

Полезное.

Если не используете ssh то удалите его (Не рекомендую делать это на многих vds. Можете остатся без доступа к серверу):
 chkconfig sshd off
 service sshd stop
 yum erase openssh-server

Посмотреть правила фаервола:
 firewall-cmd --list-all

Удалить открытый порт:
 firewall-cmd --permanent --remove-port=номер порта/tcp

Показывает включенные службы:
 systemctl list-unit-files | grep enabled

Чистка кэша:
 dnf clean all

Устанавливаем часовой пояс Москвы:
 rm /etc/localtime
 ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Перезапуск CentOS:
 reboot

Версия ядра линукса:
 uname -a

 

 

Установка эмулятора для пуска пиратчиков на сервер.

Скачиваем эмулятор RevEmu для Linux. Фаил rev.ini расположить в папке /steamcmd/l4d2/. Оригинальный steamclient.so (весом примерно 18 183 015 байт) переименовать в steamclient_valve.so

В папку bin поместить эмулятор RevEmu с именем steamclient.so (весом примерно 1 398 476 байт)

 

 

 Ссылки.

http://bir3yk.net/forum/topic_2642/

https://linuxgsm.com/lgsm/l4d2server/

https://developer.valvesoftware.com/wiki/SteamCMD:ru

https://ally.pro/topic/309-l4d2-ustanovka-i-nastroyka-servera-pod-linux/

https://forum.myarena.ru/index.php?/topic/29325-nubo-administrirovanie-linux/page-2#entry260629