Для установки серверной части Left 4 Dead 2 будем использовать арендованный vds
В панели управлением хостинга переустанавливаем сервер.
Подключаем дополнительный репозиторий:
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:
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 и ручное отслеживание зависаний сервера (не рекомендуется
Устанавливаем несколько пакетов:
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
Данные скрипты написаны на 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 сервер более удобным для игроков.
Заходим под учетную запись обычного пользователя:
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