← Blog

Настройка приватного сервера DayZ: конфигурация и управление

Par Benjamin D. · PDG

· Mis à jour le 8 сентября 2026 г. · Lecture 8 min

Содержание

Настройка сервера DayZ начинается не с модов и не с карты, а с текстового файла serverDZ.cfg и правильной структуры профиля. Если этот этап сделан аккуратно, дальше всё предсказуемо: вайтлист работает, логи пишутся, админские права не утекают, а перезапуски идут по расписанию. Ниже — практический разбор конфигурации, прав доступа и команд управления.



Настройка сервера DayZ: структура файлов и профиль

Серверная часть DayZ — это отдельный билд (DayZServer), который читает конфиг, миссию и папку профиля. Прежде чем менять параметры, нужно понимать, что где лежит:

  • serverDZ.cfg — главный конфиг: имя, слоты, пароли, время, сетевые лимиты, логи.
  • mpmissions/dayzOffline.chernarusplus/ — миссия и экономика: types.xml, events.xml, cfgspawnabletypes.xml, cfgeconomycore.xml, cfggameplay.json.
  • profiles/ — логи (server_console.log, *.ADM, *.RPT), настройки BattlEye, файлы модов админ-инструментов.
  • keys/.bikey подписи модов, без них клиенты с модами не пройдут проверку.
  • mpmissions/.../storage_1/ — персистентность: базы, ящики, машины. Это то, что нужно бэкапить в первую очередь.

Строка запуска задаёт, какой конфиг и какой профиль будут использованы. В панели Pterodactyl это поле стартовых параметров, на «сыром» Linux — команда запуска:

./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles \
  -mod="@CF;@VPPAdminTools" -serverMod="@BuilderItems" \
  -cpuCount=4 -dologs -adminlog -netlog -freezecheck

Флаги -dologs -adminlog -netlog включают запись событий: без них разбирать читеров и дюп-баги практически невозможно. -freezecheck помогает отловить зависания процесса.

Если вы только подбираете площадку под проект и хотите, чтобы файлы миссии, панель управления и автоматические бэкапы уже были на месте, посмотрите хостинг DayZ — оттуда удобно сразу перейти к правке serverDZ.cfg, не тратя вечер на сборку окружения вручную.



serverDZ.cfg: разбор ключевых параметров

Файл читается построчно, каждая строка заканчивается точкой с запятой, значения в кавычках — строки, без кавычек — числа. Ошибка в синтаксисе приводит к тому, что процесс поднимается, но игнорирует часть настроек.

Базовый блок

hostname = "[RU] Hardcore Chernarus | PvE/PvP";
password = "";
passwordAdmin = "SmenaEtogoParolyaObyazatelna";
maxPlayers = 60;
verifySignatures = 2;
forceSameBuild = 1;
disableVoN = 0;
vonCodecQuality = 20;
disable3rdPerson = 0;
disableCrosshair = 1;
instanceId = 1;
steamQueryPort = 2305;
respawnTime = 5;
storageAutoFix = 1;
allowFilePatching = 0;

verifySignatures = 2 обязателен: он требует, чтобы моды клиента были подписаны ключами из папки keys. forceSameBuild = 1 отсекает игроков со старым клиентом после обновления. allowFilePatching = 0 закрывает вход клиентам, запущенным с -filePatching — это базовая гигиена против части читерских сборок; ставить 1 имеет смысл только на тестовой площадке.

Время суток и ускорение

serverTime = "SystemTime";
serverTimeAcceleration = 6;
serverNightTimeAcceleration = 8;
serverTimePersistent = 0;

Формула проста: serverTimeAcceleration = 6 означает, что игровые сутки идут в 6 раз быстрее реальных, то есть полный цикл занимает 4 часа. Ночное ускорение умножается на дневное: при 6 и 8 ночь пролетает в 48 раз быстрее. Для сообществ, играющих вечерами, это компромисс между атмосферой и тем, что половина игроков не любит бегать с фонариком.

serverTime = "2024/06/21/12/00" фиксирует старт в конкретной дате и времени, а serverTimePersistent = 1 сохраняет время суток между перезапусками.

Сеть, пинг и производительность

loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 500;
simulatedPlayersBatch = 20;
multithreadedReplication = 1;
speedhackDetection = 10;
networkRangeClose = 20;
networkRangeNear = 150;
networkRangeFar = 1000;
networkRangeDistantEffect = 4000;
defaultVisibility = 1375;
defaultObjectViewDistance = 1375;
pingWarning = 200;
pingCritical = 250;
MaxPing = 300;
serverFpsWarning = 15;

Эти значения напрямую влияют на нагрузку. networkRangeFar и defaultObjectViewDistance определяют, сколько объектов сервер синхронизирует каждому клиенту: рост этих чисел на населённой карте бьёт по серверному FPS. simulatedPlayersBatch задаёт, сколько игроков обрабатывается за такт — увеличивать стоит только при запасе по CPU.

Важный технический момент: серверный процесс DayZ плохо распараллеливается, поэтому решает не количество ядер, а частота одного ядра и скорость дисковой подсистемы, которая обслуживает персистентность. Платформы на Ryzen с NVMe дают заметно более ровный тик, чем железо с большим числом медленных ядер. То же справедливо и для других проектов на движке Enfusion — например, для Сервер Arma Reforger.

Логи и мониторинг

timeStampFormat = "Short";
logAverageFps = 1;
logMemory = 1;
logPlayers = 1;
logFile = "server_console.log";
adminLogPlayerHitsOnly = 0;
adminLogPlacement = 1;
adminLogBuildActions = 1;
adminLogPlayerList = 1;
enableDebugMonitor = 0;

Файл .ADM в папке профиля — главный инструмент модератора: там видно подключения, смерти, попадания, строительство и установку предметов. Держите adminLogPlayerHitsOnly = 0, чтобы фиксировались все события, а не только урон.

Блок миссии

class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};

Для Livonia указывается dayzOffline.enoch. При переходе на модовую карту имя папки миссии в mpmissions должно совпадать с template символ в символ. Полный список параметров с описанием поддерживает официальная документация Bohemia Interactive.



Вайтлист, права администратора и BattlEye RCon

В DayZ нет встроенной админ-консоли, как в некоторых песочницах. Управление строится на трёх уровнях: пароли в конфиге, BattlEye RCon и, при необходимости, мод админ-инструментов.

Закрытый вход и вайтлист

Самый простой приватный режим — пароль на подключение:

password = "obshchinnyi_parol_2024";

Минус очевиден: пароль расползается по Discord. Полноценный вайтлист реализуют двумя способами:

  1. Через BEC (BattlEye Extended Controls) — во Config.cfg указывается путь к файлу вайтлиста, куда построчно вносятся Steam64 ID или BE GUID игроков. Всё, что не в списке, кикается на подключении.
  2. Через мод админ-инструментов (например, семейство VPPAdminTools на базе Community Framework) — список хранится в JSON в папке профиля и правится прямо через панель, без перезапуска.

Пример структуры файла вайтлиста BEC:

# whitelist.txt
76561198000000001
76561198000000002
76561198000000003

Баны хранятся отдельно: BattlEye пишет их в ban.txt в папке profiles/BattlEye/, формат — GUID или Steam64 ID, при необходимости с длительностью и причиной. После правки файла вручную выполните в RCon команду loadBans, чтобы применить изменения без остановки.

Настройка RCon

Доступ модераторов идёт через BattlEye RCon. Файл profiles/BattlEye/BEServer_x64.cfg:

RConPassword DlinnyiSluchainyiParol_32symbols
RestrictRCon 0
RConPort 2306

Практические правила безопасности, которые экономят нервы:

  • RCon-пароль ≠ passwordAdmin ≠ пароль от панели. Три разных длинных значения.
  • Выдавайте модераторам доступ через под-пользователей панели Pterodactyl с ограниченными правами, а не общий логин.
  • Если сервер живёт на отдельной машине под вашим управлением, закройте лишние порты через ufw, включите fail2ban и заходите по SSH-ключам:
ssh-keygen -t ed25519 -C "dayz-admin"
ufw allow 22/tcp
ufw allow 2302:2306/udp
ufw enable
systemctl enable --now fail2ban

Волюметрические атаки на игровой порт — отдельная история: фильтрация трафика решается на уровне инфраструктуры, у Fly-Serv анти-DDoS включён по умолчанию, так что администратору остаётся только прикладной уровень: пароли, вайтлист, логи.

Админ-инструменты в игре

Телепорт, спавн предметов, невидимость, просмотр карты игроков — это мод, а не функция ванильного билда. Ставится как обычный мод: папка @VPPAdminTools рядом с бинарником, ключ в keys/, добавление в -mod=. Права раздаются через файлы в profiles/VPPAdminTools/, где Steam64 ID привязываются к ролям. Важно: этот мод должен грузиться после @CF, порядок в строке -mod имеет значение.



Команды управления и регулярное обслуживание

Основные команды RCon

КомандаДействие
playersсписок подключённых с ID, пингом и GUID
kick 3 AFK too longотключить игрока по внутреннему ID
ban 3 0 dupingбан навсегда (0) с причиной
bans / loadBansпоказать / перечитать список банов
say -1 Restart in 5 minutesсообщение всем игрокам
#lock / #unlockзакрыть/открыть вход новым игрокам
#shutdownкорректное завершение процесса

Ключевой нюанс: перед остановкой всегда используйте корректное завершение, а не жёсткий kill. Персистентность DayZ сохраняется пачками, и убийство процесса «на горячую» — классическая причина откатов баз и пропавших машин.

Расписание перезапусков

DayZ-серверу полезен перезапуск каждые 3–4 часа: чистится память, корректно пересчитывается экономика лута. Расписание задаётся либо в BEC (Scheduler.xml), либо через задачи в панели. Пример блока предупреждений:

<job id="0">
  <time>003:50:00</time>
  <delay>000:00:00</delay>
  <day>1,2,3,4,5,6,7</day>
  <loop>1</loop>
  <cmd>say -1 Perezapusk cherez 10 minut</cmd>
</job>

Экономика лута и персистентность

Правки лута живут в types.xml: nominal — целевое количество на карте, min — порог для респавна, lifetime — время жизни предмета в секундах, restock — задержка перед повторным спавном. Менять значения нужно небольшими шагами и всегда проверять .RPT на ошибки парсинга: одна незакрытая теговая пара — и экономика не загрузится, а лут исчезнет с карты целиком.

Регламент бэкапов, который реально спасает проект:

  • копия mpmissions/ (включая storage_1) перед каждым обновлением игры или мода;
  • автоматические снапшоты по расписанию, чтобы был откат на несколько точек назад;
  • отдельная копия serverDZ.cfg, BEServer_x64.cfg и списков вайтлиста/банов.

Типовые проблемы

Сервер не появляется в браузере

Проверьте steamQueryPort и открытость UDP-портов 2302–2306. Игровой порт и query-порт — разные вещи, путаница между ними даёт «сервер работает, но его никто не видит».

Игроков выбрасывает при подключении

Почти всегда это несовпадение модов или отсутствующий .bikey при verifySignatures = 2. Сверьте список -mod и содержимое папки keys.

Просадки серверного FPS

Смотрите logAverageFps в консоли. Частые причины: завышенный defaultObjectViewDistance, тяжёлые моды с постоянными скриптовыми циклами, огромные базы игроков. Разбор нагрузки на других играх и движках есть в Блог Fly-Serv, а список поддерживаемых проектов — в разделе Все наши игровые серверы.



Итог

Правильная конфигурация DayZ — это дисциплина, а не магия: аккуратный serverDZ.cfg, включённые логи, разделённые пароли, вайтлист в отдельном файле, расписание перезапусков и бэкап персистентности перед каждым обновлением. Начните с базового набора параметров, меняйте по одному значению за раз и сверяйтесь с .RPT — так вы всегда понимаете, что именно повлияло на поведение мира.



FAQ

Как сделать закрытый вход для сообщества без пароля в конфиге?

Используйте вайтлист. Через BEC достаточно указать путь к текстовому файлу со Steam64 ID и включить проверку: игроки вне списка будут отключаться автоматически. Альтернатива — мод админ-инструментов на базе Community Framework, где список правится через JSON в папке профиля без перезапуска процесса.

Почему после обновления игры моды перестали работать?

При обновлении билда меняются подписи и версии мастерской. Обновите моды, замените .bikey в папке keys, проверьте порядок загрузки в -mod (сначала @CF и зависимости) и убедитесь, что forceSameBuild = 1 не пускает клиентов старой версии. Перед обновлением сохраните копию storage_1.

Как часто перезапускать и почему исчезают постройки?

Оптимально каждые 3–4 часа через планировщик с предупреждениями за 10 и 1 минуту. Постройки чаще всего исчезают из-за жёсткой остановки процесса вместо #shutdown или из-за истёкшего lifetime в types.xml и globals.xml — проверьте оба параметра и включите storageAutoFix = 1.