Другое · 11 мин
Где хранятся баны на сервере CS:GO и CS2
Разбор файлов bans.cfg, admins_simple.ini и Meepo. Где сервер хранит блокировки игроков и как их редактировать.
Система блокировок игроков на серверах Counter-Strike базируется на конфигурационных файлах, которые находятся в директории csgo на хостинге. Точное местоположение зависит от установленного плагина управления: стандартный SourceMod или альтернативные решения вроде Meepo. Понимание структуры этих файлов критически важно для администраторов, планирующих вручную удалить некорректный бан или перенести базу данных на другой сервер.
При стандартной установке плагина SourceMod, который является де-факто стандартом для игровых серверов, информация о блокировках хранится в текстовом формате. Это позволяет редактировать списки запрещенных пользователей с помощью любого текстового редактора без необходимости подключения к базе данных MySQL. Однако существуют нюансы в форматах хранения, которые меняются в зависимости от версии плагина и типа бана (по IP, по SteamID или по имени).
В большинстве случаев администраторы ищут файл, отвечающий за постоянные блокировки, в каталоге конфигурации сервера. Стандартный путь выглядит как csgo/addons/sourcemod/configs/bans.cfg. Именно в этот файл плагин SourceMod записывает данные при использовании команды sm_ban в консоли или чате. Файл имеет простую структуру, понятную даже новичку, и каждая запись содержит уникальный идентификатор игрока и причину блокировки.
Важно различать файлы временных и постоянных ограничений. Если вы используете систему временных мутов или ганов, они также могут прописываться в отдельные секции конфигурации или в тот же файл, но с указанием времени истечения наказания. При перезагрузке сервера или рестарте плагина SourceMod считывает этот файл и применяет все активные блокировки, поэтому удаление строки из bans.cfg является единственным способом снять бан без использования команд в игре.
Стандартное расположение файлов SourceMod
Плагин SourceMod организует хранение данных в строго определенной иерархии папок внутри игровой директории. После установки админ-панели в корне сервера появляется папка addons, внутри которой лежит sourcemod. Ключевая директория для поиска настроек — configs. Именно здесь находятся все основные файлы управления сервером, включая списки привилегий и блокировок.
Файл bans.cfg является основным хранилищем для блокировок по SteamID и IP-адресам. Он создается автоматически при первом использовании команды бана или может быть создан вручную администратором. Формат файла представляет собой список строк, где каждая строка описывает одного нарушителя. Комментарии в файле начинаются с символа решетки, что позволяет администраторам оставлять пометки, не нарушая работу плагина.
Помимо основного файла, в папке configs может присутствовать файл overrides.cfg, который отвечает за переопределение прав доступа, но не хранит сами блокировки. Также стоит обратить внимание на файл admins_simple.ini. Частой ошибкой является попытка найти забаненного игрока именно в этом файле. В admins_simple.ini хранятся только данные о том, кто имеет права администратора, какой у него иммунитет и какие флаги доступа ему выданы.
csgo/addons/sourcemod/configs/bans.cfgЕсли вы не можете найти файл bans.cfg в указанной директории, проверьте, включен ли плагин sourcebans или другие расширения, которые могут менять логику хранения. В некоторых сборках серверов файлы конфигурации могут быть вынесены в отдельную папку data для удобства бэкапа. Однако классическая структура SourceMod всегда предполагает нахождение bans.cfg именно в папке configs.
Структура и формат записи в bans.cfg
Понимание синтаксиса файла bans.cfg необходимо для корректного редактирования. Каждая запись о бане занимает одну строку и содержит несколько параметров, разделенных пробелами или табуляцией. Первая часть строки — это идентификатор игрока. Это может быть SteamID (например, STEAM_0:1:12345678), IP-адрес (например, 192.168.1.1) или имя пользователя, если бан выдан по нику (что менее надежно).
После идентификатора указывается длительность бана в минутах. Значение 0 означает перманентную блокировку, которая не истечет никогда. Любое другое число указывает на временное ограничение. Следом идет флаг доступа, который обычно равен 0 для обычных банов, но может использоваться для специфических настроек иммунитета, если сервер настроен соответствующим образом.
Обычный бан без особого иммунитета
Перманентный бан, не истечет сам
Уникальный ключ игрока в системе
Завершает строку причина бана и имя администратора, выдавшего наказание. Эти поля важны для модерации, так как позволяют понять контекст блокировки. При ручном удалении бана достаточно стереть всю строку, соответствующую игроку, или поставить в начале строки символ комментария, чтобы деактивировать запись без полного удаления данных. После сохранения файла необходимо выполнить команду sm_reloadbans в консоли сервера.
Особенности плагина Meepo и альтернатив
В сообществах, использующих сборку серверов от Meepo (часто встречающуюся в СНГ сегменте), структура хранения данных отличается от классического SourceMod. Здесь основным файлом для хранения банов является bans.json, расположенный в папке csgo/meepo/configs или csgo/addons/sourcemod/configs/meepo, в зависимости от версии сборки.
Формат JSON более строгий, чем у обычного cfg файла. Он использует фигурные скобки, кавычки для ключей и значений, а также запятые для разделения элементов. Ошибка в синтаксисе, например, пропущенная запятая или лишняя кавычка, может привести к тому, что плагин не сможет прочитать файл и все баны слетят при перезагрузке. Редактировать такой файл нужно с особой осторожностью, желательно используя редакторы с подсветкой синтаксиса JSON.
Плагин Meepo также часто использует базу данных SQLite или MySQL для хранения статистики и логов, но быстрые баны обычно дублируются в файл для скорости обработки. Если вы используете веб-интерфейс управления сервером, интегрированный с Meepo, изменения могут вноситься через базу данных напрямую, минуя текстовые файлы. В таком случае ручное редактирование файла bans.json может быть перезаписано при следующем синхронизации с базой.
Работа с базой данных MySQL и SQLite
На высоконагруженных серверах или сетях серверов, объединенных общей базой данных, информация о банах может не храниться в текстовых файлах вовсе. В этом случае плагин SourceMod настроен на работу с драйвером MySQL. Данные записываются в таблицу sm_bans внутри базы данных, имя которой указано в файле databases.cfg.
Для доступа к таким данным вам потребуется клиент управления базами данных, например, phpMyAdmin или HeidiSQL. Вам необходимо знать логин, пароль и адрес сервера базы данных, которые прописаны в конфигурации. Прямое удаление записей из таблицы sm_bans через SQL-запрос — самый надежный способ снять бан на крупных проектах, где файловое хранилище не используется.
- 1Откройте файл databases.cfg и узнайте имя подключения
- 2Подключитесь к базе данных через SQL-клиент
- 3Найдите таблицу sm_bans и удалите строку с нужным SteamID
Использование SQLite встречается реже, обычно на локальных тестах или небольших серверах. Файл базы данных в этом случае имеет расширение .sqlite и находится в папке data/sourcemod. Редактировать его текстовым редактором нельзя, так как это бинарный формат. Для работы с ним также требуются специальные утилиты или подключение через драйвер SQLite.
Типичные ошибки при поиске и удалении
Самая распространенная ошибка — редактирование файла bans.cfg на работающем сервере без последующей перезагрузки списков. Изменения в файле не вступают в силу мгновенно. Если вы удалили строку из файла, но не ввели команду sm_reloadbans или не перезапустили сервер, игрок останется заблокированным, так как список банов хранится в оперативной памяти процесса сервера.
Вторая частая ошибка — путаница между Immunity (иммунитетом) и баном. Администраторы часто ищут игрока в файле admins_simple.ini, пытаясь снять с него блокировку. Однако этот файл отвечает только за выдачу прав. Если игрока забанили, его там не будет, если только он одновременно не является администратором с высоким иммунитетом, который позволил ему избежать блокировки.
Также стоит учитывать регистр букв в SteamID. Хотя система обычно нормализует идентификаторы, при ручном поиске в большом файле можно пропустить нужную строку, если искать по неполному ID. Всегда используйте полный формат SteamID, включая префикс STEAM_0, чтобы гарантированно найти запись.
Автоматические баны и античит
Помимо ручных банов, выдаваемых администраторами, на сервере могут действовать автоматические системы защиты, такие как VAC (Valve Anti-Cheat) или сторонние античиты (например, GetBans, SCLite). Баны от VAC хранятся на стороне серверов Valve и не отображаются в файлах вашего сервера. Их невозможно снять редактированием конфигов.
Сторонние античиты часто имеют свои собственные файлы конфигурации или базы данных. Например, плагин GetBans может хранить черный список в файле getbans.cfg или подключаться к центральному API. Если игрок заблокирован системой защиты, а в bans.cfg его нет, следует проверить документацию конкретного установленного античита. Обычно такие плагины создают свои папки в директории addons/sourcemod/plugins.
Важно различать кик (kick) и бан. Кик — это временное выдворение игрока с сервером без записи в файл bans.cfg. Если игрок просто вылетел с сообщением о нарушении, но может зайти снова через минуту, значит, запись в файл не производилась. Постоянный бан всегда подразумевает наличие записи в конфигурационном файле или базе данных.
Перенос банов между серверами
При миграции на новый хостинг или объединении серверов возникает необходимость перенести базу банов. Для стандартного SourceMod достаточно скопировать файл bans.cfg со старого сервера на новый в соответствующую папку. Важно убедиться, что на новом сервере не активен плагин, который автоматически очистит файл при старте, если сочтет его формат невалидным.
При переносе между разными типами плагинов (например, с классического SourceMod на Meepo) потребуется конвертация формата. Это можно сделать вручную для небольших списков или с помощью скриптов-конвертеров, которые часто встречаются на форумах разработчиков. При конвертации из CFG в JSON важно сохранить все поля, особенно длительность и причину, чтобы не потерять историю модерации.
Как выбрать действие
После переноса файла обязательно проверьте права доступа к файлу на сервере (chmod). Файл должен быть доступен для записи процессом сервера, иначе при попытке выдать новый бан система выдаст ошибку, а список не обновится. Оптимальные права обычно 644 или 666 в зависимости от настроек безопасности хостинг-провайдера.
Что важно запомнить
Основной файл — bans.cfg в папке configs. После правки нужна команда sm_reloadbans. VAC-баны не редактируются. Внимательно проверяйте синтаксис при ручном изменении.
Где находится файл bans.cfg, если я не вижу папку addons?
Если папки addons нет в корне csgo, возможно, плагин SourceMod не установлен или установлен неправильно. Проверьте, есть ли папка addons в директории cstrike (для CS 1.6) или в корне игрового сервера. Для CS:GO и CS2 путь строго csgo/addons/sourcemod/configs/bans.cfg.
Как снять бан, если я не могу зайти на сервер для ввода команд?
Вам не нужно заходить в игру. Достаточно получить доступ к файловой системе сервера через FTP или панель хостинга. Откройте файл bans.cfg, удалите строку с SteamID игрока, сохраните файл. Затем в панели управления сервером нажмите кнопку "Перезапуск" или выполните команду перезагрузки конфигов через RCON, если он настроен.
Почему после удаления строки из файла игрок все равно не может зайти?
Скорее всего, вы не обновили список банов в памяти сервера. Файл на диске изменен, но сервер продолжает использовать старый список из оперативной памяти. Выполните команду sm_reloadbans в консоли сервера или перезапустите сервер полностью.
Можно ли забанить игрока по имени, а не по SteamID?
Технически это возможно, и запись появится в bans.cfg, но такой бан ненадежен. Игрок может сменить никнейм и обойти блокировку. Кроме того, если на сервере зайдет другой человек с таким же именем, он тоже будет заблокирован. Всегда используйте SteamID для точной идентификации.
Что делать, если файл bans.cfg пуст, а игроки забанены?
Это означает, что ваш сервер использует базу данных (MySQL или SQLite) для хранения банов, а не текстовые файлы. Вам нужно найти файл databases.cfg, узнать параметры подключения к базе данных и удалить запись о бане через SQL-клиент из таблицы sm_bans.