Приветствую вас, уважаемые читатели. В этой статье мне хотелось бы рассказать вам об установке сервера Counter-Strike 2 на операционных системах Debian и Ubuntu. Статья будет актуальна для всех версий операционных систем и по ходу дополняться в случае каких-либо изменений. Если вы будете всё делать в точности как указано в данной статье, то в конце у вас будет полностью готовый и рабочий сервер.
Не хотите возиться вручную? Я написал автоматический установщик cs2-install - он сам ставит зависимости, качает игру, создаёт серверы через симлинки и даёт удобную команду cs2 для управления. Если вам нужен готовый инструмент «поставил и забыл» - загляните в репозиторий. Ниже же разберём установку с нуля своими руками, чтобы понимать, как всё устроено изнутри.
Что понадобится
Для начала разберёмся с железом. Сервер CS2 не самый прожорливый, но и не лёгкий. На один игровой экземпляр комфортно иметь минимум 2 ГБ оперативной памяти, а если планируете несколько серверов на одной машине - считайте отдельно на каждый. Процессор - подойдёт любой относительно современный, желательно от 2 ядер. Диск - отдельная история: сама игра весит около 60+ ГБ, плюс место под логи, конфиги и плагины. Лучше SSD-диск для сервера - на HDD сервер будет долго стартовать и обновляться.
Нам потребуется установленный Debian или Ubuntu на VDS/Dedicated-сервере. Root-доступ обязателен. И ещё один момент: если хотите, чтобы сервер был виден в общем списке и к нему могли подключаться все желающие, понадобится GSLT-токен. Получить его можно на странице Steam Game Server Account Management - для CS2 выбираете App ID 730. Без токена сервер поднимется, но в браузере серверов его не будет.
Подключение к серверу
Предположим, у вас абсолютно чистая система - только что установленная Debian или Ubuntu, вы ещё ничего на неё не ставили. Первое, что нужно сделать - зайти по SSH.
Откройте терминал или же отдельный клиент на своём компьютере и подключитесь:
ssh root@ВАШ_IP_АДРЕС
Вместо ВАШ_IP_АДРЕС подставьте реальный IP вашего сервера. При первом подключении система спросит, доверяете ли вы этому хосту - пишите yes и жмите Enter. Дальше введите пароль. Если всё прошло нормально, вы увидите приглашение командной строки - что-то вроде root@server:~#. Значит, вы внутри.
Подготовка системы
Прежде чем ставить игровой сервер - обновим систему и поставим базовые вещи. Это стандартная процедура, без неё дальше могут вылезти ошибки с зависимостями.
apt update && apt upgrade -y
apt update обновляет список пакетов, apt upgrade - сами пакеты. На чистой системе это может занять несколько минут, это нормально.
Поставим пакеты, которые понадобятся дальше:
apt install -y curl wget tar gzip screen sudo locales lib32gcc-s1 nano lib32stdc++6
screen нужен, чтобы сервер работал в фоне после отключения от SSH. Остальное - библиотеки, без них CS2 просто не запустится.
Создание пользователя
Игровой сервер не стоит запускать от root - так и небезопасно, и SteamCMD может капризничать. Создадим отдельного пользователя:
useradd -m -s /bin/bash cs2
Появится cs2 пользователь, у него будет домашняя папка /home/cs2. Дальше всю игру будем ставить от его имени.
Установка SteamCMD
SteamCMD - это консольный клиент Steam для скачивания dedicated-серверов. Ставим его в /opt/steamcmd:
mkdir -p /opt/steamcmd
cd /opt/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
chown -R cs2:cs2 /opt/steamcmd
Проверим, что всё на месте:
ls -la /opt/steamcmd/steamcmd.sh
Должен быть исполняемый файл steamcmd.sh.
Скачивание сервера Counter-Strike 2
Теперь качаем саму игру. Переключимся на пользователя cs2 и запустим загрузку:
su - cs2
mkdir -p ~/cs2-server
/opt/steamcmd/steamcmd.sh +force_install_dir ~/cs2-server +login anonymous +app_update 730 validate +quit
Команда длинная, но логика простая:
+force_install_dir- куда положить файлы;+login anonymous- вход без аккаунта, для dedicated-сервера этого хватает;+app_update 730- App ID Counter-Strike 2;validate- проверка целостности файлов;+quit- выход после загрузки.
Загрузка займёт достаточно времени и зависит от скорости канала. В конце должен быть такой ответ:
Success! App '730' fully installed.
Проверим бинарник:
ls -la ~/cs2-server/game/bin/linuxsteamrt64/cs2
Файл есть - можно идти дальше. Пока не выходите из сессии cs2, ещё пригодится.
Базовый конфиг сервера
Создадим простой server.cfg:
nano ~/cs2-server/game/csgo/cfg/server.cfg
Вставьте:
hostname "Мой CS2 сервер"
sv_lan 0
hostname- название, которое видят игроки в списке.sv_lan 0- сервер не локальный, доступен из интернета.
Сохраните: Ctrl+O, Enter, Ctrl+X.
Скрипт запуска
Чтобы каждый раз не набирать длинную команду для запуска сервера, сделаем скрипт:
nano ~/start.sh
Содержимое:
#!/bin/bash
cd ~/cs2-server
./game/cs2.sh -dedicated -console -usercon -game csgo \
+ip 0.0.0.0 \
-port 27015 \
-maxplayers 10 \
+game_type 0 \
+game_mode 0 \
+mapgroup mg_active \
+map de_dust2 \
+sv_setsteamaccount ВАШ_GSLT_ТОКЕН
Разберём по частям:
-dedicated- режим dedicated-сервера;-console- консоль в терминале;-port 27015- игровой порт (стандартный);-maxplayers 10- максимум игроков;+map de_dust2- стартовая карта;+sv_setsteamaccount- сюда вставьте GSLT-токен. Если тестируете без публичного листинга - эту строку можно убрать.
Сделаем скрипт исполняемым:
chmod +x ~/start.sh
Запуск сервера
Выйдем из пользователя cs2 обратно в root:
exit
Запустим сервер в фоновой screen-сессии:
su - cs2 -c "screen -dmS cs2-server bash ~/start.sh"
Через пару секунд проверим, что процесс жив:
su - cs2 -c "screen -ls"
Должна быть сессия cs2-server. Если есть - сервер работает.
Подключение к консоли
Чтобы зайти в консоль сервера и отправлять команды:
su - cs2 -c "screen -r cs2-server"
Выйти из консоли, не останавливая сервер: Ctrl+A, отпустите, затем D.
Остановить сервер:
su - cs2 -c "screen -S cs2-server -X quit"
Обновление сервера
Когда Valve выкатывает патч, обновить сервер можно так:
su - cs2 -c "/opt/steamcmd/steamcmd.sh +force_install_dir ~/cs2-server +login anonymous +app_update 730 validate +quit"
Перед обновлением лучше остановить сервер, после - запустить заново.
Автозапуск при перезагрузке
Если хотите, чтобы сервер поднимался сам после ребута, можно добавить в cron:
crontab -u cs2 -e
Строка:
@reboot sleep 30 && /home/cs2/start.sh
Но для надёжности лучше оформить это через systemd - это уже отдельная тема, если понадобится, допишу.
На этом, пожалуй, всё. Ручная установка чуть дольше, зато вы видите каждый шаг и можете настроить всё под себя. А если захотите упростить жизнь - в начале статьи есть ссылка на cs2-install, который берёт рутину на себя.
Если появятся вопросы или что-то устареет после очередного патча Valve - пишите, статью буду дополнять.