Как создать сервер Counter Strike 2
В этой статье опишем как создать сервер Counter-Strike 2 на Linux. Проверено, что на этой ОС серверы в целом работают быстрее, чем на Windows, при этом потребляют меньше ресурсов. В плане железа минимальными требованиями будут: 2 гб оперативной памяти и 30 гб на жестком диске. Давайте проведем пошаговую установку сервера.
Начинаем установку сервера
Для начала арендуйте сервер с вышеперечисленными параметрами. Также как упоминали, в качестве ОС будет Debian или Ububtu — обе на дистрибутивах Linux.
После оплаты сервера вам отправят логин и пароль. В Linux откройте консоль и введите команду: ssh root@ip адрес вашего сервера
Теперь, когда получили доступ, обновим ПО. Последовательно введите в консоли команды:
apt-get update
apt-get -y install htop
apt-get -y install screen
apt-get -y install nano
apt-get -y install sudo
apt-get -y install wget
-
Теперь установим 32-х разрядную библиотеку. Она необходимо для работы steamcmd. Введите в консоли:
sudo apt install lib32stdc++6
Создаем пользователя с меньшими правами
Чтобы не подвергнуть систему опасности, не запускайте игры от суперпользователя. Лучше создайте юзера с ограниченными правами. Это убережет от того, что кто-либо мог получить через этого пользователя доступ ко всей системе. Вот как это сделать
Откройте учетную запись root через консоль. Впишите команду:
sudo useradd -m steam
В этом примере пользователь получит имя "steam". Ключ "-m" означает, что путь /home/steam/ будет создан в в качестве домашнего каталога. Теперь перейдем из сеанса безар с root правами в пользователя с уменьшенными. То есть, в нашем примере — это "steam":
su - steam
Перекидываем нужное ПО на сервер с помощью FileZilla
Теперь нам предстоит загрузить на сервер нужные программы. начнем с начала:
- Если у вас еще нет FileZilla, сначала загрузите и установите его с официального сайта
- После установки запустите FileZilla.
- В верхней части интерфейса введите данные для подключения к серверу: хост (IP-адрес сервера), имя пользователя, пароль и порт. Эти данные предоставит хостинг-провайдер.
- Введите данные для подключения к FTP-серверу, предоставленные вашим хостинг-провайдером: хост (IP-адрес сервера), имя пользователя, пароль и порт.
- Нажмите кнопку "Quickconnect" (или нажмите Enter). FileZilla попытается установить соединение с вашим сервером на основе предоставленных данных.
- В левой части FileZilla увидите файлы и папки на компьютере, а в правой части — на сервере.
- Перейдите в папку на вашем компьютере, откуда хотите загрузить файлы. В правой части выберите папку на сервере, куда вы хотите загрузить файлы.
- Выделите необходимые файлы на вашем компьютере.
- Перетащите их в правую часть окна (область сервера) в созданную вами подпапку для сервера CS:GO.
- Удостоверьтесь, что файлы успешно загружены на сервер, следя за логами внизу окна FileZilla.
- Когда передача завершится, вы увидите сообщение об успешном завершении в логах FileZilla.
Скачаем сервер CS2 со steamCMD
Сперва создаем папку в /home/steam/. Сюда будем загружать ПО. Пропишите в консоли:
mkdir ~/steamcmd && mkdir ~/steamcmd/csgo
Войдите в первую папку:
cd ~/steamcmd
Скачайте в нее файл архива со steamCMD. Для этого впишите:
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
Распакуйте файл:
tar xvfz *.tar.gz
Теперь создайте скрипт для автоматического обновления игрового сервера. Назовите "updateCSGO.sh". Впишите команду:
echo "STEAMEXE=steamcmd ./steamcmd.sh +login anonymous +force_install_dir /home/steam/steamcmd/csgo +app_update 740 validate +quit" > updateCSGO.sh
Теперь разрешите выполнение файла с помощью команды:
chmod +x updateCSGO.sh
Теперь, этот скрипт сначала загрузит, а потом скачает сервер игры. Это займет чуть менее получаса:
./updateCSGO.sh
Получим токен для сервера CS2
Steam не позволят юзерам создавать серверы без пароля (токена). Чтобы получить его, следуйте инструкциям: steamcommunity.com/dev/managegameservers.
Запускаем сервер CS2
Теперь нам понадобится steamclient.so. Чтобы его загрузить, введите:
cd /home/steam/.steam/
mkdir sdk32
ln -s /home/steam/steamcmd/linux32/steamclient.so /home/steam/.steam/sdk32/
Теперь перейдите в директорию с сервером:
cd /home/steam/steamcmd/csgo
Создадим скрипт для старта классического сервера в фоновом режиме. Введите команду:
printf '#!/bin/sh \n./srcds_run srcds -game csgo -console -hostport 27015 -usercon +sv_setsteamaccount WYERIRITO-net_port_try 1 +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2 > /dev/null 2>&1 &' > start.sh
Здесь вместо "WYERIRITO" введите токен который получили от Steam.
Теперь когда создали этот файл "start.sh", дадим права запуска. Впишите команду:
chmod +x start.sh
Наконец, мы сделали все чтобы наконец можно было запустить сервер. Введите:
./start.sh
Для его запуска в фоновом режиме в будущем используйте эту команду:
cd /home/steam/steamcmd/csgo && ./start.sh
Дайте серверу около двух минут на соединение со Steam.
Как остановить сервер?
Для остановки нужно деактивировать процесс srcds_linux. Для этого:
-
Введите в консоли top. Вы увидите текущие процессы на сервере. В столбце COMMAND найдите srcds_linux. В колонке PID соответствующей этому процессу вам нужен номер.
-
Впишите команду:
kill 2364
(здесь впишите соответствующий процессу номер PID)
Все, теперь вы остановили сервер.
Устраняем возможные ошибки
Возможные проблемы чаще всего касаются, что вы работаете на 64-х разрядной системе, где не поддерживается 32x. Это решается легко. Достаточно установить нужные библиотеки. На Debian пропишите команду:
sudo apt-get install ia32-libs
На CentOS:
sudo yum install glibc.i686 libstdc++.i686
Еще проблемы могут быть с srcds_run и srcds_linux. Тогда им нужно предоставить права. Пропишите:
sudo chmod +x /opt/csgo_server/srcds_linux
А затем:
sudo chmod +x /opt/csgo_server/srcds_run
Настроим сервер CS2
Создайте файл настроек сервера — "server.cfg". Директория: "/home/steam/steamcmd/csgo/csgo/cfg/". Сделаем это вписав команду:
nano /home/steam/steamcmd/csgo/csgo/cfg/server.cfg
Теперь откройте файл в текстовом редакторе Nano и вставьте следующие строки:
sv_setsteamaccount "232423URRERT"
hostname "MouseDC.ru - server CS:GO" //название сервера
host_name_store 1
host_info_show 1
host_players_show 2
sv_lan 0
sv_region 3
sv_tags "rank, ffa, msk, spb, ekb, nsk, dd2, dust2, ru, rus"
motdfile 1
// RCON
rcon_password "w7WMEbFXI8bEbVK0ZPbIqQ6d7" // пароль команды rcon, после которой можно выполнять серверные команды
// Баланс
mp_autoteambalance 1 // автоматический баланс игроков по командам
// Чат
sv_alltalk 1 // 1 - разрешаем разговоры между обеими командами. 0 - только свои
sv_deadtalk 0 // 1 - разрешаем разговоры живых и мертвых
sv_ignoregrenaderadio 1 // игнорируем сообщения броска гранаты
sv_spec_hear 1 // наблюдатели слышат других
// Действие в конце матча
mp_endmatch_votenextmap 0 // 0 - отключаем стандартное голосование на смену карты в конце матча
mp_endmatch_votenextleveltime 15 // время на голосование за новую карту
mp_match_end_changelevel 1 // 1 - в конце матча смена карты
mp_endmatch_votenextmap_keepcurrent 0 // 1 - убрать отыгранную карту из голосования
// Игровые настройки сервера
mp_forcecamera 1 // разрешать ли смотреть за игроками другой команды после смерти? 0-да 2-нет
mp_freezetime 5 // задержка до начала раунда (в секундах)
mp_startmoney 800 // деньги, с которыми игрок начинает играть после присоединения к игре
mp_maxmoney 16000 // максимальное количество денег
mp_timelimit 30 // время до конца карты в минутах
mp_buytime 0.25 // изменить время закупки (в минутах) (по умолчанию 15 секунд - 0.25)
mp_c4timer "35" // изменить время, на которое закладывается бомба на de_ картах (в секундах)
// Рейты сервера
sv_maxrate 128000 // максимальное количество байт за одну секунду времени, которые сервер посылает клиенту
sv_minrate 128000 // минимальное количество байт за одну секунду времени, которые сервер посылает клиенту
sv_minupdaterate 20 // минимальная частота отсылки обновлений от сервера к клиенту. Влияет на фпс и загрузку сервера. Если сервер отошлёт клиенту, к примеру, 40 обновлений за 1 секунду, у клиента фпс будет 40 либо ниже.
// Огонь по своим
mp_friendlyfire 1 // включен ли friendlyfire (атака по своим) 1-да, 0-нет
// Управление ботами
bot_quota 0 // установить минимальное количество ботов на сервере
bot_difficulty 2 // сложность бота: 0 - Легкий, 1 - Нормальный, 2 – Тяжелый, 3 - Профессионал.
bot_chatter "off" // как часто бот использует радиокоманды
bot_join_after_player 1 // бот ждет, когда человек подключится и только тогда подключается сам.
// Бэкапы (отключены, чтобы не занимать место на диске)
mp_backup_round_file 0
mp_backup_round_file_last 0
mp_backup_round_file_pattern 0
В первой строке sv_setsteamaccount номер 232423URRERT нужно заменить на ваш токен.
На этом все. Вы полностью настроили сервер CS2 и готовы к игре!