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

Как пробросить нужный UDP-порт к серверу Factorio

Настройте путь UDP 34197 к серверу Factorio и проверьте сокет, фаервол, NAT и внешнее подключение.

Как пробросить нужный UDP-порт к серверу Factorio

Для прямого подключения из интернета адрес, выданный игрокам, должен вести к UDP-сокету вашего экземпляра Factorio. По умолчанию игра использует 34197/UDP. Правило роутера, фаервол хоста и параметры запуска должны описывать один маршрут. Открытие TCP 34197 его не исправляет.

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

Запишите обе стороны каждого преобразования. Правило вашего роутера не настраивает вышестоящий роутер провайдера.

Сначала запишите фактический адрес подключения#

На Linux-хосте посмотрите адреса интерфейсов, маршрут и ожидаемый сокет:

bash
ip -br -4 address
ip -4 route
sudo ss -lunp 'sport = :34197'

Если у экземпляра другой порт, замените 34197 во всех проверках. Сверьте процесс с действующей службой или контейнером. В текущем запуске найдите --port и --bind: значение bind тоже может включать порт. Не запускайте второй сервер только ради появления сокета.

Для службы непосредственно на хосте привязка лишь к loopback не принимает интернет-пакеты, адресованные другому интерфейсу. 0.0.0.0 означает локальные интерфейсы IPv4, а не публичный адрес для друзей. За роутером выбирайте адрес, который есть у самого сервера, а не WAN-адрес маршрутизатора.

До изменения роутера составьте таблицу:

ПараметрПример домашнего сервера
Закреплённый LAN-адрес сервера192.168.1.50
Фактический игровой сокетUDP 34197
Публичная точка на роутереВаш настоящий публичный IPv4, UDP 34197
Назначение проброса192.168.1.50, UDP 34197
Адрес для игроковПубличный IPv4 с окончанием :34197

LAN-адрес приведён для примера. Закрепите настоящий адрес через DHCP reservation либо корректную статическую настройку. Правило на вчерашнюю DHCP-аренду может направлять трафик к другому устройству.

Выберите правило для своей схемы сети#

На домашнем роутере создайте UDP-проброс с выбранного внешнего порта на закреплённый LAN-адрес сервера и его внутренний игровой порт. Для первой проверки используйте одинаковые внешнее и внутреннее значения. Широкий диапазон или TCP-профиль от другой игры здесь не нужны.

Сопоставьте WAN-адрес роутера с публичным IPv4 подключения. Приватный адрес RFC1918 либо адрес общего диапазона 100.64.0.0/10 на WAN указывает на вероятный дополнительный NAT. Другое несовпадение WAN и публичного адреса тоже требует проверки; по одному несовпадению нельзя точно установить владельца лишнего слоя.

Если оба последовательно подключённых роутера ваши, нужен согласованный проброс через каждый либо заранее спланированная схема bridge/маршрутизации. Когда внешним преобразованием управляет оператор, внутреннее правило не создаст входящее отображение у него. Уточните возможность публичного адреса с входящими подключениями либо выберите отдельно поддерживаемый маршрут. IPv6 требует своей проверки адресов, доступности у клиентов и фаервола; это не универсальная гарантия обхода CGNAT.

На VPS с публично маршрутизируемым интерфейсом обычно не требуется правило на домашнем роутере. Проверьте фаервол провайдера и отдельно документированный NAT, если он используется. Правило должно относиться к нужному экземпляру и UDP-порту. Игрокам не требуется пробрасывать этот серверный порт на своих роутерах.

У Factorio также есть NAT traversal и подключение через Steam. Работающий маршрут с обходом NAT не доказывает доступность вручную объявленного публичного адреса. И наоборот, ручной проброс не обязателен для любой возможной игровой сессии. Чётко определите, какой путь проверяете.

Разрешите нужный трафик на хосте#

Для Ubuntu с UFW сначала посмотрите действующую политику:

bash
sudo ufw status verbose
sudo ufw status numbered

Если сервер непосредственно на хосте намеренно доступен всем и UDP-разрешения не хватает, добавьте его:

bash
sudo ufw allow 34197/udp
sudo ufw status numbered

Более ранний запрет, другой фаервол или правило провайдера всё ещё могут блокировать попытку. Для закрытой группы с известными исходными адресами используйте соответствующее ограничение источника. При неактивном UFW выясните, чем фильтруется трафик. Включение или сброс фаервола — отдельное изменение с сохранением доступа по SSH и к другим службам.

Административный RCON Factorio оставьте вне публичного игрового правила. У него собственные параметры привязки и порта. Ошибка входа игрока не требует открывать удалённое администрирование.

При Docker bridge проверьте ещё одно преобразование: публикацию порта контейнера на хосте и её протокол. Обычные правила UFW для хоста могут не контролировать опубликованный Docker-трафик. Используйте документированную схему фильтрации своего runtime, сохраняя его сетевую интеграцию.

Подтвердите маршрут из внешней сети#

Попросите игрока с другого интернет-подключения выбрать Multiplayer → Connect to address и ввести проверенный публичный адрес. Локального клиента отдельно подключите к LAN-адресу сервера. Проверка только собственного публичного адреса из той же LAN смешивает внешнюю доступность с поддержкой hairpin NAT у роутера.

TCP-проверка на веб-сайте не подтверждает игровой протокол Factorio. Если соединение не устанавливается, во время новой попытки выполните короткий захват UDP на сервере:

bash
sudo timeout 20s tcpdump -ni any -nn 'udp port 34197'

Команда предполагает установленные tcpdump и timeout, выводит краткие сведения о пакетах и не сохраняет полезную нагрузку. Код завершения timeout 124 означает окончание выбранного окна наблюдения.

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

Завершите проверку настоящим входом и полной передачей карты. Зафиксируйте рабочий проброс, правило провайдера и порт экземпляра; временные разрешения, если они добавлялись, удалите осознанно. Для собственных машин Nexardo помогает организовать администрирование инфраструктуры рядом с таким реестром адресов. Храните настройки игры и её сетевого маршрута вместе.

Источники#