Factorio Руководство

Не подключается к серверу Factorio: UDP, версия и доступ

Проверяем UDP 34197, журнал сервера, внешний адрес, моды и доступ игроков без случайной смены настроек.

Не подключается к серверу Factorio: UDP, версия и доступ

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

Инструкция рассчитана на уже работающий Factorio 2.x headless непосредственно на Ubuntu 24.04: бинарник в /opt/factorio, данные в /srv/factorio, служба factorio.service из руководства по установке. Подключаем совместимые PC-клиенты. Сохраняйте текущую фабрику и выбранное дополнение: новый сейв не исправляет сетевой доступ. Команды выполняются на сервере, если не сказано другое; подставьте свои пути и порт.

Определите последний успешный этап#

Запишите полную ошибку клиента, версию, выбранный адрес и время попытки. Уточните, может ли другой игрок прямо сейчас зайти в тот же мир.

НаблюдениеЧто исследовать
Сервер отсутствует в публичном спискеНастройки видимости и журнал регистрации; отдельно попробовать адрес
Прямое подключение не получает ответаUDP-сокет, endpoint, фильтры и маршрут
Отказ по паролю, аккаунту, версии или модамДопуск и совместимость; сохранить точное сообщение
Карта начала загружаться и завислаПередачу данных, оба журнала, диск и условия отдачи
После входа фабрика работает медленноПроизводительность симуляции после проверки подключения
Запись в списке серверов помогает найти адрес. Успешное подключение требует обмена UDP, допуска игрока и полной загрузки карты.

Проверьте именно запущенный экземпляр#

bash
sudo systemctl status factorio --no-pager
sudo systemctl cat factorio
/opt/factorio/bin/x64/factorio --version
sudo journalctl -u factorio -n 100 --no-pager
sudo ss -lunp 'sport = :34197'

Сравните бинарник в ExecStart с тем, чью версию напечатали. Найдите в журнале выбранное сохранение и ошибки: служба со статусом active ещё может загружать большую фабрику. Владелец сокета из ss поможет отличить нужный процесс от другого сервера на ожидаемом порту.

Справочник параметров Factorio описывает --port, --bind и выбор файла настроек. Прочитайте фактическую службу с её drop-in-файлами. Bind только на loopback не обслуживает внешних игроков; явно заданный приватный адрес должен принадлежать этой машине. 0.0.0.0 — адрес привязки, а не адрес для друзей. Если в --bind указан порт, сопоставьте параметры с наблюдаемым сокетом вместо предположений о приоритете настроек.

Для нашей схемы данных прочитайте последние строки рабочего журнала:

bash
sudo tail -n 100 /srv/factorio/factorio-current.log

Если файла нет, сначала проверьте фактический write-data и журнал службы. Не создавайте новый каталог и второй сервер только ради появления лог-файла.

Проверьте адрес до исправления списка#

В Multiplayer используйте Connect to address: публичный IPv4 VPS и фактический порт, например PUBLIC_IP:34197. Не добавляйте http://. Сравните попытку с доменным именем: успех только по IP направляет проверку к DNS или SRV endpoint, а не к ZIP фабрики.

Документация по multiplayer разделяет публичный список, LAN-видимость и прямой вход; игровой порт по умолчанию — UDP 34197. Намеренно скрытый сервер может принимать подключение по адресу. Обратное тоже верно: присутствие в списке не исключает заблокированный маршрут. Не делайте приватный сервер публичным ради диагностики.

Для домашней установки подключайтесь из своей LAN по внутреннему адресу и сравнивайте с попыткой из внешней сети. Если снаружи работает, а локально нет, исследуйте локальные маршруты и WiFi: это не доказывает hairpin NAT в каждом таком случае. VPS с публичным адресом не требует проброса на домашнем роутере подключающегося игрока.

Проверьте UDP через два фильтра#

Перед изменениями прочитайте правила Ubuntu:

bash
sudo ufw status verbose
sudo ufw status numbered

При активном UFW добавляйте недостающее разрешение UDP после проверки более ранних применимых правил deny:

bash
sudo ufw allow 34197/udp
sudo ufw status numbered

Просмотр правил описан в документации Ubuntu. Разрешение TCP на том же номере — другое правило. Отдельно проверьте firewall провайдера для этого VPS: UDP, фактический порт назначения и нужные адреса источников. Если UFW неактивен, найдите реальный фильтр вместо случайного переключения. Перед отдельным включением firewall сохраните доступ по SSH и к другим приложениям.

Веб-проверка TCP-порта и PowerShell Test-NetConnection -Port не проверяют обмен UDP Factorio. У UDP нет TCP-подобного рукопожатия, а произвольный пробный пакет может остаться без ответа даже у исправного игрового сокета. Используйте настоящий клиент одновременно с коротким наблюдением на сервере.

bash
sudo apt update
sudo apt install -y tcpdump
sudo tcpdump -ni any 'udp port 34197' -c 30

Попросите проблемного игрока зайти. При необходимости завершите Ctrl+C: число пакетов не является таймаутом. Параметры описаны в руководстве tcpdump; команда печатает сводку, не записывая файл с содержимым пакетов.

Сопоставьте трафик со временем попытки и публичным адресом игрока. Нет соответствующих датаграмм — проверяйте endpoint, внешние правила или маршрут клиента. Входящий трафик без видимого ответа требует проверки фильтров гостевой ОС, bind и игрового журнала. Обмен в обе стороны сужает поиск, но не доказывает загрузку карты и готовность игры. Если не работает только одна сеть, сравните попытку через мобильный хотспот и сохраните оба результата до глобальных изменений на сервере.

Разделите учётные данные и допуск#

Прочитайте /srv/factorio/server-settings.json локально, не публикуя файл. В шаблоне Wube разделены три задачи: game_password допускает игроков; password или token авторизует серверный аккаунт для публичного списка; require_user_verification проверяет личность игрока. Если поля отличаются, используйте пример из установленного релиза.

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

Если запуск использует whitelist или banlist, проверьте выбранный файл и точное имя игрока. Административные права и право входа — разные вещи. Сообщение о полном сервере тоже требует решения по доступу и вместимости, а не новой сетевой дырки.

Перед редактированием настроек штатно остановите службу и оставьте приватную копию. Проверьте существующий JSON, затем запустите сервер и прочитайте свежий журнал:

bash
sudo -u factorio python3 -m json.tool /srv/factorio/server-settings.json >/dev/null && \
  sudo systemctl start factorio
sudo journalctl -u factorio -n 60 --no-pager

Команды выполняются после правки остановленного сервера. Если проверка JSON не прошла, оставьте службу остановленной и исправьте файл перед новым запуском.

Сверьте версии перед поиском ошибки загрузки#

Сравните полные номера релизов клиента и сервера, а не «2.x» или «stable». Прочитайте предлагаемое игрой расхождение модов: включённые версии и зависимости. В Space Age дополнение нужно всем участникам. Базовая фабрика и фабрика с дополнением — разные варианты; удаление компонентов expansion из существующего сейва не является безопасным сокращением пути.

Для контролируемых изменений используйте руководство по модам и сохранениям. До обновления сохраняйте вместе рабочий бинарник, набор модов и мир. Не перезаписывайте исправную фабрику только потому, что один клиент оказался на более новой ветке.

Если допуск пройден, а передача зависла, сравните оба журнала вокруг этой попытки. На сервере:

bash
df -h /srv/factorio
df -i /srv/factorio

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

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

Завершите проверку входом в нужную фабрику, полной загрузкой карты и обычным игровым действием. Если проблема осталась, соберите endpoint, полные версии, включённые моды, время попытки, относящиеся к ней ошибки обоих журналов и наблюдения за трафиком. Перед передачей удалите токены, пароли и приватные данные игроков.