RE:NODE

Руководства12 мин чтения

Админ-инструменты DayZ и BattlEye RCon

Как настроить BattlEye RCon на сервере DayZ, пользоваться его командами и банами, выбрать RCon-клиент и безопасно поставить админ-мод вроде VPP Admin Tools или COT.

0 прочтений

Ванильный DayZ почти ничего не даёт администратору в игре. Удалённое администрирование обеспечивает BattlEye RCon - он настраивается в BEServer_x64.cfg, к нему подключаются внешним клиентом, и он умеет показывать список игроков, кикать, банить, рассылать сообщения и останавливать сервер, - а всё визуальное (телепорт, наблюдение, спавн предметов, карта с игроками) дают админ-моды вроде VPP Admin Tools или Community Online Tools. В итоге большинство серверов используют и то, и другое: RCon для модерации, которая работает, даже когда никто из админов не в игре, и мод для того, что можно сделать только изнутри мира. В этом руководстве мы настроим первое, разберём его команды и файлы банов, сравним популярные RCon-клиенты и покажем, как добавить админ-мод, не отдав сервер любому, кто прочитает его конфиг.

Если сам сервер ещё не запущен, начните с полного руководства по серверу DayZ; про основной файл конфигурации - статья serverDZ.cfg по строкам.

Три уровня администрирования DayZ#

Прежде чем что-то ставить, полезно понимать, какой инструмент за что отвечает: у каждого свои учётные данные и свой радиус поражения.

УровеньГде настраиваетсяЧто умеет
#login в игреpasswordAdmin в serverDZ.cfgНесколько команд в чате: кик, остановка
BattlEye RConBEServer_x64.cfgИгроки, кики, баны, сообщения, остановка - откуда угодно
Админ-модСобственные файлы мода в папке профилейТелепорт, наблюдение, спавн, лечение, ESP, карта

Внутриигровой уровень почти бесполезен: введите в чат #login и значение passwordAdmin, и вы сможете кикнуть игрока или остановить сервер, но для этого нужно быть подключённым и находиться в мире. Чаще всего вы будете пользоваться RCon. Он работает по сети, с компьютера или телефона, пока сервер заполнен, а вы не играете. Админ-мод - единственный способ увидеть мир и вмешаться в него: игрок застрял в скале, машина провалилась под карту, базу нужно осмотреть после спора.

пароль, командыподписан клиент и сервербаныВыклиент RConАдмин-модменю в игреСервер BattlEyeRCon по UDPСервер DayZигра на UDP 2302Папка профилей.ADM, bans.txt
Кто с кем общается на администрируемом сервере DayZ

Настройка BattlEye RCon#

BattlEye поставляется вместе с сервером и включён по умолчанию. Его рабочая папка создаётся внутри папки профилей, так что при -profiles=profiles в строке запуска это profiles/BattlEye/. Параметр запуска -BEpath= может её переместить - это стоит помнить, когда ищете файл, которого нет там, где обещало руководство.

Настройки RCon хранятся в обычном текстовом файле в этой папке:

profiles/BattlEye/BEServer_x64.cfg
RConPassword a-long-random-password-without-spacesRConPort 2310RestrictRCon 0
СтрокаЧто делает
RConPasswordЕдинственная аутентификация, которая есть у RCon. Без пробелов
RConPortUDP-порт, на котором слушает RCon
RConIPНеобязательно: слушать один адрес вместо всех
RestrictRCon1 разрешает только команды BattlEye, без серверных команд с #

Универсального порта по умолчанию нет. Выберите тот, что реально выделен вашему серверу и не занят ничем другим, - на хостинге с панелью это порт из списка на вкладке Network. Игра использует 2302, query-порт обычно 2305, так что свободный порт из того же выделения - естественный выбор.

На двух деталях часто спотыкаются:

  • Файл копируется при старте. Когда сервер запускается, BattlEye работает с копией под именем BEServer_x64_active_ со случайным суффиксом и удаляет её при штатной остановке. Редактируйте исходный BEServer_x64.cfg при остановленном сервере. Если после падения остались старые файлы _active_, удалите их до следующего запуска, чтобы не гадать, какой из них актуален.
  • RCon работает по UDP. Правило файрвола, открывающее порт только для TCP, ничего не даёт. Если RCon-клиент отваливается по таймауту, а сама игра работает нормально, сначала проверьте протокол.

RestrictRCon 1 - разумная настройка, когда вы даёте RCon модераторам: у них остаются кики, баны и сообщения, но пропадают #shutdown и другие серверные команды. Большинство небольших серверов оставляют 0 и не дают RCon никому, кроме владельцев.

Команды BattlEye RCon#

Это команды, которые отправляет RCon-клиент. Большинство инструментов прячут их за кнопками, но знание исходной формы упрощает работу с любым инструментом и позволяет ввести команду в консоль, когда нужной кнопки нет.

КомандаЧто делает
playersПодключённые игроки: номер, IP, пинг, GUID, имя
adminsПодключённые RCon-клиенты
say -1 <message>Сообщение всем
say <n> <message>Сообщение одному игроку по номеру
kick <n> [reason]Кикнуть игрока с номером n
ban <n> [minutes] [reason]Забанить подключённого игрока, 0 минут - навсегда
addBan <GUID> [minutes] [reason]Бан по GUID, игрок может быть не в сети
bansСписок банов с номерами
removeBan <n>Снять бан с номером n из этого списка
loadBansПеречитать bans.txt после правки
writeBansЗаписать текущий список банов в bans.txt
loadScripts / loadEventsПеречитать файлы фильтров BattlEye
MaxPing <ms>Кикать игроков с пингом выше этого
#lock / #unlockЗакрыть или открыть вход новым игрокам
#shutdownКорректно остановить сервер

Номер игрока n - это номер сессии из вывода players, а не постоянный ID. Он меняется при переподключении, поэтому запускайте players непосредственно перед kick или ban и никогда не действуйте по номеру, который видели несколько минут назад, - слот уже может принадлежать другому человеку.

#lock недооценивают. Если закрыть сервер за несколько минут до перезапуска, люди перестанут заходить в сессию, которая вот-вот закончится, а если закрыть его во время инцидента (читер раз за разом заходит с новых аккаунтов), это даст время разобраться с банами.

GUID, bans.txt и порядок выдачи банов#

BattlEye опознаёт игроков по GUID - 32-символьному шестнадцатеричному значению, которое вычисляется из SteamID64. Это не SteamID, и в профиле Steam его не увидеть. Надёжно получить его можно из players, из раздела BattlEye в логе сервера или из RCon-инструмента, который записывает каждое подключение.

Баны хранятся в bans.txt в папке BattlEye, по одному на строку:

profiles/BattlEye/bans.txt
0123456789abcdef0123456789abcdef -1 Cheating - aimbot, evidence in #bansfedcba9876543210fedcba9876543210 1767225600 Racism in global chat, 7 days

Второе поле - -1 для перманентного бана или Unix-время, когда бан истекает. Остаток строки - причина, которую игрок видит при кике, так что пишите то, что вам не стыдно будет увидеть процитированным в споре в Discord.

Порядок, при котором баны можно обосновать:

  1. Перед баном найдите доказательства: админ-лог .ADM в папке профилей записывает подключения, убийства с оружием и дистанцией, попадания и позиции. Бан без отметки времени из этого файла - бан, который вы потом не сможете объяснить.
  2. Баньте с причиной, в которой указано правило и где лежат доказательства.
  3. Если правите bans.txt вручную, после этого выполните loadBans. Если баните через RCon, выполните writeBans, если ваш инструмент не делает этого сам, чтобы файл и память совпадали.
  4. Храните копию bans.txt в своих backup. Если потерять её после переустановки, все пойманные читеры окажутся разбанены.

У DayZ есть и собственный ban.txt с SteamID64, который читает сервер, а не BattlEye. Большинство сообществ пользуются списком BattlEye, потому что RCon-инструменты управляют им напрямую; использовать оба можно, если вся команда знает, какой из них главный. Человеческая сторона вопроса описана в статье правила сервера, модерация и персонал - письменные правила и возможность обжалования важнее инструмента.

Выбор RCon-клиента#

Подойдёт любой клиент, который понимает протокол BattlEye RCon. Распространённые варианты делятся на три группы:

  • Настольные клиенты. DaRT (DayZ RCon Tool) - давний клиент для Windows: список игроков, лог чата, кнопки кика и бана, управление списком банов. Он работает на вашем компьютере, поэтому подключён только пока компьютер включён.
  • Облачные сервисы. BattleMetrics RCON и CFTools Cloud подключаются к вашему серверу со своей инфраструктуры и остаются подключёнными, что даёт постоянную историю игроков, общие списки банов для нескольких серверов, сообщения и перезапуски по расписанию и журнал того, кто из персонала что сделал. Это стандартный выбор для публичных серверов с несколькими модераторами. У обоих есть бесплатные тарифы и платные функции; проверяйте их актуальные условия.
  • Боты для Discord. Несколько ботов оборачивают RCon, чтобы модераторы могли кикать и банить прямо из канала. Удобно, но это ещё и способ отдать пароль RCon стороннему сервису, о котором вы знаете меньше. Относитесь к этому соответственно.

Что бы вы ни выбрали, пароль RCon оказывается у этого инструмента. Если вы пользуетесь облачным сервисом, у него есть учётные данные, которые позволяют управлять вашим сервером, - выбирайте сервис с репутацией и давайте ему только пароль RCon, а не аккаунт, которому принадлежит сервер. Для доступа персонала к файлам и консоли отдельный аккаунт в панели для каждого человека с минимально нужными правами безопаснее одного общего логина - об этом статья субпользователи и минимальные привилегии. На RE:NODE это раздел людей в панели: роли содержат права, команды содержат людей, а у каждого сервера есть журнал активности, так что модератору можно дать доступ к консоли без доступа к файлам и оплате.

Админ-моды в игре#

Админ-мод добавляет в игру меню для тех, кто есть в его списке администраторов: телепорт, наблюдение, свободная камера, спавн предметов и машин, лечение, ремонт, игроки на карте, удаление объектов. Широко используются два.

VPP Admin Tools

VPP Admin Tools (папка @VPPAdminTools) - самодостаточное админ-меню. Это клиентско-серверный мод, поэтому он указывается в -mod=, а его .bikey кладётся в папку keys сервера, как и любой другой. После первого запуска он записывает конфигурацию в папку профилей, включая список суперадминов по SteamID64:

profiles/VPPAdminTools/Permissions/SuperAdmins/SuperAdmins.txt
76561198012345678

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

Community Online Tools

Community Online Tools (COT) - второй распространённый вариант. Он зависит от Community Framework, так что порядок такой: -mod=@CF;@Community-Online-Tools;..., и оба ключа нужно скопировать. Роли и права по игрокам записываются в папку профилей при первом запуске. COT популярен на модовых серверах, потому что с ним интегрируются многие другие моды на базе CF.

Правила для любого админ-мода

  • Ставьте его на сервер осознанно, а не по прихоти. Любой админ-мод - это привилегированный скрипт, работающий на вашем сервере. Устанавливайте его только из официального элемента Workshop, никогда из перезалива.
  • Выдавайте права по ролям. Спавн предметов - право, которым персонал злоупотребляет чаще всего и которое игроки замечают первым. Оставьте его владельцам.
  • Логируйте действия администраторов. Оба мода пишут логи действий администраторов в папку профилей. Иногда читайте их - только так вы узнаете, что модератор спавнил снаряжение друзьям.
  • Будьте готовы к задержке обновлений. После патча DayZ админ-моды нужно обновлять, как и любые другие, и пока этого не случилось, у вас может остаться только RCon. Это ещё одна причина сначала как следует настроить RCon. Порядок действий описан в статье что делать, когда обновление мода всё сломало.

Логи: где лежат доказательства#

Администрирование - это в основном чтение. Файлы в папке профилей отвечают почти на любой вопрос, который вам зададут:

ФайлЧто в нём
*.ADMПодключения, убийства, попадания, позиции, установка объектов, строительство
*.RPTВывод движка и скриптов, ошибки, проблемы с модами
server_console.logТо, что выводила консоль, имя задаёт logFile
Логи в BattlEye/Кики по скриптам и фильтрам, активность RCon
Логи админ-модаКаждое действие через меню мода

Что попадает в файл .ADM, зависит от ключей adminLog* в serverDZ.cfg. Включите логирование установки объектов и строительства, если следите за правилами рейдов; без них спор о рейде превращается в слово одного игрока против слова другого.

Эти файлы растут без ограничений. Ежедневная задача по расписанию, удаляющая логи старше нескольких недель, не даёт диску заполниться, а копирование нужных логов в backup перед этим сохраняет доказательства. Забрать их с сервера можно через файловый менеджер панели или по SFTP; оба способа описаны в статье SFTP и файловый менеджер.

Сообщения и перезапуски по расписанию#

RCon-инструменты умеют рассылать предупреждения о перезапуске, но в DayZ есть и встроенный способ: db/messages.xml в папке миссии. Каждая запись может повторяться с интервалом или отсчитывать время до остановки:

mpmissions/dayzOffline.chernarusplus/db/messages.xml
<messages>    <message>        <deadline>180</deadline>        <shutdown>1</shutdown>        <text>Server restarts in #tmin minutes.</text>    </message>    <message>        <repeat>30</repeat>        <text>Rules and Discord: example.gg/server</text>    </message></messages>

deadline - минуты после старта, shutdown заставляет сервер остановиться, когда срок наступает, а #tmin заменяется числом оставшихся минут. На хостинге, который автоматически перезапускает остановившийся сервер, или с планировщиком, который его снова запускает, это даёт чистый трёхчасовой цикл с предупреждениями целиком на файлах миссии. Прежде чем на это полагаться, сверьте точные имена элементов с messages.xml из вашей сборки.

Альтернатива - запускать перезапуски из панели. На RE:NODE вкладка Schedules принимает cron-выражение и упорядоченный список задач с задержками, так что одно расписание может отправить #lock и предупреждение через консоль, сделать backup и перезапустить сервер. Как часто это имеет смысл, описано в статье расписания перезапусков, которые помогают; для DayZ в сообществе принято перезапускать каждые три-четыре часа.

Защита всей схемы#

Чеклист, в порядке важности:

  1. Разные пароли для passwordAdmin, RConPassword и аккаунта в панели. Ничего общего, ничего повторно использованного из других мест.
  2. Смена пароля RCon каждый раз, когда из персонала уходит человек с доступом.
  3. `RestrictRCon 1`, если модераторы подключаются своими инструментами и не должны иметь возможности остановить сервер.
  4. Права в админ-моде по ролям, спавн предметов - не для всех.
  5. Двухфакторная аутентификация для аккаунта в панели. Кто контролирует панель, тот контролирует все файлы, включая BEServer_x64.cfg. Двухфакторная защита аккаунта в панели занимает пять минут.
  6. Backup, включающие папку профилей, чтобы баны и настройки администрирования пережили переустановку.

Если что-то всё же пошло не так - аккаунтом администратора злоупотребили, пароль RCon утёк, - в статье что делать, если сервер взломали описан порядок локализации: сначала смените учётные данные, потом выясняйте, что было сделано.

FAQ#

Где лежит BEServer_x64.cfg на сервере DayZ?

В папке BattlEye внутри каталога профилей, то есть profiles/BattlEye/BEServer_x64.cfg при -profiles=profiles. Если его там нет, проверьте, нет ли параметра запуска -BEpath=, который его перемещает, а если файла ещё не существует, создайте его сами.

Почему RCon-клиент подключается, но отваливается по таймауту?

Обычно порт указан неверно, не выделен серверу или открыт для TCP, хотя RCon работает по UDP. Также проверьте, что вы правили исходный конфиг при остановленном сервере, а не устаревшую копию _active_.

Как забанить игрока, который не в сети?

Используйте addBan с его GUID в BattlEye, длительностью в минутах (0 - навсегда) и причиной. GUID можно найти в истории вашего RCon-инструмента или в логах сервера за время его последнего подключения.

GUID в BattlEye - это то же самое, что SteamID?

Нет. Он вычисляется из SteamID64, но это другое значение. Баны в bans.txt используют GUID; вайтлисты и большинство админ-модов используют SteamID64.

Нужен ли вообще админ-мод?

Для модерации - нет, кики, баны и сообщения покрывает RCon. Мод нужен для всего, что происходит внутри мира: телепорта, наблюдения, помощи застрявшим игрокам или машинам, осмотра баз. Большинство публичных серверов его используют, но доступ к нему есть у узкого круга.

Можно ли дать модераторам RCon без возможности остановить сервер?

Да. Установите RestrictRCon 1 - это ограничит RCon-клиентов командами BattlEye и заблокирует серверные команды с #, такие как #shutdown.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000