Как поднять сервер CS2: выделенный сервер Counter-Strike 2 на Linux через SteamCMD
Установите сервер Counter-Strike 2 для друзей или своего сообщества на Ubuntu 24.04: SteamCMD, серверные файлы, Game Server Login Token, server.cfg, игровые режимы, файрвол, служба systemd и автообновление.
Когда у вас есть собственный сервер Counter-Strike 2, вы сами решаете, какие будут настройки матча, ротация карт и кто сможет зайти. Для приватных игр с друзьями, тренировок команды или сервера сообщества надёжнее всего запускать его на Linux-сервере, который работает круглосуточно. В этом руководстве мы установим выделенный сервер CS2 на Ubuntu 24.04 с помощью официальных инструментов Valve.
Коротко: вы анонимно скачиваете серверные файлы CS2 (App ID 730) через SteamCMD, получаете в Steam токен Game Server Login Token и запускаете серверную программу
cs2с нужными параметрами игрового режима. Серверные файлы занимают много места — выделите не менее 60 ГБ свободного диска.
Сколько нужно ресурсов?
- Диск: серверные файлы CS2 занимают десятки гигабайт (на момент написания — более 35 ГБ) и растут с каждым обновлением. Во время обновления нужно ещё и временное место. Выделите минимум 60 ГБ, а лучше 80 ГБ и больше. NVMe-диск ускоряет загрузку карт.
- RAM: для соревновательного сервера или deathmatch на 10–12 игроков 4 ГБ — комфортная отправная точка. Если используете плагины, может понадобиться больше.
- Процессор: сервер CS2 опирается на производительность одного ядра при расчёте тиков и очень чувствителен к задержкам. На сервере с разделяемым процессором в часы пик возможны подвисания; выбирайте сервер с выделенным процессором.
1. Подготовьте систему
Подключитесь к серверу по SSH. SteamCMD нужны 32-битные библиотеки, поэтому включаем архитектуру i386 и устанавливаем необходимые пакеты:
sudo dpkg --add-architecture i386
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tmux
Не запускайте сервер от root. Создайте отдельного пользователя:
sudo adduser --disabled-password --gecos "" cs2
2. Установите SteamCMD
SteamCMD — это консольная утилита Valve для загрузки и обновления серверных файлов. Переключитесь на пользователя cs2 и скачайте официальный пакет:
sudo -iu cs2
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
3. Скачайте серверные файлы CS2
Серверные файлы CS2 используют тот же App ID, что и сама игра (730), и скачиваются с анонимным входом:
~/steamcmd/steamcmd.sh +force_install_dir /home/cs2/cs2-ds +login anonymous +app_update 730 validate +quit
В зависимости от скорости соединения загрузка может занять больше нескольких минут. По завершении вы должны увидеть строку Success! App '730' fully installed. Если возникла ошибка, обычно достаточно запустить команду ещё раз: SteamCMD продолжит с того места, где остановился.
Создайте ссылку на библиотеку, которая нужна серверу для подключения к Steam, в том месте, где он её ищет. Если пропустить этот шаг, при запуске сервер может выдать ошибку steamclient.so:
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
4. Получите Game Server Login Token (GSLT)
Чтобы сервер был виден в интернете и игроки могли к нему подключиться, нужен GSLT. Откройте в браузере steamcommunity.com/dev/managegameservers под своим аккаунтом Steam, укажите App ID 730, добавьте заметку и создайте токен. Для доступа к этой странице Steam проверяет ряд условий (например, аккаунт не должен быть ограниченным и к нему должен быть привязан номер телефона). Скопируйте сгенерированный длинный код — на следующих шагах вы подставите его вместо TOKEN. Никому не передавайте токен.
5. Создайте файл server.cfg
Настройки сервера хранятся в файле game/csgo/cfg/server.cfg:
nano ~/cs2-ds/game/csgo/cfg/server.cfg
Базовая конфигурация:
hostname "Benim CS2 Sunucum"
sv_password ""
rcon_password "GucluBirRconSifresi"
sv_lan 0
sv_cheats 0
mp_autoteambalance 1
Если указать пароль в sv_password, сервер будет доступен только тем, кто его знает, — это удобно для приватных матчей. rcon_password позволяет удалённо управлять сервером прямо из игры; обязательно выберите надёжный пароль.
6. Откройте порты в файрволе
По умолчанию сервер CS2 использует порт 27015. Игровой трафик идёт по UDP, а RCON — по TCP. Вернитесь к своему пользователю (exit) и выполните:
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw enable
7. Запустите сервер
Первый запуск проведём в сессии tmux:
sudo -iu cs2
tmux new -s cs2
~/cs2-ds/game/bin/linuxsteamrt64/cs2 -dedicated -usercon -port 27015 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount TOKEN +exec server.cfg
Замените TOKEN кодом, полученным на шаге 4. В консоли должны появиться строки о загрузке карты и подключении к Steam. Нажмите Ctrl+B, затем D, чтобы отключиться от сессии, — сервер продолжит работать.
Чтобы подключиться к игре, откройте в CS2 консоль разработчика (включается в разделе «Настройки > Игра») и введите connect SUNUCU_IP:27015, подставив IP-адрес сервера. Если вы задали пароль, сначала введите password SIFRE.
Игровые режимы
Игровой режим задаётся сочетанием параметров game_type и game_mode:
| Режим | game_type | game_mode |
|---|---|---|
| Обычный (Casual) | 0 | 0 |
| Соревновательный (Competitive) | 0 | 1 |
| Напарники (Wingman) | 0 | 2 |
| Гонка вооружений (Arms Race) | 1 | 0 |
| Deathmatch | 1 | 2 |
Например, для сервера deathmatch используйте в команде запуска +game_type 1 +game_mode 2.
8. Служба systemd и автоматическое обновление
Когда Valve обновляет CS2, игроки не могут подключиться к серверам со старой версией. Поэтому практичное решение — обновлять сервер перед каждым запуском. Сначала остановите сервер в tmux (tmux attach -t cs2, затем введите quit), а потом под своим пользователем создайте файл службы:
sudo nano /etc/systemd/system/cs2.service
[Unit]
Description=Counter-Strike 2 sunucusu
After=network-online.target
Wants=network-online.target
[Service]
User=cs2
WorkingDirectory=/home/cs2/cs2-ds
ExecStartPre=/home/cs2/steamcmd/steamcmd.sh +force_install_dir /home/cs2/cs2-ds +login anonymous +app_update 730 +quit
ExecStart=/home/cs2/cs2-ds/game/bin/linuxsteamrt64/cs2 -dedicated -usercon -port 27015 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount TOKEN +exec server.cfg
Restart=on-failure
RestartSec=15
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
TimeoutStartSec=0 не даёт systemd прервать запуск во время долгих обновлений. Включите службу:
sudo systemctl daemon-reload
sudo systemctl enable --now cs2
sudo journalctl -u cs2 -f
Когда выходит обновление, команда sudo systemctl restart cs2 сначала обновит сервер, а затем перезапустит его. При желании эту команду можно запускать каждую ночь через cron в час, когда игроков мало.
Коротко о плагинах
Для админ-меню, статистики или собственных режимов используются созданные сообществом платформы плагинов, такие как Metamod:Source и CounterStrikeSharp. Поскольку их установка часто меняется вместе с обновлениями игры, следуйте их официальной документации, а после крупного обновления CS2 дождитесь выхода совместимых версий плагинов.
Игровые серверы TürkiyeVPS для CS2
Серверу CS2 нужны и место на диске, и высокая производительность одного ядра. Наши тарифы игровых серверов включают выделенные vCPU на Intel Core i5-10400F, гарантированную RAM, диск на 60–100 ГБ, собственный IPv4-адрес и root-доступ; для CS2 комфортным стартом станет тариф с 4 ГБ RAM и диском на 80 ГБ. Серверы находятся в Стамбуле, поэтому для игроков из Турции задержка низкая. Из-за небольшого объёма диска наши стандартные тарифы VPS для CS2 не подходят. Для других игр загляните в наши руководства по установке сервера FiveM и по установке сервера Minecraft.
Часто задаваемые вопросы
Бесплатно ли поднять сервер CS2?
Серверное ПО CS2 и GSLT бесплатны. Вы платите только за машину, на которой работает сервер. Можно запустить сервер и на своём компьютере, но когда компьютер выключается, выключается и сервер.
Сколько места на диске нужно серверу CS2?
Серверные файлы занимают десятки гигабайт и растут с обновлениями. С учётом запаса под обновления выделите минимум 60 ГБ, а лучше 80 ГБ и больше.
Мой сервер не виден в списке или игроки не могут подключиться. Что делать?
Сначала проверьте командой sudo ufw status, что UDP-порт 27015 открыт. Затем убедитесь, что в команде запуска указан действующий GSLT и задан параметр sv_lan 0. Наконец, снова выполните команду app_update 730, чтобы убедиться, что сервер обновлён.
Можно ли сделать сервер со 128 тиками?
Вместо прежних настроек тикрейта CS2 использует систему под названием «sub-tick»; выбирать тикрейт, как в CS:GO, не нужно. На игровой опыт по-настоящему влияют стабильность процессора сервера и задержка до игроков.
Читайте также
Если на VPS с 512 МБ или 1 ГБ RAM падают приложения, swap — первая помощь. Как добавить swap в Ubuntu 24.04, в...
Бот не должен засыпать вместе с ноутбуком. Пошагово: запуск Telegram-бота на Python 24/7 на VPS с Ubuntu 24.04...
Собираетесь запустить сервер Metin2, но не знаете, хватит ли VPS или нужен VDS? Сравниваем общий и выделенный...