servarium :)
главная / журнал / Как настроить выделенный сервер Factorio на Windows: полное руководство

Как настроить выделенный сервер Factorio на Windows: полное руководство

·

Пошаговая инструкция по созданию и настройке сервера Factorio на Windows 10/11: системные требования, установка, открытие портов, подключение игроков и запуск мультиплеера.

Выделенный сервер Factorio — это отдельный процесс игры, который рассчитывает состояние игрового мира, но не выводит графику на экран. Такой сервер может продолжать работать, даже когда владелец компьютера не играет, при условии что Windows-компьютер включён и не перешёл в спящий режим. К нему могут подключаться друзья из домашней сети или через интернет. Более того, на одном компьютере с Windows можно одновременно запустить и выделенный сервер, и обычный игровой клиент Factorio. Однако для этого необходимо правильно настроить сетевые порты и разделить каталоги пользовательских данных.

1. Рекомендуемые характеристики компьютера

Ниже приведены именно рекомендуемые, а не минимальные системные требования.

Компонент

Практическая рекомендация

Операционная система

64-разрядная Windows 10 или 11 с установленными обновлениями

Процессор

Современный процессор с высокой производительностью на ядро и 6–8 ядрами; желательно с частотой в режиме ускорения около 4 ГГц или выше

Оперативная память

32 ГБ ОЗУ для комфортного запаса; при очень крупных фабриках, интенсивном исследовании карты и большом количестве модов может потребоваться больше

Видеокарта

Такая же или более производительная видеокарта для игрового клиента; сервер в режиме без графики не отрисовывает изображение

Дисковое пространство

SSD с запасом не менее 20–30 ГБ для двух копий игры, сохранений, автосохранений, журналов и резервных копий

Подключение к сети

Стабильный широкополосный интернет, особенно достаточная скорость исходящего соединения; по возможности — Ethernet вместо Wi-Fi

2. Выбираем подходящую установку Factorio для Windows

Для запуска сервера и клиента на одном компьютере удобнее использовать две независимые копии игры:

  1. Игровой клиент — обычная лицензионная Factorio, установленная через Steam либо стандартный установщик Windows. Её пользовательские данные обычно располагаются в %APPDATA%\Factorio.
  2. Сервер — ZIP-архив версии для Windows с официальной страницы загрузки Factorio. Распакуйте его в отдельную папку, доступную для записи, например C:\Games\FactorioServer. В ZIP-версии сохранения, моды и настройки находятся внутри отдельной папки установки, поэтому она не использует общий каталог данных стандартной установленной версии.

Для скачивания полной версии ZIP войдите в учётную запись Factorio.com, к которой привязана покупка. Если вы приобретали игру в Steam, в официальном FAQ описано, как связать покупку с аккаунтом Factorio.com. Выбирайте стабильную ветку (stable) и проверьте, что версии клиента и сервера полностью совпадают. Не скачивайте отдельный пакет headless для Linux: в Windows сервер без графического интерфейса запускается из обычного factorio.exe с параметром --start-server.

При необходимости создайте папку C:\Games. Распакуйте архив, после чего переместите или переименуйте вложенный каталог factorio так, чтобы указанные пути существовали именно в таком виде:

C:\Games\FactorioServer\bin\x64\factorio.exe
C:\Games\FactorioServer\data\server-settings.example.json
C:\Games\FactorioServer\config\

Убедитесь, что не появилась лишняя вложенная папка, например C:\Games\FactorioServer\factorio\bin. Не рекомендуется помещать переносимую серверную копию в C:\Program Files: там запись настроек и сохранений может требовать дополнительных прав. Папки серверной и клиентской установок, включая их пользовательские данные, не должны пересекаться.

3. Создаём мир и файл настроек сервера

Откройте Windows PowerShell (не «Командную строку» / cmd). Приведённые ниже команды предназначены именно для PowerShell: их можно копировать без изменений. Для этих операций с файлами права администратора не требуются. Сначала проверьте расположение игры:

Set-Location 'C:\Games\FactorioServer'
Test-Path '.\bin\x64\factorio.exe'
Test-Path '.\data\server-settings.example.json'

Обе проверки должны вывести True. Если вместо этого отображается False, исправьте расположение распакованных файлов. Затем создайте новую карту со стандартными параметрами и скопируйте официальный шаблон настроек Wube:

New-Item -ItemType Directory -Path '.\saves' -Force | Out-Null
.\bin\x64\factorio.exe --create '.\saves\coop.zip'
Copy-Item '.\data\server-settings.example.json' '.\server-settings.json'
notepad '.\server-settings.json'

Прежде чем продолжать, дождитесь завершения создания карты. Файл coop.zip — это готовое сохранение Factorio; распаковывать его не нужно. Если у вас уже есть подходящее сохранение одиночной или сетевой игры, закройте соответствующую игру, скопируйте его ZIP-файл из %APPDATA%\Factorio\saves в C:\Games\FactorioServer\saves и укажите точное имя этого файла при запуске сервера вместо создания новой карты. Параметры генерации мира применяются при создании сохранения: простое изменение настроек сервера не пересоздаст уже существующую карту.

Правильно редактируем JSON

Скопированный шаблон соответствует версии Factorio, которую вы скачали, поэтому его лучше использовать как основу. В «Блокноте» измените значения перечисленных ниже полей. Остальные параметры исходного шаблона оставьте без изменений. Для закрытой совместной игры подойдут следующие настройки:

Ключ в JSON

Рекомендуемое значение

Назначение

name

"Windows Friends Factory"

Название сервера

description

"Private co-op game"

Краткое описание

max_players

6

Максимальное число одновременно подключённых игроков; 0 — без ограничения

visibility.public

false

Не публиковать сервер в общем списке

visibility.lan

true

Объявлять сервер в локальной сети

username, password, token

""

Учётные данные не нужны для этого варианта без публикации

game_password

"REPLACE_WITH_A_PRIVATE_PASSWORD"

Пароль для входа на сервер: обязательно замените собственным

require_user_verification

true

Разрешать вход только пользователям с действующей учётной записью Factorio

allow_commands

"admins-only"

Ограничить выполнение привилегированных команд

autosave_interval

10

Интервал автосохранения в минутах

autosave_slots

5

Количество циклически заменяемых автосохранений

auto_pause

true

Ставить симуляцию на паузу, когда игроков нет

autosave_only_on_server

true

Хранить регулярные автосохранения на сервере

non_blocking_saving

false

Не включать экспериментальный режим сохранения

Обратите внимание: visibility — это вложенный объект JSON. Внутри него установите public в false, а lan — в true; нельзя заменять весь объект visibility одним значением false. Поля с названиями вида _comment_... — это обычные строки JSON, содержащие пояснения разработчиков. Их можно не трогать. В JSON нельзя писать комментарии // и ставить лишнюю запятую после последнего элемента объекта. Сохраните файл именно с расширением .json, а не .json.txt. Названия и смысл настроек проверены по исходному примеру Wube.

Проверьте синтаксис через PowerShell:

Get-Content '.\server-settings.json' -Raw | ConvertFrom-Json | Out-Null

Если команда завершилась без ошибок и ничего не вывела, синтаксис JSON корректен. При этом правильность каждого конкретного параметра Factorio отдельно не гарантируется. При ошибке вернитесь в «Блокнот» и исправьте файл до запуска сервера.

Если позже понадобится публикация в общем списке серверов: поменяйте visibility.public на true, укажите имя аккаунта Factorio.com в поле username, а токен авторизации — в поле token; затем перезапустите сервер. Использовать токен безопаснее, чем хранить пароль от аккаунта открытым текстом. Поле password означает пароль учётной записи Factorio.com, а game_password — отдельный пароль, который вводят игроки при подключении. Токен тоже нужно держать в секрете. Учётные данные необходимы для публикации, но сама по себе публикация не решает проблемы сетевой доступности.

4. Запускаем выделенный сервер Windows

В PowerShell, находясь в каталоге C:\Games\FactorioServer, выполните:

.\bin\x64\factorio.exe --start-server '.\saves\coop.zip' --server-settings '.\server-settings.json' --port 34197

Если вы используете другое сохранение, замените coop.zip на его имя. UDP-порт 34197 — стандартный порт сетевой игры Factorio. Благодаря параметру --start-server запускается выделенный сервер без графического интерфейса: он не открывает обычное игровое окно и не создаёт управляемого сервером персонажа. Оставьте окно консоли открытым. По сообщениям в нём проверьте, что карта загружена и сервер начал принимать подключения; ошибки JSON или предупреждение брандмауэра могут помешать запуску. При стандартной настройке мир останавливается, когда никого нет в игре, а при штатном завершении работы сохраняется.

Для запуска двойным щелчком создайте файл C:\Games\FactorioServer\start-server.bat со следующим содержимым. При сохранении в «Блокноте» выберите «Тип файла → Все файлы», иначе может получиться start-server.bat.txt:

@echo off
cd /d "C:\Games\FactorioServer"
"bin\x64\factorio.exe" --start-server "saves\coop.zip" --server-settings "server-settings.json" --port 34197
pause

Используйте либо команду PowerShell, либо BAT-файл — не запускайте оба варианта одновременно. Два сервера на одном компьютере не смогут одновременно привязаться к одному UDP-порту. Завершающая команда pause в BAT-файле лишь оставляет окно открытым, если Factorio завершится или сообщит об ошибке.

5. Устраняем конфликт портов при игре и размещении сервера на одном ПК

Если вы собираетесь играть на том же компьютере, на котором работает выделенный сервер, этот шаг обязателен. По умолчанию клиент Factorio тоже использует локальный UDP-порт 34197. Если два процесса попытаются занять один и тот же локальный порт, Windows может выдать ошибку привязки сокета или сообщение о занятом адресе (часто ошибка 10048). Решение — настроить разные локальные порты для сервера и клиента.

  1. Один раз запустите обычный игровой клиент, затем полностью выйдите из него. Это нужно, чтобы Factorio создала пользовательский файл конфигурации.
  2. Нажмите Win+R, вставьте %APPDATA%\Factorio\config\config.ini и нажмите Enter. Если Windows спросит, в какой программе открыть файл, выберите «Блокнот». Если файл отсутствует, найдите каталог данных клиента по официальной документации.
  3. Найдите строку port=34197 (обычно в разделе [other]) и измените только в конфигурации клиента на port=34198. Сохраните файл и закройте «Блокнот». Не изменяйте config.ini переносимой серверной копии.
  4. Оставьте сервер на порту 34197, снова запустите клиент и выберите в меню «Сетевая игра → Подключиться по адресу» (в английском интерфейсе — Multiplayer → Connect to address). Введите 127.0.0.1:34197. Здесь указывается порт сервера, а не новый локальный порт клиента 34198.

Альтернативный вариант: если менять настройки клиента неудобно, оставьте его на 34197, а сервер запускайте с параметром --port 34198. Тогда везде нужно заменить серверный порт на 34198: в команде запуска, BAT-файле, правиле брандмауэра, перенаправлении портов маршрутизатора и адресах для подключения. Далее рассматривается основной вариант: сервер — 34197, локальный клиент — 34198.

6. Разрешаем входящие подключения в брандмауэре Windows

В доверенной домашней сети проверьте, что активному соединению назначен сетевой профиль «Частная сеть» (Windows: «Параметры → Сеть и Интернет → Свойства» текущего подключения). Не переключайте незнакомую публичную Wi-Fi-сеть в частный режим и не отключайте брандмауэр целиком.

Откройте PowerShell от имени администратора и создайте отдельное правило для исполняемого файла сервера и нужного UDP-порта:

New-NetFirewallRule -DisplayName 'Factorio Server UDP 34197' -Direction Inbound -Action Allow -Profile Private -Protocol UDP -LocalPort 34197 -Program 'C:\Games\FactorioServer\bin\x64\factorio.exe'

Это правило разрешает именно UDP, а не TCP. Для обычной сетевой игры не требуется открывать порт удалённого администрирования RCON или другие посторонние порты. Если аналогичное правило уже создано, сначала проверьте его, а не добавляйте дубликаты. Для проверки правила и факта привязки запущенного процесса к UDP-порту выполните:

Get-NetFirewallRule -DisplayName 'Factorio Server UDP 34197'
Get-NetUDPEndpoint -LocalPort 34197

Наличие UDP-порта в списке означает, что локальный процесс его открыл. Это ещё не подтверждает доступность сервера через интернет. Синтаксис команд соответствует справочникам Microsoft.

7. Подключение по локальной сети и через интернет

В домашней локальной сети (LAN). Откройте на серверном компьютере PowerShell или командную строку и выполните:

ipconfig

Найдите поле «IPv4-адрес» (IPv4 Address) у сетевого адаптера, через который компьютер действительно подключён к домашней сети. Например, это может быть 192.168.1.50 — только пример, не готовый адрес вашего сервера. На другом компьютере в этой сети вводят ваш фактический адрес и серверный порт: 192.168.1.50:34197 в приведённом примере. Поскольку visibility.lan включён, сервер также может отображаться в списке локальных игр. Если клиент запущен на том же компьютере, после изменения его порта используйте 127.0.0.1:34197.

Для друзей из интернета. Откройте веб-интерфейс своего маршрутизатора и создайте одно правило перенаправления входящего UDP-порта:

Поле маршрутизатора

Что указать

Протокол

UDP

Внешний порт (External/Public port)

34197

Внутренний IP-адрес назначения

Фактический локальный IPv4-адрес компьютера с сервером, например 192.168.1.50

Внутренний порт (Internal/Destination port)

34197

Закрепите локальный адрес компьютера за ним в настройках резервирования DHCP на маршрутизаторе, иначе после перезагрузки адрес может измениться и правило перестанет работать. Сообщите друзьям публичный IPv4-адрес вашего подключения с добавлением :34197 или доменное имя, которое на него указывает. Не передавайте им локальные адреса 192.168.x.x и 127.0.0.1: из внешней сети по ним нельзя попасть на ваш сервер. Проверяйте подключение с другого интернет-соединения, а не только с устройства за тем же маршрутизатором. Названия разделов интерфейса маршрутизатора различаются: ищите Port Forwarding, NAT, Virtual Server или «Проброс/перенаправление портов».

Если провайдер использует CGNAT (общий внешний адрес для нескольких абонентов), двойной NAT или блокирует входящие подключения, одного правила на домашнем маршрутизаторе может быть недостаточно. Сравните WAN-адрес в настройках маршрутизатора с публичным IP, который показывает надёжный сервис проверки адреса. Если адреса не совпадают, уточните схему подключения у провайдера. Выходом может стать получение доступного извне публичного IP-адреса или применение подходящего VPN/виртуальной локальной сети. Простая публикация сервера в общем списке не исправляет блокировку входящего трафика. Не публикуйте токены и приватный пароль сервера.

8. Подключаемся к серверу и проверяем работу

  1. Запустите выделенный сервер и оставьте его консоль открытой.
  2. Откройте игровой клиент (при запуске на том же ПК помните о другом локальном порте). Выберите «Сетевая игра → Подключиться по адресу» / Multiplayer → Connect to address, введите 127.0.0.1:34197, затем пароль из game_password.
  3. Попросите участника вашей локальной сети подключиться по фактическому локальному IPv4-адресу, а участника из другой сети — по публичному IPv4-адресу с тем же портом.
  4. Проверьте, что сообщения о подключениях появляются в журнале сервера, игроки попадают в один мир и могут строить общую фабрику. Версии Factorio и влияющие на игровой процесс моды на сервере и клиентах должны совпадать.

Если сервер нужен лишь на время совместного сеанса, а отдельный постоянно работающий процесс не требуется, существует и более простой вариант: открыть в Factorio меню «Сетевая игра → Создать новую игру / Загрузить сохранённую игру для совместной игры» (английский интерфейс: Multiplayer → Host new game / Host saved game). В данной статье описан именно выделенный сервер, работающий независимо от игрового клиента.

9. Администрирование, сохранения, обновления и автозапуск

Управление сервером. Команды можно вводить в консоли выделенного сервера, а также в игровом чате при наличии прав администратора. Например:

/promote YourFactorioUsername
/players
/server-save

Вместо YourFactorioUsername подставьте точное имя своего игрового аккаунта. Команда /promote выдаёт права администратора, /players показывает список игроков, /server-save запрашивает сохранение на сервере. Дополнительные команды управления и модерации перечислены в официальном справочнике Factorio. Право запуска скриптов лучше оставить только администраторам: некоторые Lua-команды отключают достижения для сохранения.

Корректное завершение работы и резервное копирование. Предупредите игроков об остановке. Сохраните мир и завершайте работу сервера штатно: перейдите в окно его консоли и один раз нажмите Ctrl+C, после чего дождитесь окончания сохранения и завершения процесса. Не нажимайте Ctrl+C повторно и не завершайте процесс принудительно в «Диспетчере задач»: так можно потерять несохранённый прогресс. После полной остановки скопируйте C:\Games\FactorioServer\saves\coop.zip и файлы циклических автосохранений из папки saves на другой диск или в иное надёжное хранилище. Храните несколько датированных версий. Сохраните также server-settings.json, папку mods, если она используется, и файлы администраторов, блокировок и белого списка. Одного автосохранения недостаточно для надёжной защиты данных. Factorio выполняет автосохранения и, при корректном выходе, сохраняет мир.

Обновления. Перед обновлением обязательно сделайте резервную копию. Сервер, игровые клиенты и необходимые моды должны иметь одинаковые совместимые версии. Для обновления переносимой серверной копии скачайте новый ZIP стабильной версии для Windows и аккуратно обновите файлы программы, не удаляя существующие saves, mods, пользовательский server-settings.json и прочие данные. Если путь к исполняемому файлу изменится, проверьте правило брандмауэра. Перед переходом на новую крупную версию или изменением состава дополнений протестируйте копию сохранения.

Space Age и другие моды. Дополнение Space Age реализовано посредством официальных модов. Чтобы войти в мир, где включён Space Age, игрокам необходимо владеть дополнением и использовать соответствующие компоненты. Для обычного мира базовой игры дополнение не является обязательным. При использовании модов заранее согласуйте папку mods переносимой серверной установки, файл mod-list.json, выбранное сохранение и конфигурацию клиентов — до создания или загрузки мира. На сервере и клиентах должны совпадать включённые компоненты дополнения и версии модов. Не включайте Space Age незаметно для участников существующей обычной игры.

Работа сервера без постоянного вмешательства. Если сервер должен оставаться доступным, запретите автоматический переход хост-компьютера в спящий режим и обеспечьте стабильное электропитание и подключение к сети. Для запуска после входа пользователя в Windows можно создать задачу в «Планировщике заданий»: программа — C:\Games\FactorioServer\start-server.bat, триггер — «При входе в систему» (At log on), режим — «Выполнять только для вошедшего пользователя» (Run only when user is logged on); при повторном срабатывании выберите «Не запускать новый экземпляр» (Do not start a new instance). Не создавайте несколько заданий, запускающих один и тот же сервер. Такой способ удобен для домашнего компьютера, но не заменяет полноценную службу Windows для профессионального круглосуточного размещения.

10. Диагностика распространённых ошибок

Проблема

Что проверить и как исправить

Не удаётся найти factorio.exe

Убедитесь, что существует C:\Games\FactorioServer\bin\x64\factorio.exe и после распаковки не образовалась лишняя папка factorio.

Ошибка чтения JSON

Проверьте расширение server-settings.json, парные скобки и кавычки, значения true/false без кавычек и отсутствие лишних запятых. Повторите проверку через ConvertFrom-Json.

Сервер не находит сохранение

Проверьте наличие C:\Games\FactorioServer\saves\coop.zip и точное совпадение имени в команде запуска. ZIP-файл сохранения не нужно распаковывать.

Ошибка сокета / Windows 10048

Закройте лишние серверные процессы. Оставьте сервер на UDP 34197, а клиент на том же ПК переведите на UDP 34198.

На серверном ПК всё работает, но из LAN подключиться нельзя

Используйте настоящий локальный IPv4-адрес компьютера, проверьте привязку UDP 34197 и правило брандмауэра для профиля «Частная сеть».

Из LAN подключение есть, из интернета — нет

Проверьте перенаправление UDP, постоянство локального IP, публичный WAN-адрес, CGNAT, двойной NAT и ограничения провайдера. Тестируйте из внешней сети.

Сервер не появляется в общем списке

Для публикации нужны visibility.public = true и действительные username + token Factorio.com. К серверу без публикации тоже можно подключаться по IP, если он доступен по сети.

Не совпадают моды или дополнение

Сверьте версии игры и всех включённых модов, включая компоненты Space Age, если они используются.

Низкий UPS, игра заметно замедляется

Сравните UPS и FPS, оцените производительность процессора, сложность фабрики, нагрузку модов, расход ОЗУ и сторонние процессы. Понижение качества графики прежде всего помогает при низком FPS, а не при медленной симуляции.

Сервер неожиданно завершается

Посмотрите factorio-current.log в каталоге пользовательских данных переносимой серверной установки. Сохраните текст ошибки и проверьте автосохранения, прежде чем перезаписывать файлы.

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

Get-NetUDPEndpoint -LocalPort 34197

Если порт не отображается, сначала проверяйте процесс Factorio и его журнал. Если порт открыт, но участники через интернет подключиться не могут, исследуйте настройки брандмауэра Windows, маршрутизатора и провайдера; открывать случайные TCP-порты не нужно.

Читать дальше