Появление сервера в списке не означает успешного входа. Проверяйте четыре этапа отдельно: поиск адреса, обмен игровыми пакетами, допуск игрока и загрузку фабрики. Следующий шаг зависит от того, какой этап не завершился.
Инструкция рассчитана на уже работающий Factorio 2.x headless непосредственно на Ubuntu 24.04: бинарник в /opt/factorio, данные в /srv/factorio, служба factorio.service из руководства по установке. Подключаем совместимые PC-клиенты. Сохраняйте текущую фабрику и выбранное дополнение: новый сейв не исправляет сетевой доступ. Команды выполняются на сервере, если не сказано другое; подставьте свои пути и порт.
Определите последний успешный этап#
Запишите полную ошибку клиента, версию, выбранный адрес и время попытки. Уточните, может ли другой игрок прямо сейчас зайти в тот же мир.
| Наблюдение | Что исследовать |
|---|---|
| Сервер отсутствует в публичном списке | Настройки видимости и журнал регистрации; отдельно попробовать адрес |
| Прямое подключение не получает ответа | UDP-сокет, endpoint, фильтры и маршрут |
| Отказ по паролю, аккаунту, версии или модам | Допуск и совместимость; сохранить точное сообщение |
| Карта начала загружаться и зависла | Передачу данных, оба журнала, диск и условия отдачи |
| После входа фабрика работает медленно | Производительность симуляции после проверки подключения |
Проверьте именно запущенный экземпляр#
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 указан порт, сопоставьте параметры с наблюдаемым сокетом вместо предположений о приоритете настроек.
Для нашей схемы данных прочитайте последние строки рабочего журнала:
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:
sudo ufw status verbose
sudo ufw status numbered
При активном UFW добавляйте недостающее разрешение UDP после проверки более ранних применимых правил deny:
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-подобного рукопожатия, а произвольный пробный пакет может остаться без ответа даже у исправного игрового сокета. Используйте настоящий клиент одновременно с коротким наблюдением на сервере.
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, затем запустите сервер и прочитайте свежий журнал:
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 из существующего сейва не является безопасным сокращением пути.
Для контролируемых изменений используйте руководство по модам и сохранениям. До обновления сохраняйте вместе рабочий бинарник, набор модов и мир. Не перезаписывайте исправную фабрику только потому, что один клиент оказался на более новой ветке.
Если допуск пройден, а передача зависла, сравните оба журнала вокруг этой попытки. На сервере:
df -h /srv/factorio
df -i /srv/factorio
Проверяйте реальные ошибки записи, параллельные загрузки и установленный лимит отдачи; параметры симуляции не ускоряют скачивание карты. Прохождение маленьких пакетов через firewall ещё не доказывает, что весь обмен проходит без потерь. Успешная прямая LAN-попытка при неудачной внешней передаче — полезное свидетельство для сетевой диагностики.
Когда нужно администрировать несколько поддерживаемых экземпляров на собственной инфраструктуре, можно использовать панель Nexardo для своего VPS. Подключение машины и создание управляемых экземпляров — отдельные действия, а не автоматическое принятие этого ручного сервера.
Завершите проверку входом в нужную фабрику, полной загрузкой карты и обычным игровым действием. Если проблема осталась, соберите endpoint, полные версии, включённые моды, время попытки, относящиеся к ней ошибки обоих журналов и наблюдения за трафиком. Перед передачей удалите токены, пароли и приватные данные игроков.




