Как настроить выделенный сервер 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
Для запуска сервера и клиента на одном компьютере удобнее использовать две независимые копии игры:
- Игровой клиент — обычная лицензионная Factorio, установленная через Steam либо стандартный установщик Windows. Её пользовательские данные обычно располагаются в
%APPDATA%\Factorio. - Сервер — 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 | Рекомендуемое значение | Назначение |
|---|---|---|
|
| Название сервера |
|
| Краткое описание |
|
| Максимальное число одновременно подключённых игроков; |
|
| Не публиковать сервер в общем списке |
|
| Объявлять сервер в локальной сети |
|
| Учётные данные не нужны для этого варианта без публикации |
|
| Пароль для входа на сервер: обязательно замените собственным |
|
| Разрешать вход только пользователям с действующей учётной записью Factorio |
|
| Ограничить выполнение привилегированных команд |
|
| Интервал автосохранения в минутах |
|
| Количество циклически заменяемых автосохранений |
|
| Ставить симуляцию на паузу, когда игроков нет |
|
| Хранить регулярные автосохранения на сервере |
|
| Не включать экспериментальный режим сохранения |
Обратите внимание: 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). Решение — настроить разные локальные порты для сервера и клиента.
- Один раз запустите обычный игровой клиент, затем полностью выйдите из него. Это нужно, чтобы Factorio создала пользовательский файл конфигурации.
- Нажмите Win+R, вставьте
%APPDATA%\Factorio\config\config.iniи нажмите Enter. Если Windows спросит, в какой программе открыть файл, выберите «Блокнот». Если файл отсутствует, найдите каталог данных клиента по официальной документации. - Найдите строку
port=34197(обычно в разделе[other]) и измените только в конфигурации клиента наport=34198. Сохраните файл и закройте «Блокнот». Не изменяйтеconfig.iniпереносимой серверной копии. - Оставьте сервер на порту 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-порта:
Поле маршрутизатора | Что указать |
|---|---|
Протокол |
|
Внешний порт (External/Public port) |
|
Внутренний IP-адрес назначения | Фактический локальный IPv4-адрес компьютера с сервером, например |
Внутренний порт (Internal/Destination port) |
|
Закрепите локальный адрес компьютера за ним в настройках резервирования DHCP на маршрутизаторе, иначе после перезагрузки адрес может измениться и правило перестанет работать. Сообщите друзьям публичный IPv4-адрес вашего подключения с добавлением :34197 или доменное имя, которое на него указывает. Не передавайте им локальные адреса 192.168.x.x и 127.0.0.1: из внешней сети по ним нельзя попасть на ваш сервер. Проверяйте подключение с другого интернет-соединения, а не только с устройства за тем же маршрутизатором. Названия разделов интерфейса маршрутизатора различаются: ищите Port Forwarding, NAT, Virtual Server или «Проброс/перенаправление портов».
Если провайдер использует CGNAT (общий внешний адрес для нескольких абонентов), двойной NAT или блокирует входящие подключения, одного правила на домашнем маршрутизаторе может быть недостаточно. Сравните WAN-адрес в настройках маршрутизатора с публичным IP, который показывает надёжный сервис проверки адреса. Если адреса не совпадают, уточните схему подключения у провайдера. Выходом может стать получение доступного извне публичного IP-адреса или применение подходящего VPN/виртуальной локальной сети. Простая публикация сервера в общем списке не исправляет блокировку входящего трафика. Не публикуйте токены и приватный пароль сервера.
8. Подключаемся к серверу и проверяем работу
- Запустите выделенный сервер и оставьте его консоль открытой.
- Откройте игровой клиент (при запуске на том же ПК помните о другом локальном порте). Выберите «Сетевая игра → Подключиться по адресу» / Multiplayer → Connect to address, введите
127.0.0.1:34197, затем пароль изgame_password. - Попросите участника вашей локальной сети подключиться по фактическому локальному IPv4-адресу, а участника из другой сети — по публичному IPv4-адресу с тем же портом.
- Проверьте, что сообщения о подключениях появляются в журнале сервера, игроки попадают в один мир и могут строить общую фабрику. Версии 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. Диагностика распространённых ошибок
Проблема | Что проверить и как исправить |
|---|---|
Не удаётся найти | Убедитесь, что существует |
Ошибка чтения JSON | Проверьте расширение |
Сервер не находит сохранение | Проверьте наличие |
Ошибка сокета / Windows | Закройте лишние серверные процессы. Оставьте сервер на UDP 34197, а клиент на том же ПК переведите на UDP 34198. |
На серверном ПК всё работает, но из LAN подключиться нельзя | Используйте настоящий локальный IPv4-адрес компьютера, проверьте привязку UDP 34197 и правило брандмауэра для профиля «Частная сеть». |
Из LAN подключение есть, из интернета — нет | Проверьте перенаправление UDP, постоянство локального IP, публичный WAN-адрес, CGNAT, двойной NAT и ограничения провайдера. Тестируйте из внешней сети. |
Сервер не появляется в общем списке | Для публикации нужны |
Не совпадают моды или дополнение | Сверьте версии игры и всех включённых модов, включая компоненты Space Age, если они используются. |
Низкий UPS, игра заметно замедляется | Сравните UPS и FPS, оцените производительность процессора, сложность фабрики, нагрузку модов, расход ОЗУ и сторонние процессы. Понижение качества графики прежде всего помогает при низком FPS, а не при медленной симуляции. |
Сервер неожиданно завершается | Посмотрите |
После запуска сервера для быстрой локальной проверки используйте:
Get-NetUDPEndpoint -LocalPort 34197
Если порт не отображается, сначала проверяйте процесс Factorio и его журнал. Если порт открыт, но участники через интернет подключиться не могут, исследуйте настройки брандмауэра Windows, маршрутизатора и провайдера; открывать случайные TCP-порты не нужно.