Mordhau: сервер не отображается в браузере серверов
Знакомая ситуация: 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'` |
| 2 | Port/QueryPort верные и не конфликтуют | сверить команду запуска (или ExecStart= в systemd-юните) | ||||
| 3 | Firewall на VPS | ufw status, iptables -L | ||||
| 4 | Firewall хостера / security group | панель управления VPS | ||||
| 5 | Прямое A2S-подключение отвечает | сторонний A2S-чекер или прямое подключение по IP:порту | ||||
| 6 | Индексация Steam | подождать 10-15 минут, сбросить фильтры в браузере | ||||
| 7 | ServerName и 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 применяются на уровне сети и не требуют рестарта самого игрового процесса, но если сомневаетесь — рестарт исключит другие переменные и ничего не сломает.