MAATRIX GAMES / Блог / Как поднять сервер Mordhau: пошаговая инструкция

Как поднять сервер Mordhau: пошаговая инструкция

MAATRIX GAMES

Если ты искал, как поднять свой сервер Mordhau, а не арендовать чужой слот с чужими банами и рандомными админами — ты на правильном пути. Процесс не сложнее, чем для любого другого дедика на SteamCMD, но у Mordhau своя специфика: два конфига вместо одного, режимы зашиты прямо в название карты, а порт для запросов Steam живёт отдельно от игрового. Разберём всё по шагам — от выбора VPS до сервиса, который переживёт перезагрузку.

Системные требования: сколько ресурсов реально нужно

Mordhau — не самая тяжёлая игра для дедика по меркам 2026 года, но и не Terraria: тут физика оружия, коллизии между полусотней бойцов и сетевой снапшот на каждого клиента.

Минимальная планка — 3 ГБ RAM, ниже неё сервер на 16+ слотов начинает подтормаживать уже на второй-третьей карте ротации, когда накапливаются трупы и физические объекты. Дальше ориентируйся так:

СценарийRAMvCPUИгроков
Skirmish/Deathmatch, тестовый сервер3 ГБ2до 16
Frontline, стандартная ротация4–6 ГБ2–3до 32
Frontline на полный комплект слотов6–8 ГБ3–448–64
Несколько инстансов на одной машине10+ ГБ4+по потребности

Это ориентир, не результат замера под нагрузкой — конкретное потребление зависит от того, сколько игроков реально держат бой одновременно и насколько часто крутится ротация. Диск — SSD/NVMe, сама игра весит порядка 10–15 ГБ, и медленный HDD ощутимо тормозит загрузку карты при рестарте матча.

Установка сервера через SteamCMD

Дедик Mordhau качается через SteamCMD с app id 629800, отдельным анонимным логином — покупать игру не нужно.

Ставим зависимости на Debian/Ubuntu и сам SteamCMD:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

Удобнее всего гонять установку и обновления через runscript — так меньше шансов опечататься в параметрах:

cat > ~/steamcmd/update_mordhau.txt << 'EOF'
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
force_install_dir /home/mordhau/server
login anonymous
app_update 629800 validate
quit
EOF

./steamcmd.sh +runscript update_mordhau.txt

Первая закачка — порядка 10 ГБ, на среднем канале VPS это 10–20 минут. Тот же runscript пригодится и для будущих обновлений — просто перезапускаешь его после каждого патча игры.

Поднять сервер Mordhau за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Первый запуск и структура конфигов

После установки в /home/mordhau/server появляется исполняемый скрипт MordhauServer.sh, а сами конфиги на Linux лежат в /home/mordhau/server/Mordhau/Saved/Config/LinuxServer/. Проблема в том, что при первой установке этой папки ещё нет — Game.ini и Engine.ini создаются только после первого запуска сервера.

Запускаем разово, чтобы сгенерировать конфиги:

cd /home/mordhau/server
./MordhauServer.sh -log

Дай серверу подняться (в консоли будет видно загрузку карты по умолчанию), затем останови его через Ctrl+C. Важный нюанс, о который спотыкаются почти все: редактировать Game.ini можно только при остановленном сервере. Если менять файл на лету, при следующем штатном завершении процесс перезапишет его той версией настроек, что была у него в памяти на старте — все твои правки молча пропадут.

Game.ini: имя сервера, слоты, пароли

Открываем конфиг:

nano /home/mordhau/server/Mordhau/Saved/Config/LinuxServer/Game.ini

Секция [/Script/Mordhau.MordhauGameSession] отвечает за общие параметры сессии:

[/Script/Mordhau.MordhauGameSession]
ServerName=Мой первый Mordhau-сервер
MaxSlots=32
ServerPassword=
AdminPassword=смени_меня
RconPassword=ещё_один_сложный_пароль
RconPort=7778

ServerPassword оставь пустым для паблика, заполни — если хочешь закрытый сервер под свою тусовку. AdminPassword даёт доступ к внутриигровым админ-командам, RconPassword/RconPort — отдельный доступ по RCON-протоколу для внешних инструментов (например, ботов модерации или веб-панелей). Оба пароля — не дефолтные и не пустые, иначе сервер довольно быстро найдут и начнут баловаться чужими правами.

Секция [/Script/Mordhau.MordhauGameMode] отвечает за игровую механику и respawn-таймеры:

[/Script/Mordhau.MordhauGameMode]
PlayerRespawnTime=5.000000
DamageFactor=1.000000
TeamDamageFactor=0.500000

TeamDamageFactor — это множитель урона по своим (0.5 — половинный тимдамаг, 0 — выключен полностью), актуально в первую очередь для Team Deathmatch и Frontline, где команда важна.

Режимы игры и ротация карт: Frontline, Skirmish, Deathmatch

В Mordhau режим не задаётся отдельным полем — он зашит прямо в префикс имени карты внутри MapRotation. Основные префиксы:

ПрефиксРежим
FL_Frontline — основной командный режим с фронтом и техникой
SKM_Skirmish — компактные раунды, меньше карта, быстрее темп
FFA_Deathmatch (Free-For-All) — каждый сам за себя
TDM_Team Deathmatch — команда на команду без объектов
INV_Invasion — атака/защита с волнами
HRD_Horde — кооператив против ботов
BR_Battle Royale

Ротация задаётся построчно в той же секции [/Script/Mordhau.MordhauGameMode]:

MapRotation=FL_Grad
MapRotation=SKM_Contraband
MapRotation=FFA_ThePit
MapRotation=TDM_Camp
MapRotation=FL_MountainPeak
MapRotation=SKM_Taiga

Если хочешь сервер строго под один режим (например, только Frontline для клановых тренировок) — просто оставь в ротации карты только с нужным префиксом. По умолчанию после каждого матча игрокам показывается голосование за следующую карту; если хочешь линейную ротацию без голосования, добавь bDisableMapVote=True в ту же секцию.

Стартовую карту и режим также можно передать прямо в команде запуска — об этом ниже, в блоке про автозапуск.

Кстати, если параллельно держишь ещё и тактический шутер вроде Insurgency — принцип с объектными режимами там устроен иначе, не путай логику ротации между играми.

Порты, firewall и RCON

У Mordhau три обязательных порта и один опциональный:

ПортПротоколНазначение
7777UDPИгровой порт, основной трафик матча
27015UDPQuery-порт для браузера серверов Steam
15000UDPBeacon-порт (служебный, используется движком)
7778 (пример)TCP/UDPRCON, если включаешь удалённое администрирование

На VPS с белым IP проброс — это открытие портов в firewall самой машины, роутер тут ни при чём:

sudo ufw allow 7777/udp
sudo ufw allow 27015/udp
sudo ufw allow 15000/udp
sudo ufw reload

RCON-порт я бы не открывал на весь интернет — если пользуешься RCON-ботом или панелью, ограничь доступ конкретным IP:

sudo ufw allow from ТВОЙ_IP to any port 7778

Если нужно поднять несколько серверов на одной машине — меняй все три порта разом (например, 7780/27016/15001 для второго инстанса) и передавай их через параметры запуска:

./MordhauServer.sh FL_Grad -log -Port=7780 -QueryPort=27016 -Beaconport=15001

Проверить, что порт реально слушается:

ss -uln | grep 7777

Если строки нет — сервер либо не стартовал, либо упал сразу после запуска, смотри вывод консоли или лог.

Автозапуск через systemd

Ручной запуск через ./MordhauServer.sh теряется при перезагрузке VPS или падении процесса — нужен systemd-юнит. Заведи отдельного непривилегированного пользователя под сервер (не гоняй дедик от root) и создай файл:

sudo nano /etc/systemd/system/mordhau.service

Содержимое:

[Unit]
Description=Mordhau Dedicated Server
After=network.target

[Service]
User=mordhau
WorkingDirectory=/home/mordhau/server
ExecStart=/home/mordhau/server/MordhauServer.sh FL_Grad -log -Port=7777 -QueryPort=27015 -Beaconport=15000
Restart=on-failure
RestartSec=15
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

Регистрируем и включаем:

sudo systemctl daemon-reload
sudo systemctl enable --now mordhau.service
sudo systemctl status mordhau.service

Логи после этого удобнее смотреть через journalctl -u mordhau -f, а не держать открытый терминал с консолью сервера. Restart=on-failure подхватит процесс после случайного краша, но если сервер не поднимается из-за кривого Game.ini (например, синтаксическая ошибка после ручной правки), systemd будет честно пытаться перезапускать его по кругу — в этом случае сразу лезь в лог, а не жди, что само пройдёт.

Похожий подход к systemd-юниту разбирается и в гайде по Team Fortress 2 — если параллельно держишь Source-сервер, структура юнита будет почти зеркальной, разница в основном в пути к бинарнику.

Поднять сервер Mordhau за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Почему после правки Game.ini настройки не применились?

Скорее всего, ты редактировал файл при работающем сервере — Mordhau перезаписывает конфиг своей версией из памяти при штатном завершении процесса. Останови сервис, поправь файл, запусти заново.

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

Да, просто меняешь набор карт в MapRotation на нужные префиксы (FL_, SKM_, FFA_, TDM_ и так далее) и перезапускаешь сервис — переустановка не нужна.

Обязательно ли включать RCON?

Нет, это опциональная функция для внешних инструментов управления (боты, веб-панели). Без RconPassword/RconPort в конфиге сервер прекрасно работает и без RCON, администрируешь его через AdminPassword внутри игры.

Сколько игроков реально тянет один Frontline-матч на среднем VPS?

Точных цифр без замера под конкретную сборку не назову — сильно зависит от карты и того, сколько объектов активно на поле боя одновременно, но конфигурация из таблицы на 4–6 ГБ и 2–3 vCPU обычно комфортно держит полный Frontline на 32 слота.

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

Останови сервис (systemctl stop mordhau), прогони тот же update_mordhau.txt через steamcmd, запусти снова.