Перейти к содержанию

Порты Valheim и NAT: почему домашний сервер недоступен извне

Как отличить игровой UDP-порт от Steam Query, проверить прямое подключение из LAN и интернета и понять ограничения CGNAT.
Версия не проверена

Сначала проверьте, запущен ли выделенный сервер с -crossplay. Без этого параметра игрок подключается напрямую через Steam, а с ним используется промежуточный relay. Проброс портов для прямого режима не заменяет настройку подключения через Crossplay.

Игровой порт и Steam Query — разные вещи

Назначение · Порт · Протокол
НазначениеПортПротокол
Игровое подключение2456 или -portUDP
Steam Query, включая A2S2457 или -port + 1UDP
Внутренний Steamworks APIСлучайный высокий порт на 127.0.0.1TCP; не пробрасывать в интернет.

Ответ A2S подтверждает работу запроса информации о сервере, а не игрового входа. При другом значении -port Query-порт сдвигается вместе с ним: прибавьте один. Проверка только TCP также не подтверждает доступность игрового UDP.

Проверка прямого подключения

  1. Проверьте фактический -port и отсутствие -crossplay, прежде чем разбирать прямой вход.
  2. Дождитесь загрузки мира. В журнале сервера проверьте строки Zonesystem Start и DungeonDB Start: состояние Start означает готовность этих подсистем.
  3. Сверьте версии игры и выделенного сервера: несовпадение мешает входу.
  4. Проверьте подключение по LAN-адресу из своей сети, затем по внешнему IPv4 и игровому порту из другой сети.
  5. Если LAN работает, а внешний вход нет, проверьте входящие UDP-правила компьютера и NAT-проброс игрового и Query-порта на LAN-адрес сервера.

Valheim Dedicated Server не выполняет автоматический проброс через UPnP или NAT-PMP. В прямом режиме правила NAT остаются задачей владельца сети. Не открывайте случайный внутренний TCP-порт Steamworks и не отключайте защиту сети целиком ради проверки.

Как распознать ограничение выше роутера

Сравните WAN IPv4 в интерфейсе роутера с внешним IPv4, видимым в интернете. Несовпадение — признак дополнительного NAT, но само по себе не доказывает конкретную схему. Уточните у провайдера наличие CGNAT и возможность получить отдельный публичный IPv4.

При CGNAT домашний проброс не создаёт входящее правило на оборудовании провайдера. Для прямого доступа может понадобиться публичный IPv4 или другое размещение сервера. Стоимость и доступность адреса зависят от провайдера; универсальной цены нет.

Что проверять в Crossplay

Crossplay связывает сервер и игроков через relay. Для входа используют Join Code либо внешний IPv4 и игровой порт как идентификатор relay. Loopback или LAN-адрес не заменяют этот путь: в описанном режиме сервер не принимает входящие игровые пакеты напрямую от игроков.

Relay помогает работать за NAT, но добавляет сетевой переход. Задержки и разрывы после успешного входа не доказывают закрытый входящий порт. Источник также описывает конфликт регистрации за CGNAT, когда серверы на одном внешнем IPv4 выбирают одинаковый игровой порт; в таком случае можно изменить -port.

Порядок действий по результату

Что наблюдается · Что проверить дальше
Что наблюдаетсяЧто проверить дальше
LAN-вход работает, прямой внешний вход нетUDP firewall, NAT-проброс, наличие CGNAT.
A2S отвечает, игрок не входитИгровой порт отдельно, пароль и версии.
Crossplay не принимает LAN-адресJoin Code или внешний идентификатор relay.
Игрок входит, затем замечает задержкиСоединение и режим relay; не считать это доказательством закрытого входящего порта.
Информация
Гайд основан на сохранённой общественной документации, а не на проверке вашего роутера или текущей сборки Valheim. В первую очередь различайте режимы подключения; старые сведения о Crossplay могут требовать сверки после обновления игры.

Гайд был полезен?