RE:NODE

Valheim 'Failed to connect' и другие ошибки входа: как исправить

Автор Команда RE:NODE
12 мин чтения


Ошибки подключения в Valheim чётко делятся на два вида. "Failed to connect" означает, что пакеты игрока не получили от сервера внятного ответа: неверный адрес или порт, закрытый UDP-порт либо сервер, который не запущен или ещё не готов. Все остальные сообщения - "Incompatible version", "Server is full", "Incorrect password", бан - означают, что соединение состоялось и сервер отказал игроку по названной причине. Поэтому первый вопрос не "что не так с сервером", а "дошёл ли игрок до него вообще", и лог сервера отвечает на него за секунды. В этой статье разобрано каждое сообщение, его причины и порядок проверки, а более глубокие решения оставлены статьям, которые их описывают.

Сначала читайте лог сервера#

Каждый отказ, дошедший до сервера, записывается в лог. Каждый сбой, не дошедший, не оставляет ничего. Поэтому лог - самая быстрая диагностика из имеющихся.

Пусть игрок попробует зайти один раз, пока вы смотрите в консоль. Затем:

Что показывает логЧто это значитКуда смотреть
НичегоПакеты не дошлиАдрес, порт, файрвол, состояние сервера
Новое подключение, затем жалоба на версиюСборки различаютсяОбновите одну из сторон
Новое подключение, затем жалоба на парольНеверный парольПароль, который ввёл игрок
Новое подключение, затем игрок закрытБан, список разрешённых, сервер полон или проверка модовКонкретная причина, ниже
Игрок зашёл, затем его выбросилоСессия оборвалась посреди игры"Disconnected", ниже

Точные формулировки этих строк меняются от сборки к сборке, а сервер с модами добавляет собственные строки от BepInEx и его плагинов, но каждая дошедшая попытка называет ID игрока. По этому ID видно, кто именно это был, а это важно, когда пытаются зайти сразу трое.

На вашей машине лог - это стандартный вывод сервера или файл, заданный через -logFile. На хостинге с панелью это консоль. На стороне игрока игра пишет Player.log в папку сохранений - в Windows это %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\Player.log - и там иногда больше подробностей, чем во всплывающем окне. Где лежат остальные файлы, описано в статье расположение сохранений Valheim.

"Failed to connect"#

Клиент отправлял попытки подключения и перестал ждать. Версии, пароли и баны тут ни при чём, потому что сервер до их проверки даже не добрался.

Причины, примерно от самой частой к самой редкой:

  1. Неверный порт. Для входа по IP используется игровой порт - 2456 по умолчанию или то, что указано в -port. Люди вводят порт запросов 2457, потому что его показала панель хостинга, или вообще не указывают порт на сервере, который использует нестандартный.
  2. UDP не открыт. Сервер работает, адрес верный, но файрвол или роутер пропускает только TCP либо открывает один игровой порт без следующего за ним. Valheim целиком работает по UDP. Как правильно открыть и пробросить порты, описано в статье порты Valheim 2456 и 2457.
  3. Сервер ещё запускается. Большой мир загружается долго, а сервер ещё должен зарегистрироваться в Steam, прежде чем игроки Steam смогут подключиться. Попытки в первую минуту после запуска могут не удаваться. Дождитесь, пока в логе появится загрузка мира и подключение сервера к Steam, и попробуйте снова.
  4. Сервер не запущен. Он упал или застрял в цикле перезапусков. Сбои при запуске описаны в статье сервер Valheim падает при запуске, а цикл - в статье почему игровой сервер постоянно перезапускается.
  5. Неверный адрес. Старый IP, оставшийся от времени до смены хостинга или домашнего подключения, опечатка или домен, запись которого всё ещё указывает в другое место.
  6. Игрок находится в одной сети с домашним сервером и использует его публичный адрес, а в роутере нет NAT loopback. Ему нужно использовать локальный адрес.

Быстрее всего эти варианты различает второй игрок. Если кто-то вне вашей сети может зайти, сервер и его порты в порядке, а проблема на стороне не заходящего игрока или в введённом им адресе. Если не может никто, дело в сервере или в пути до него.

На стороне игрока есть две вещи, из-за которых иногда случается настоящий "Failed to connect" на работающий сервер: ограничивающая сеть (университетская или рабочая, блокирующая необычный UDP) и VPN, не пропускающий UDP. Попытка с точки доступа на телефоне исключает оба варианта за минуту.

Failed to connect при входе через список серверов

Сервер, выбранный из списка сообществ, тоже может не подключаться, если запись в списке устарела: сервер перезапустился на другом порту или запись осталась от предыдущей сессии. Чтобы убедиться, зайдите по IP. Если вход по IP работает, а через список нет, почему список отстаёт, объяснено в статье сервер Valheim не отображается в списке.

"Incompatible version"#

Клиент и сервер на разных сборках. Игра обновляется через Steam сама, а выделенный сервер - только когда кто-то запускает на нём обновление. В день патча это сообщение ожидаемо.

Что проверить:

  • Сравните версию в главном меню игрока со строкой Valheim version в начале лога сервера.
  • Если старше сервер, обновите его: корректная остановка, +app_update 896660 через SteamCMD, запуск.
  • Если отстаёт игрок, ему нужно перезапустить Steam и дать игре обновиться. Игрок на публичной тестовой ветке должен отказаться от неё в Steam, чтобы зайти на обычный сервер.
  • На сервере с кроссплеем игрок на Xbox или из Microsoft Store после патча может просто отставать от игроков Steam на день: его обновление приходит позже.

На сервере с модами не обновляйте сервер только потому, что обновилась игра. Дождитесь модов. Вся процедура, включая публичную тестовую ветку и то, как планировать обновления для группы, изложена в статье обновление сервера Valheim и исправление несовпадения версий.

Несовпадение версий модов - это другая ошибка. С модами на основе Jotunn или с модами, использующими ServerSync, игрок, чей набор модов не совпадает с серверным, получает окно со списком отличающихся модов, нередко уже после того, как сама игра его пропустила. Собственное "Incompatible version" игры касается только сборки игры. Про модовую ошибку рассказано в статье кики из-за несовпадения версий модов Valheim.

"Server is full"#

На сервере уже максимальные десять игроков. Этот предел встроен в игру; это не настройка, и ни тариф, ни хостинг его не меняют. Поднять его могут только моды, а последствия описаны в статье лимит игроков Valheim и большие группы.

Если сервер пишет, что он полон, а вы насчитали меньше десяти человек, обычная причина - сессия-призрак. Игрок, у которого игра вылетела или оборвалось соединение, считается подключённым, пока сервер не заметит его отсутствия. Через несколько минут место освобождается само.

Что делать:

  • Подождите минуту-две и попробуйте снова. Большинство призрачных сессий быстро завершаются по таймауту.
  • Проверьте список игроков. Админ видит, кого сервер считает находящимся в сети; имя того, кто явно ушёл, - это призрак.
  • Перезапускайте только в крайнем случае и корректно, чтобы мир сохранился. Перезапуск убирает всех призраков ценой короткого перерыва для остальных.

Родственное сообщение появляется, когда игрок, у которого только что вылетела игра, заходит снова до того, как его старая сессия исчезла: сервер видит уже подключённый тот же ID и отказывает второму подключению. Решение то же - подождать, пока старая сессия истечёт по таймауту.

"Incorrect password"#

У сервера есть пароль, и игрок отправил неверный. Окно ввода пароля появляется при входе; ошибка следует, если введённое не совпадает.

На чём попадаются:

  • Регистр и пробелы. Пароль сравнивается точно. Herring42 - это не herring42, и пробел в конце, скопированный из сообщения в чате, тоже считается.
  • Пароль изменили. Если -password сервера изменился, всем игрокам нужен новый. Тем, кто сохранил сервер в списке недавних, об этом не сообщают.
  • Два сервера, два пароля. На машине с несколькими серверами игрок может заходить на правильный адрес с неправильным портом, а значит, на другой сервер с другим паролем.
  • Раскладка клавиатуры. Игрок с другой раскладкой, вводя пароль с y, z или символами, может ввести не те знаки, что думает.

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

Увидеть пароль изнутри игры нельзя. На вашей машине он в скрипте запуска или в файле службы; на хостинге с панелью - одна из переменных запуска. В RE:NODE для нового сервера Valheim генерируется пароль для входа, который показан вместе с переменными запуска на вкладке Startup, где его можно и изменить - после этого перезапустите сервер, чтобы изменение вступило в силу.

Бан или отсутствие в списке разрешённых#

Игрок из bannedlist.txt отклоняется при подключении. Так же отклоняется игрок, которого нет в permittedlist.txt, если в этом файле есть хотя бы один ID, потому что непустой список разрешённых делает сервер закрытым. Игра не говорит игроку, какой именно список его остановил - в текущих сборках отказ выглядит одинаково, так что игрок, которого "забанили" на сервере, где его никто не банил, обычно просто не попал в список разрешённых.

Проверьте в папке сохранений сервера:

  • `bannedlist.txt` на наличие ID игрока.
  • `permittedlist.txt` - если там есть хоть один ID, есть ли среди них ID этого игрока, и в правильной ли форме? На сервере с кроссплеем ID идут с префиксом платформы (Steam_76561198012345678), и голый SteamID64 в файле не совпадёт.
  • Что вы правите нужный файл. Сервер читает списки в своей папке сохранений, а не в папке установки и не на вашем ПК.

Формат файлов, виды ID и способ узнать точный ID игрока описаны в статье adminlist, bannedlist и permittedlist в Valheim.

"Disconnected" во время игры#

Игрок был в мире, и его выбросило. В отличие от ошибок выше, это происходит после успешного входа, так что причина в чём-то, оборвавшем сессию.

КартинаОбычная причина
Выбрасывает всех сразуСервер остановился, упал или перезапустился
Всех выбрасывает с одним интерваломДолгое зависание во время сохранения мира
Один игрок вылетает снова и сноваСоединение или ПК этого игрока
Один игрок вылетает сразу после входаПроверка модов или бан, применённый при входе
Игрок вылетает рядом с одной оживлённой областьюВладение зоной при плохом соединении

Все сразу. Посмотрите аптайм сервера и лог. Неанонсированный перезапуск, сбой или достигнутый предел памяти приведут к этому. Сервер, у которого кончилась память, останавливается; в RE:NODE он перезапускается чисто, а не висит на подкачке, но игроков всё равно выбрасывает, и всё после последнего сохранения теряется. О подборе ресурсов рассказано в статье производительность и лаги сервера Valheim.

Все с интервалом. На очень большом мире сохранение может заморозить сервер настолько, что клиенты сдаются. Если вылеты совпадают с -saveinterval, причина в сохранении; помогают более быстрый диск, уменьшенный мир и более короткий интервал (меньшие сохранения, но чаще).

Один игрок. Его wifi, его роутер, VPN или подвисание его ПК. Попросите проверить по проводу. Обычная первопричина - потеря пакетов; как её определить, показано в статье задержка, джиттер и потеря пакетов.

Сразу после входа. На сервере с модами непройденная проверка версий Jotunn или ServerSync нередко впускает игрока, а потом отключает его, иногда с сообщением, иногда только с "Disconnected". Сравните списки модов. На любом сервере команда админа kick или ban с точки зрения игрока выглядит так же.

Проблемы кроссплея и кода подключения#

С -crossplay у входа по шестизначному коду бывают собственные сбои:

  • Код устарел. Он меняется при каждом перезапуске сервера. Код из вчерашнего сообщения в чате никуда не ведёт. Берите актуальный из консоли.
  • Учётная запись Xbox блокирует. Настройки конфиденциальности Xbox, запрещающие входить в многопользовательские игры или общаться с игроками вне Xbox, останавливают подключение при кроссплее с ошибкой о правах, а не о сервере.
  • Сервер на самом деле не в режиме кроссплея. Без -crossplay кода нет, и игроки Xbox зайти не могут вообще.
  • Ретранслятор долго регистрирует. Сразу после запуска код может какое-то время не распознаваться. Подождите и повторите, прежде чем что-то менять.

Настройки учётной записи и то, как ID платформ влияют на файлы со списками, описаны в статье кроссплей Valheim и игроки на Xbox.

Порядок проверки, который работает#

Когда кто-то не может зайти, идите по списку по порядку и останавливайтесь на первом, что не так:

  1. Сервер запущен и закончил загрузку? Прочитайте последние строки консоли.
  2. Может ли зайти кто-то ещё? Если да, сосредоточьтесь на одном игроке.
  3. Появилась ли попытка в логе? Если нет, проверьте адрес, номер порта, UDP и файрвол.
  4. Если появилась, какую причину назвал сервер? Версия, пароль, файл списка или сервер полон.
  5. Если игрок зашёл и его выбросило, это случилось со всеми или с одним, и в какой момент?

FAQ#

Почему Valheim пишет Failed to connect, когда сервер онлайн?

Потому что пакеты игрока до него не доходят. Проверьте, что используется игровой порт, а не порт запросов, что UDP открыт и что сервер закончил загрузку. Если в логе сервера ничего не появляется, дело в пути, а не в игре.

Почему я могу зайти по IP, но не из списка серверов?

Игровой порт работает, а список устарел или отстаёт. Списку сообществ нужно несколько минут, чтобы заметить сервер, и он может хранить старые записи. Вход по IP в любом случае надёжнее.

Как исправить Incompatible version на сервере с модами?

Дождитесь, пока все используемые вами моды поддержат новую сборку игры, затем обновите сервер и всех клиентов вместе. Если обновить сервер раньше, проблема просто перейдёт из игры в моды.

Почему пишет, что сервер полон, хотя игроков всего несколько?

Игрок, у которого вылетела игра, считается подключённым, пока не истечёт его сессия. Подождите минуту-две. Если не проходит, поможет корректный перезапуск.

Пароль сервера Valheim чувствителен к регистру?

Да. Он сравнивается точно, включая заглавные буквы и пробелы. Вводите его заново, а не вставляйте из сообщения, где может оказаться лишний пробел в конце.

Почему меня отключает каждые тридцать минут?

Тридцать минут - интервал сохранения по умолчанию. На большом мире сохранение может подвесить сервер настолько, что игроков выбросит. Проверьте, совпадают ли вылеты с World saved в логе.