Документация / Сеть и подключение

Игровой шлюз OpenM

Автоматическая маршрутизация, проверка ID, загрузка ресурсов и границы шлюза.

Назначение шлюза

Игровой шлюз — HTTP-вход в сервер через инфраструктуру OpenM. Он получает актуальный адрес одобренного сервера из каталога, проверяет его идентичность и передаёт первоначальные запросы клиента и загрузку ресурсов. Владелец не устанавливает отдельный шлюз на свой компьютер и не прописывает его внутренний порт в server.cfg.

Публикация и транспорт — разные механизмы. Heartbeat сообщает каталогу, что сервер работает. Шлюз обрабатывает запросы подключения. Игровой UDP-трафик по-прежнему должен доходить до игрового сервера: шлюз не заменяет проброс UDP, публичный адрес или сетевые правила хостера.

FXServer → локальная проверка издателем → подписанный heartbeat → каталог
Клиент → HTTPS-шлюз OpenM → HTTP игрового сервера
Клиент → игровой UDP-порт → игровой сервер

Условия автоматического подключения

Проверьте все условия, прежде чем менять конфигурацию:

  1. Карточка принадлежит вам, одобрена модерацией и опубликована.
  2. Адрес в карточке соответствует фактическому публичному игровому адресу. Указывайте игровой порт, а не порт txAdmin.
  3. Издатель отправляет свежие подписанные обновления; сервер отображается доступным в каталоге.
  4. В локальном /info.json сервер сообщает тот же sv_openmServerId, который записан в карточке.
  5. Включён sv_openmAdmission, сохранён действующий ключ доступа этого сервера.
  6. Публичный адрес доступен инфраструктуре OpenM по TCP и игрокам по TCP/UDP.

Подробности выдачи ключей — отдельная статья; сеть проверяется по инструкции NAT.

Адрес подключения

Формат адреса:

https://open-multiplayer.online/game/<SERVER_ID>/

Замените <SERVER_ID> полным идентификатором карточки вида srv_ и 32 шестнадцатеричных символа. Угловые скобки в адрес не входят. Используйте ссылку, которую показывает карточка или клиент: она исключает опечатки и учитывает опубликованные данные.

Для диагностики разрешён запрос:

$serverId = 'srv_REPLACE_WITH_REAL_ID'
$base = "https://open-multiplayer.online/game/$serverId"
$info = Invoke-RestMethod "$base/info.json"
$info.vars | Select-Object sv_openmServerId, sv_openmAdmission

Это проверяет маршрут до игрового HTTP-сервера. Успешный результат не доказывает игровой UDP-сеанс, загрузку всех ресурсов или исправность вашего режима. Полная проверка завершается реальным подключением из клиента.

Какие запросы проходят

Маршрут относительно адреса шлюза Метод Назначение
info.json GET, HEAD Идентификация игрового сервера
client POST Протокол первоначального подключения клиента
files/... GET, HEAD Загрузка ресурсов игровым клиентом

Шлюз не является общим прокси вашего компьютера. Произвольные пути, панель txAdmin, SQL, players.json и dynamic.json через этот адрес не публикуются. Открывать /client в браузере через GET бессмысленно: это другой метод и не игровой handshake. Не копируйте токены клиента в публичные команды проверки.

Проверки безопасности

Шлюз использует адрес из одобренной карточки, проверяет публичность IP и идентичность FXServer. Перенаправления на другой адрес не следуются. Внутренние адреса и неподходящие порты не становятся доступными через шлюз. Если DNS поменялся на локальный адрес, исправьте DNS; отключение проверок не является способом настройки.

Скрытие endpoint в каталоге сохраняется для отображения карточки, но не означает скрытие сетевого адреса от участника игрового соединения. См. защиту данных.

Сообщение «шлюз пока не настроен»

Такое сообщение встречалось в предыдущем интерфейсе. В текущей серверной инфраструктуре маршрут создаётся динамически для подходящей опубликованной карточки. Не нужно добавлять фиктивный параметр шлюза или копировать ключ публикации в поле доступа.

Порядок проверки: обновите страницу карточки; проверьте одобрение и свежий heartbeat; сравните ID из локального info.json с карточкой; проверьте внешний TCP-порт и действительность ключа доступа. Если эти проверки успешны, а карточка продолжает показывать предупреждение, передайте поддержке ID, время и обезличенную ошибку HTTP. Полный ключ и .seed не прикладывайте.

Восстановление после смены адреса

Остановите публикацию старого экземпляра, обновите адрес карточки, завершите повторную модерацию, получите актуальную конфигурацию публикации и примените её через мастер. Проверьте новый NAT и фактический ID. Существующие игровые соединения при переезде могут оборваться; новый маршрут не переносит активный процесс и игровое состояние между компьютерами.

Введите название, параметр или текст ошибки.

Esc — закрыть · Tab — выбрать результат