Как поднять сервер Mordhau: пошаговая инструкция
Если ты искал, как поднять свой сервер Mordhau, а не арендовать чужой слот с чужими банами и рандомными админами — ты на правильном пути. Процесс не сложнее, чем для любого другого дедика на SteamCMD, но у Mordhau своя специфика: два конфига вместо одного, режимы зашиты прямо в название карты, а порт для запросов Steam живёт отдельно от игрового. Разберём всё по шагам — от выбора VPS до сервиса, который переживёт перезагрузку.
Содержание
Системные требования: сколько ресурсов реально нужно
Mordhau — не самая тяжёлая игра для дедика по меркам 2026 года, но и не Terraria: тут физика оружия, коллизии между полусотней бойцов и сетевой снапшот на каждого клиента.
Минимальная планка — 3 ГБ RAM, ниже неё сервер на 16+ слотов начинает подтормаживать уже на второй-третьей карте ротации, когда накапливаются трупы и физические объекты. Дальше ориентируйся так:
| Сценарий | RAM | vCPU | Игроков |
|---|---|---|---|
| Skirmish/Deathmatch, тестовый сервер | 3 ГБ | 2 | до 16 |
| Frontline, стандартная ротация | 4–6 ГБ | 2–3 | до 32 |
| Frontline на полный комплект слотов | 6–8 ГБ | 3–4 | 48–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 три обязательных порта и один опциональный:
| Порт | Протокол | Назначение |
|---|---|---|
| 7777 | UDP | Игровой порт, основной трафик матча |
| 27015 | UDP | Query-порт для браузера серверов Steam |
| 15000 | UDP | Beacon-порт (служебный, используется движком) |
| 7778 (пример) | TCP/UDP | RCON, если включаешь удалённое администрирование |
На 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, запусти снова.