Подробный гайд: Установка и настройка сервера Surf / Kreedz для CS:GO
Вот подробный пошаговый гайд по развёртыванию и настройке сервера Surf / Kreedz (KZ) для CS:GO. Гайд рассчитан на Linux (Ubuntu 20.04/22.04/24.04), так как это стандарт для игровых хостингов и обеспечивает максимальную стабильность.
Важно:
- С сентября 2023 года CS:GO переведён в статус Legacy. Valve больше не выпускает для него официальные обновления, но серверная часть полностью работоспособна. Многие сообщества используют патчи от энтузиастов или остаются на стабильных билдах. Для новых проектов рекомендуется рассматривать CS2, но инфраструктура Sourcemod/плагинов для CS:GO по-прежнему активна.
Системные требования
| Компонент | Минимум | Рекомендация |
|---|---|---|
| ОС | Ubuntu 20.04 LTS / Debian 11 | Ubuntu 22.04/24.04 LTS |
| CPU | 2 ядра @ 2.5 GHz | 4 ядра @ 3.0+ GHz |
| RAM | 2 GB | 4 GB |
| Диск | 10 GB SSD | 20+ GB NVMe |
| Сеть | 100 Мбит/с | 1 Гбит/с, низкий пинг до ЦА |
Шаг 1: Подготовка системы
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl tar unzip lib32gcc1 lib32stdc++6 lib32z1 screen tmux net-tools ufw
sudo ufw allow 27015/udp 27016/udp 27017/udp 27020/udp
sudo ufw enable
Создаём отдельного пользователя для сервера (не запускайте от root!):
sudo adduser csgoserver
sudo usermod -aG sudo csgoserver
su - csgoserver
Шаг 2: Установка SteamCMD
mkdir ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh +quit
Шаг 3: Загрузка файлов сервера CS:GO
mkdir ~/csgo_server && cd ~/steamcmd
./steamcmd.sh +login anonymous +force_install_dir ~/csgo_server +app_update 740 validate +quit
После загрузки структура:
~/csgo_server/
├── bin/
├── csgo/
│ ├── cfg/
│ ├── addons/ (появится позже)
│ └── ...
├── steamapps/
└── ...
Шаг 4: Базовая настройка сервера
Перейдите в ~/csgo_server/csgo/cfg/ и создайте/отредактируйте server.cfg:
// Идентификация
hostname "Surf/KZ Server"
sv_password ""
rcon_password "Ваш_Сложный_RCON_Пароль"
// Геймплей
sv_cheats 0
sv_lan 0
sv_allowdownload 1
sv_allowupload 1
sv_downloadurl "http://ваш_домен_или_ip/fastdl"
sv_maxrate 786432
sv_minrate 0
sv_maxcmdrate 128
sv_mincmdrate 0
sv_tickrate 128
sv_airaccelerate 100
sv_enablebunnyhopping 1
// Слоты и режимы
sv_maxplayers 32
game_type 0
game_mode 1
// Карты
mapgroup surf_kz_pool
mapcyclefile "mapcycle.txt"
Создайте mapcycle.txt (по 1 карте на строку):
surf_ace
surf_kitsune
surf_mesa
kz_16pillars
kz_luclin
Шаг 5: Установка Metamod:Source + SourceMod
1. Скачайте стабильную сборку под Linux:
- Metamod: https://www.sourcemm.net/downloads.php
- SourceMod: https://www.sourcemod.net/downloads.php
2. Распакуйте в ~/csgo_server/csgo/
addons/
├── metamod/
└── sourcemod/
├── configs/
├── plugins/
├── scripting/
└── ...
3. Создайте csgo/cfg/autoexec.cfg:
exec server.cfg
4. В csgo/addons/metamod.vdf укажите путь к SourceMod:
"Metamod"
{
"File" "../csgo/addons/sourcemod/bin/server_i486.so"
}
Перезапустите сервер.
В консоли должна появиться надпись:
[SM] Displaying 112 extensions:
[01] Automatic Updater
...
SourceMod 1.11.x detected.
Шаг 6: Плагины для Surf / Kreedz
Основные плагины (устанавливаются в csgo/addons/sourcemod/plugins/):
| Плагин | Назначение | Где брать |
|---|---|---|
kz_global_system.smx / kztimer.smx |
Таймер, чекпоинты, рекорды | AlliedModders / GitHub |
surf_timer.smx |
Таймер для серф-карт | AlliedModders |
bhop_autobunnyhop.smx |
Автобхоп (опционально) | SM forums |
mapchooser_extended.smx |
Выбор следующей карты | Входит в SM |
nextmap.smx |
Показ следующей карты | Входит в SM |
admin-flatfile.smx |
Админка | Входит в SM |
Установка:
- Скачайте
.smxфайлы. - Загрузите в
csgo/addons/sourcemod/plugins/ - Перезапустите сервер или в консоли:
sm plugins load <имя> - Настройте через
csgo/addons/sourcemod/configs/иcfg/плагинов.
Пример kztimer.cfg (базовый):
kz_enable 1
kz_checkpoint_save 1
kz_global_top_enabled 1
kz_spectate_enabled 1
kz_teleport_mode 1
Шаг 7: Настройка карт и FastDL
Сервер будет отправлять клиентам карты через HTTP/HTTPS (FastDL), иначе игроки будут отключаться.
1. Установите веб-сервер (nginx):
sudo apt install nginx -y
sudo mkdir -p /var/www/fastdl/csgo
sudo chown -R www-www-data /var/www/fastdl
2. Скопируйте карты:
cp ~/csgo_server/csgo/maps/*.bsp /var/www/fastdl/csgo/maps/
cp ~/csgo_server/csgo/maps/*.res /var/www/fastdl/csgo/maps/
cp ~/csgo_server/csgo/maps/*.nav /var/www/fastdl/csgo/maps/
cp ~/csgo_server/csgo/sound/*.wav /var/www/fastdl/csgo/sound/
cp ~/csgo_server/csgo/materials/*.* /var/www/fastdl/csgo/materials/
3. Настройте nginx (/etc/nginx/sites-available/fastdl):
server {
listen 80;
server_name ваш_ip_или_домен;
root /var/www/fastdl;
autoindex on;
location / { }
}
sudo ln -s /etc/nginx/sites-available/fastdl /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx
4. В server.cfg убедитесь:
sv_downloadurl "http://ваш_ip/fastdl"
sv_allowdownload 1
Шаг 8: Сетевая настройка и проброс портов
| Порт | Протокол | Назначение |
|---|---|---|
| 27015 | UDP/TCP | Основной игровой |
| 27016 | UDP | RCON / Query |
| 27017 | UDP | GOTV |
| 27020 | UDP | Клиентские соединения |
Если сервер за NAT:
- пробросьте порты в роутере на локальный IP сервера.
Проверка:
`netstat -ulnp | grep 27015` или `ss -ulnp | grep 27015`
Шаг 9: Автозапуск через systemd
Создайте сервис: sudo nano /etc/systemd/system/csgo-surf.service
[Unit]
Description=CS:GO Surf/KZ Server
After=network.target
[Service]
Type=simple
User=csgoserver
WorkingDirectory=/home/csgoserver/csgo_server
ExecStart=/home/csgoserver/csgo_server/srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +map surf_ace +ip 0.0.0.0 -port 27015 +tickrate 128
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload
sudo systemctl enable csgo-surf.service
sudo systemctl start csgo-surf.service
sudo systemctl status csgo-surf.service
Логи:
`journalctl -u csgo-surf.service -f`
Шаг 10: Тестирование и диагностика
- Подключитесь к серверу через клиент:
connect IP:27015 - Проверьте консоль сервера:
sm version,sm plugins list - Убедитесь, что таймеры и чекпоинты работают.
- Проверьте FastDL: в консоли клиента
statusдолжно бытьsv_downloadurlактивен. - Логи:
~/csgo_server/csgo/logs/
Частые проблемы:
| Симптом | Решение |
|---|---|
Connection rejected |
Проверьте фаервол, проброс портов, sv_lan 0 |
| Плагины не грузятся | Версия SM не совпадает с билдом CS:GO, проверьте metamod.vdf |
| Карты не скачиваются | Ошибка в sv_downloadurl, права на /var/www/fastdl, MIME-типы в nginx |
| Сервер крашится | Отключите плагины по одному, проверьте logs/ и dumps/ |
Рекомендации по развитию
- Админка: настройте
admins_simple.iniиadmin_groups.cfg - База рекордов: подключите MySQL для
kztimer/surf_timer(укажите вdatabases.cfg) - Античит:
smac,kz_anticheat,serverguard(опционально) - Мониторинг: HLSW, GameQ, или кастомный веб-панель
- Бэкапы:
tar -czf csgo_backup_$(date +%F).tar.gz ~/csgo_server/
Итог
Вы получили полностью рабочий сервер для Surf/KZ с таймерами, чекпоинтами, автозапуском, FastDL и базовой защитой. Для поддержки актуальности следите за обновлениями SourceMod на sourcemod.net и проверяйте совместимость плагинов с билдом CS:GO.