MAATRIX GAMES / Блог / Mordhau: сервер не отображается в браузере серверов

Mordhau: сервер не отображается в браузере серверов

MAATRIX GAMES

Знакомая ситуация: MordhauServer.sh висит в процессах, в консоли нет ни одной ошибки, а в браузере серверов игры вашего сервера просто нет — ни по имени, ни по IP через фильтр. Игроки не могут его найти, а вы не понимаете, где искать проблему: то ли порт не тот, то ли firewall режет трафик, то ли сервер просто ещё не успел зарегистрироваться. Это одна из самых частых проблем при первом запуске Mordhau, и почти всегда дело в одной из четырёх вещей: неверные параметры запуска, закрытый порт, задержка индексации в Steam или более тонкая проблема с самой записью сервера. Разберём по порядку — от самой частой причины к самой редкой.

Шаг 1: убедитесь, что процесс жив и слушает нужные порты

Прежде чем разбираться с firewall и индексацией, проверьте базовые вещи. Процесс сервера должен быть запущен и не падать сразу после старта:

ps aux | grep Mordhau

Если процесса нет — сервер упал при старте, и разбираться нужно с логом запуска, а не с видимостью в браузере. У Mordhau на Linux лог лежит рядом с конфигами:

tail -100 /home/mordhau/server/Mordhau/Saved/Logs/Mordhau.log

Частые причины краша на старте — занятый порт другим процессом на этом же хосте, недокачанные файлы после прерванного app_update в SteamCMD или синтаксическая ошибка в Game.ini после ручной правки (напомню: конфиг можно редактировать только при остановленном сервере — иначе Mordhau перезапишет ваши правки версией из памяти при следующем штатном завершении).

Если процесс жив, проверьте, что порты реально слушаются:

ss -uln | grep -E '7777|27015|15000'

Ожидаете увидеть все три UDP-порта: 7777 (игровой), 27015 (query, именно он отвечает за видимость в браузере) и 15000 (beacon, служебный порт движка). Если в выводе не хватает 27015 — дальше можно не гадать, проблема почти наверняка на этом шаге или в параметрах запуска из шага 2.

Шаг 2: параметры запуска — Port и QueryPort

Самая частая причина невидимости сервера — не firewall, а путаница с параметрами запуска. У Mordhau игровой порт и порт опроса — два разных значения, оба обязаны быть заданы и не конфликтовать с другими сервисами на хосте:

./MordhauServer.sh FL_Grad -log -Port=7777 -QueryPort=27015 -Beaconport=15000
  • -Port — игровой порт (UDP), по нему клиенты обмениваются трафиком матча после подключения.
  • -QueryPort — порт опроса (UDP), именно по нему Steam-клиент запрашивает у сервера имя, число игроков, текущую карту — всё, что вы видите строкой в браузере серверов. Если QueryPort закрыт или указан неверно, сервер может прекрасно принимать игроков по прямому подключению, но в списке его не будет никогда.
  • -Beaconport — не участвует напрямую в опросе A2S, но часть служебной сетевой логики движка; лучше держать открытым и заданным явно, чтобы не ловить побочные проблемы с подключением через матчмейкинг-компоненты.

Частые ошибки на этом шаге:

  • QueryPort совпадает с портом другого сервера на этом же хосте. Если на одной машине крутится несколько игровых серверов (второй инстанс Mordhau, Rust, CS2), порты могут пересекаться молча — один процесс перехватывает трафик, второй просто не отвечает на опрос.
  • Значение в команде запуска расходится с systemd-юнитом. Если правили -Port/-QueryPort руками в консоли для теста, а systemd-сервис использует старые значения из ExecStart= — на следующем перезапуске сервер вернётся к прежним портам, и все правки как будто "слетят".
  • Порт из зарезервированного или уже занятого диапазона. Не берите значения ниже 1024, а перед запуском проверьте, что порт свободен: ss -uln | grep 27015 не должен ничего показывать до старта сервера.

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

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

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

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

Шаг 3: firewall — VPS и сеть хостера

Если с параметрами всё верно, а сервера всё равно нет в списке — в большинстве случаев виноват firewall, причём часто не тот, о котором думаешь в первую очередь. Проверяем локально на VPS:

sudo ufw status verbose

Должны быть разрешены все три порта:

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

Если используете iptables напрямую, а не ufw:

sudo iptables -L -n | grep -E '7777|27015|15000'

Но локальный firewall — это только половина картины. Даже при полностью открытых портах внутри гостевой ОС трафик может резаться на уровне сети хостера — отдельный network-level firewall или security group, никак не связанная с ufw внутри сервера и по умолчанию часто блокирующая всё, кроме SSH. Проверьте в панели управления VPS: обычно там отдельная вкладка вроде "Firewall" или "Security Group" со своим списком разрешённых портов. Забытое правило именно здесь — классика: сервер отвечает на localhost, ufw молчит, а снаружи UDP-пакеты просто не доходят.

Проверить доступность порта снаружи проще всего сторонним UDP-чекером по внешнему IP сервера — если он показывает 27015 закрытым при разрешающих правилах и в ufw, и внутри ОС, значит режется на уровне сети хостера, и разбираться нужно с провайдером, а не с конфигом игры. Общий разбор проброса портов и типичных граблей с firewall на игровых серверах — в отдельном гайде: настройка портов и firewall для игрового сервера, а если сомневаетесь именно в проброшенности — пройдитесь по чек-листу порт не проброшен: как проверить и исправить.

Отдельно стоит помнить про NAT: если VPS не имеет прямого публичного IP, а сидит за NAT-шлюзом (редко, но встречается на некоторых бюджетных тарифах), правил firewall внутри гостевой ОС недостаточно — нужен ещё и проброс на уровне самого шлюза. Уточняйте у хостера тип сети, если не уверены.

Шаг 4: задержка индексации Steam и кэш браузера серверов

Даже при абсолютно верной конфигурации сервер не появляется в браузере мгновенно. Регистрация в общем списке через Steam — процесс не мгновенный:

  • Первое появление после старта — ориентировочно от нескольких минут до 10-15 минут, точный интервал не гарантирован и зависит от нагрузки на инфраструктуру Steam в моменте.
  • После смены параметров запуска (порта, имени сервера) старая запись может провисеть в кэше клиента ещё какое-то время — обновите список вручную и подождите, прежде чем считать это багом.
  • Фильтры в самом браузере серверов (регион, наличие пароля, режим, версия игры) иногда скрывают сервер сильнее, чем кажется — сбросьте все фильтры и поищите сервер по имени через поиск, а не листая общий список вручную.

Проверить, что сервер реально отвечает на опрос, можно не дожидаясь общего списка — подключитесь напрямую по IP и игровому порту через консоль игры или используйте отдельный инструмент опроса Steam-сервера по протоколу A2S, который покажет имя, карту и число игроков без похода в общий браузер. Если A2S-запрос отвечает корректно — с сервером всё в порядке, дело только в задержке индексации самого браузера, и стоит просто подождать.

Шаг 5: сервер отвечает, а в списке всё равно нет

Отдельный и не такой редкий случай: прямое подключение по IP работает, A2S-опрос отвечает корректными данными — а в общем браузере серверов сервера всё равно нет. Здесь стоит проверить несколько более тонких вещей:

  • ServerName в Game.ini пустой или состоит только из спецсимволов. Секция [/Script/Mordhau.MordhauGameSession] должна содержать читаемое имя — некоторые клиенты отфильтровывают записи с пустым или "мусорным" названием.
  • ServerPassword задан, а игрок ищет без учёта пароля. Если часть игроков включила в браузере фильтр "без пароля" по умолчанию, закрытый сервер с непустым ServerPassword просто не попадёт в их выдачу — это не баг, а штатное поведение.
  • Дублирующийся QueryPort с другим уже зарегистрированным сервером в кэше индекса — если пара IP:порт недавно принадлежала другому серверу и старая запись ещё не протухла, возможна временная коллизия.
  • Версия сборки сервера расходится с версией клиента после недавнего патча игры. Если сервер не обновлён вовремя (или наоборот, обновлён раньше основной массы клиентов), часть игроков может не увидеть его из-за фильтра совместимости версий.

Если ни один из пунктов не объясняет проблему — остановите сервис, пересоберите команду запуска с нуля (скопировав рабочие значения портов из шага 2) и перезапустите через systemd, а не просто "на живую". Часть параметров Mordhau подхватывает только при холодном старте процесса.

Чек-лист диагностики по порядку

Для быстрой проверки — пройдите шаги именно в этом порядке, не перепрыгивая:

ШагЧто проверяемКоманда/действие
1Процесс жив, порты слушаются`ps aux \grep Mordhau, ss -uln \grep -E '7777\27015\15000'`
2Port/QueryPort верные и не конфликтуютсверить команду запуска (или ExecStart= в systemd-юните)
3Firewall на VPSufw status, iptables -L
4Firewall хостера / security groupпанель управления VPS
5Прямое A2S-подключение отвечаетсторонний A2S-чекер или прямое подключение по IP:порту
6Индексация Steamподождать 10-15 минут, сбросить фильтры в браузере
7ServerName и ServerPassword в Game.iniоткрыть конфиг при остановленном сервере

Если сервер отвечает по A2S, но в общем списке всё равно нет после 20-30 минут ожидания — почти наверняка это временная задержка на стороне Steam, а не ошибка в конфигурации; дайте ей ещё немного времени и проверьте снова. Для более глубокой диагностики изнутри — через RCON или внутриигровые админ-команды — пригодится отдельный разбор: RCON: подключение и основные команды, а если проблема оказалась не в видимости, а в самих крашах или ошибках на старте — смотрите логи и краш-репорты: как читать и искать причину.

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

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

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

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

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

Нет, это обратная ситуация: если сервер виден, значит QueryPort работает, а проблема в игровом Port — проверьте его отдельно теми же методами (firewall, конфликт с другим процессом).

Обязательно ли открывать RCON-порт (7778 в примере из базового гайда), если не пользуетесь RCON?

Нет, на видимость в браузере серверов RCON не влияет — это отдельный канал администрирования, никак не связанный с протоколом опроса A2S.

Помогает ли смена QueryPort на нестандартный, если сервер долго не появляется?

Сама по себе нет — если причина в firewall или в задержке индексации, смена номера порта её не решит, а только сбросит текущий прогресс регистрации и добавит новую задержку.

Как быстро понять, что дело именно в firewall, а не в самой игре?

Проверьте 27015/udp сторонним UDP-чекером снаружи сети — если он показывает порт закрытым при разрешающих правилах и в ufw, и в security group хостера, проблема на уровне сети, а не в игровом сервере.

Нужно ли перезапускать сервис после каждого изменения правил firewall?

Обычно нет — правила firewall применяются на уровне сети и не требуют рестарта самого игрового процесса, но если сомневаетесь — рестарт исключит другие переменные и ничего не сломает.