Counter-Strike 2 Руководство

Установка сервера CS2 на Linux: SteamCMD и GSLT

Пошаговая установка сервера CS2 на Linux: настройка окружения SteamCMD, генерация GSLT-токена и запуск через службу systemd.

Установка сервера CS2 на Linux: SteamCMD и GSLT

Переход со старого движка Source 1 на Source 2 кардинально изменил архитектуру выделенного сервера Counter-Strike 2. В отличие от CS:GO, где запуск осуществлялся через 32-битный скрипт srcds_run, сервер CS2 является нативным 64-битным приложением Linux, использует другую структуру каталогов и требует обязательной авторизации через GSLT-токен для публичной игры и скинов.

В данном руководстве подробно разобран процесс чистой установки сервера CS2 на Linux с нуля: от подготовки системного окружения и загрузки через SteamCMD до настройки GSLT и создания отказоустойчивой службы systemd.

Системные зависимости и изоляция непривилегированного пользователя#

Запуск игровых серверов от имени суперпользователя root категорически запрещён правилами безопасности Linux. Любая уязвимость в сетевом стеке игрового движка предоставит злоумышленнику полный контроль над операционной системой.

Создайте изолированного пользователя cs2 и директорию установки:

bash
sudo useradd -m -s /bin/bash cs2
sudo mkdir -p /opt/cs2
sudo chown -R cs2:cs2 /opt/cs2

Установите необходимые системные библиотеки (32-битные библиотеки рантайма SteamCMD и пакеты локализации libicu):

bash
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y lib32gcc-s1 lib32stdc++6 libicu-dev curl tar

Загрузка файлов сервера через SteamCMD#

Выделенный сервер CS2 распространяется под App ID 730 и доступен для анонимной загрузки без необходимости авторизации под личным аккаунтом Steam.

Переключитесь на пользователя cs2 и выполните первичную установку:

bash
sudo -u cs2 /usr/games/steamcmd \
  +force_install_dir /opt/cs2 \
  +login anonymous \
  +app_update 730 validate \
  +quit

Проверьте, что исполняемый 64-битный файл CS2 успешно загружен по новому пути:

bash
file /opt/cs2/game/bin/linuxsteamrt64/cs2

Получение GSLT-токена и конфигурация server.cfg#

Для того чтобы сервер мог корректно синхронизироваться со Steam, отображаться в глобальном поиске и загружать скины игроков, требуется GSLT (Game Server Login Token). Токен создаётся в панели управления аккаунтом Steam (https://steamcommunity.com/dev/managegameservers) для App ID 730.

Создайте базовый файл конфигурации server.cfg:

bash
sudo -u cs2 mkdir -p /opt/cs2/game/csgo/cfg
cat << 'EOF' | sudo -u cs2 tee /opt/cs2/game/csgo/cfg/server.cfg
hostname "Nexardo CS2 Dedicated Community Server"
sv_lan 0
sv_cheats 0
mp_autoteambalance 1
mp_limitteams 1
mp_maxrounds 24
mp_roundtime 1.92
EOF

Создание службы systemd и управление запуском#

Для автоматического запуска при перезагрузке VPS и корректной работы в фоновом режиме оформите сервер как системную службу systemd. Обратите внимание на повышенный лимит файловых дескрипторов (LimitNOFILE), необходимый движку Source 2:

bash
cat << 'EOF' | sudo tee /etc/systemd/system/cs2.service
[Unit]
Description=Counter-Strike 2 Dedicated Server
After=network.target

[Service]
Type=simple
User=cs2
Group=cs2
WorkingDirectory=/opt/cs2/game/bin/linuxsteamrt64
ExecStart=/opt/cs2/game/bin/linuxsteamrt64/cs2 -dedicated +ip 0.0.0.0 -port 27015 +map de_dust2 +game_type 0 +game_mode 1 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Активируйте и запустите службу:

bash
sudo systemctl daemon-reload
sudo systemctl enable --now cs2
sudo systemctl status cs2 --no-pager

Проверьте, что сервер успешно слушает игровой порт UDP 27015:

bash
ss -ulnp | grep 27015

Для быстрого развёртывания игровых узлов и гибкого мониторинга состояния служб без ручной правки systemd-юнитов используйте возможности современной панели управления серверами, где настройка CS2, портов и токенов авторизации автоматизирована.

Источники#