Создание сервера Surf для Counter-Strike 2 (CS2)

Пошаговый гайд по созданию Surf сервера CS2 с SharpTimer. Установка SteamCMD, Metamod, CounterStrikeSharp. Настройка физики, карт и базы данных.

2026.03.31                  


Создание сервера Surf для Counter-Strike 2 (CS2)Создание сервера Surf для Counter-Strike 2 (CS2) Создание сервера Surf для Counter-Strike 2 (CS2) — это отличный проект, но он требует внимательной настройки, так как экосистема плагинов для CS2 отличается от CS:GO. Основным каркасом для плагинов сейчас является CounterStrikeSharp (CSSharp), а SharpTimer — один из лучших таймеров, работающих на этой базе.

Гайд: Сервер Surf + SharpTimer для CS2

1. Требования и подготовка

Перед началом убедитесь, что у вас есть:

  • VPS или Выделенный сервер: Рекомендуется Linux (Ubuntu 20.04/22.04 или Debian 10/11). Минимум 4 ГБ ОЗУ (лучше 8 ГБ), 2-4 ядра CPU.
  • Steam аккаунт: Для создания токена (если сервер будет публичным в мастер-сервере), но для начала можно запустить анонимно.
  • Доступ к терминалу: (SSH для Linux).

2. Установка сервера CS2 (SteamCMD)

Установите зависимости:

    sudo apt update
    sudo apt install -y wget screen unzip lib32gcc-s1

Создайте пользователя для сервера (рекомендуется для безопасности):

    adduser cs2server
    su - cs2server

Скачайте и установите SteamCMD:

    mkdir ~/steamcmd
    cd ~/steamcmd
    wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
    tar -xvzf steamcmd_linux.tar.gz

Установите сервер CS2:

Запустите SteamCMD и введите команды:

    ./steamcmd.sh

Внутри консоли SteamCMD:

    force_install_dir ~/cs2_server
    login anonymous
    app_update 730 validate
    quit

Примечание: App ID 730 используется и для CS2.

3. Установка Metamod:Source и CounterStrikeSharp

SharpTimer не работает без фреймворка CounterStrikeSharp, который требует Metamod.

Установка Metamod:Source:

  • Скачайте последнюю версию для CS2 с официального сайта: metamodsource.net
  • Распакуйте архив.

Скопируйте папку metamod в директорию сервера:

        cp -r addons/metamod ~/cs2_server/game/csgo/addons/
  • Создайте файл gameinfo.gi (если его нет) или отредактируйте существующий, чтобы добавить Metamod.

Путь:

~/cs2_server/game/csgo/gameinfo.gi

Добавьте строку GameBin csgo/addons/metamod/bin в секцию SearchPaths (обычно метамод делает это сам установщиком, но проверьте наличие файла metamod.vdf в csgo/addons/metamod/).

Установка CounterStrikeSharp (CSSharp):

  • Скачайте релиз с GitHub: CounterStrikeSharp Releases - github.com/roflmuffin/CounterStrikeSharp/releases
  • Выберите архив counterstrikesharp-with-runtime.zip.
  • Распакуйте содержимое в ~/cs2_server/game/csgo/.
  • Убедитесь, что папки addons/counterstrikesharp и dlls находятся на своих местах.

4. Установка плагина SharpTimer

Скачивание:

  • Перейдите на репозиторий: SharpTimer GitHub - github.com/SharpTimer/SharpTimer
  • Скачайте последний релиз (файл .zip).

Установка:

  • Распакуйте архив.
  • Скопируйте содержимое папки csgo из архива в ~/cs2_server/game/csgo/.

Структура должна выглядеть так:

        csgo/
        ├── addons/
        │   └── counterstrikesharp/
        │       └── configs/
        │           └── plugins/
        │               └── SharpTimer/
        ├── maps/

Настройка прав доступа:

    chmod -R 755 ~/cs2_server/game/csgo/addons/counterstrikesharp/configs/plugins/SharpTimer

5. Настройка конфигурации SharpTimer

Перейдите в папку конфигурации:

  • ~/cs2_server/game/csgo/addons/counterstrikesharp/configs/plugins/SharpTimer/

Откройте файл sharptimer_config.json (или создайте его, если нет) и настройте основные параметры:

{
  "EnableTimer": true,
  "EnableRanking": true,
  "EnableRecords": true,
  "EnableStages": true,
  "EnableCheckpoint": true,
  "DatabaseType": "SQLite", 
  "DatabasePath": "addons/counterstrikesharp/configs/plugins/SharpTimer/data.db",
  "WebUI": {
    "EnableWebUI": false, 
    "WebUIPort": 8080
  }
}
  • DatabaseType: Для начала оставьте SQLite. Для крупных проектов лучше настроить MySQL.
  • EnableWebUI: Если включите, у вас будет веб-панель для просмотра рекордов.

6. Настройка сервера (server.cfg)

  • Для корректной работы серфа нужно изменить физику игры.
  • Откройте файл: ~/cs2_server/game/csgo/cfg/server.cfg

Добавьте или измените следующие строки:

// Автор Мониторинг игровых серверов Servermon.ru
// Общие настройки
hostname "Surf Server"
sv_password ""
sv_cheats 0
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_maxrounds 0
mp_timelimit 0
mp_ct_default_melee "weapon_knife"
mp_ct_default_primary ""
mp_ct_default_secondary ""
mp_t_default_melee "weapon_knife"
mp_t_default_primary ""
mp_t_default_secondary ""

// Физика Серфа (Критически важно!)
sv_accelerate 5.5
sv_airaccelerate 100
sv_maxvelocity 3500
sv_staminajumpcost 0
sv_staminalandcost 0
sv_staminamax 0
sv_staminarecoveryrate 0
sv_enablebunnyhopping 1

// Настройки таймера и записи
sv_allow_voice_from_file 1
sv_deadtalk 1

7. Установка карт (Maps)

  • Найдите карты в формате .bsp для CS2 (например, на сайтах вроде surfworkshop или gamebanana). Убедитесь, что они портированы именно под CS2, карты от CS:GO не подойдут.

Загрузите файлы карт в папку:

  • ~/cs2_server/game/csgo/maps/

Чтобы сервер автоматически запускал карту при старте, добавьте в server.cfg:

    map surf_beginner_1

(Замените на имя вашей карты без расширения .bsp).

8. Запуск сервера

Для удобного управления используйте screen.

Создайте скрипт запуска start.sh в папке ~/cs2_server/:

    nano ~/cs2_server/start.sh

Вставьте содержимое:

    #!/bin/bash
    cd ~/cs2_server/game/bin/linuxsteamrt64
    ./cs2 -usercon -strictportbind -ip 0.0.0.0 -port 27015 +tv_enable 0 -tickrate 128 +map surf_beginner_1 +exec server.cfg

Примечание: В CS2 параметр -tickrate формально устарел из-за sub-tick архитектуры, но многие плагины и серверы все еще его используют для совместимости. Если возникнут проблемы, попробуйте убрать его.

Дайте права на выполнение:

    chmod +x ~/cs2_server/start.sh

Запустите сервер в сессии screen:

    screen -S cs2_surf
    ./start.sh
  • Чтобы выйти из сессии, не выключая сервер: нажмите Ctrl + A, затем D.
  • Чтобы вернуться: screen -r cs2_surf.

9. Настройка брандмауэра (Firewall)

Откройте необходимые порты для подключения игроков:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27020/tcp
sudo ufw allow 27020/udp

10. Дополнительные рекомендации

  1. Администрирование: Установите плагин администрирования для CSSharp, например, SimpleAdmin или CSSharp Admin, чтобы вы могли банить игроков и менять карты.
  2. База данных: Если планируете серьезный проект, настройте MySQL в конфиге SharpTimer. Это позволит хранить статистику надежнее и легче переносить её.
  3. Мониторинг: Установите веб-интерфейс SharpTimer (включив EnableWebUI), чтобы игроки могли видеть свои рекорды в браузере.
  4. Обновление: Регулярно проверяйте обновления SteamCMD (app_update 730 validate) и плагинов, так как CS2 часто обновляется и может ломать совместимость.

Решение частых проблем

  • Сервер не виден в списке: Проверьте порты (UFW) и убедитесь, что вы не используете параметр -insecure.
  • Плагины не грузятся: Проверьте консоль сервера (tail -f ~/cs2_server/game/csgo/logs/*.log). Часто проблема в версиях Metamod или CSSharp. Они должны быть актуальными.
  • Игроков кикает с ошибкой "Pure Server": Убедитесь, что у всех игроков и на сервере одинаковые файлы карт и нет сторонних модификаций, нарушающих целостность.