Установка игрового сервера Factorio на Linux: различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Новая страница: «= Установка игрового сервера Factorio на Linux = == 1. Подготовка системы == * Войдите в систему по…»
 
Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
= Установка игрового сервера Factorio на Linux =
Инструкция по установке выделенного сервера Factorio на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 14 ноября 2026 года на чистой Ubuntu 24.04.4 с сервером версии 2.1.24.


== 1. Подготовка системы ==
== Что понадобится ==


* Войдите в систему под учетной записью с правами '''root''' или пользователя с правами '''sudo'''.
* VDS с '''Ubuntu 24.04 LTS''' и доступом '''root''' по SSH.
* Рекомендуется использовать Ubuntu 24.04 LTS или Debian 12.
* '''Память:''' сервер с новым миром занимает около 400 МБ, с большой базой — несколько гигабайт. Для начала хватит VDS с 2 ГБ.
* Для установки сервера требуется лицензия Factorio.
* '''Диск:''' архив сервера — 60 МБ, после распаковки около 300 МБ. Достаточно 2 ГБ свободного места.
* '''Процессор:''' от 1 ядра; Factorio важна скорость одного ядра, а не их число.


== 2. Системные требования ==
Серверная версия игры (headless) скачивается с сайта разработчика бесплатно и без входа в учётную запись.


* **ОС:** Ubuntu 24.04 LTS / Debian 12
== 1. Обновите систему ==
* **RAM:** Минимум 2 ГБ (рекомендуется 4+ ГБ)
* **CPU:** 2+ ядра
* **Диск:** 1+ ГБ свободного места


== 3. Установка необходимых пакетов ==
<pre>sudo apt update && sudo apt upgrade -y</pre>


<pre>sudo apt update && sudo apt upgrade -y
На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие.
sudo apt install -y wget curl screen</pre>


== 4. Создание пользователя ==
'''Окно выбора раскладки клавиатуры.''' Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите '''Enter''', в следующем окне снова '''Enter'''.


<pre>sudo useradd -m -s /bin/bash factorio
[[Файл:Ubuntu-apt-keyboard-dialog.png|800px]]
sudo passwd factorio</pre>
 
'''Сообщение о новом ядре.''' Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки.
 
[[Файл:Ubuntu-apt-kernel-reboot.png|800px]]
 
Перезагрузите сервер и подключитесь снова через минуту:
 
<pre>sudo reboot</pre>
 
== 2. Установите нужные пакеты ==


== 5. Установка Factorio сервера ==
<pre>sudo apt install -y wget xz-utils</pre>


=== Скачивание сервера ===
== 3. Создайте пользователя для сервера ==


1. Переключитесь на пользователя factorio:
Игровой сервер не должен работать от root. Создайте для него отдельного пользователя и переключитесь на него:
<pre>sudo su - factorio</pre>


2. Скачайте Factorio Headless сервер:
<pre>sudo useradd -m -s /bin/bash factorio
\# Необходимо зарегистрироваться на factorio.com и скачать серверную версию
sudo su - factorio</pre>


3. Создайте директорию:
Пароль этому пользователю не нужен: входить под ним по SSH никто не будет.
<pre>mkdir -p /home/factorio/factorio-server
cd /home/factorio/factorio-server</pre>


4. Распакуйте скачанный архив:
== 4. Скачайте сервер ==
<pre>tar -xzf factorio-headless-*.tar.xz</pre>


5. Перейдите в директорию:
<pre>mkdir -p ~/factorio-server
<pre>cd factorio</pre>
cd ~/factorio-server
wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64
tar -xf factorio-headless.tar.xz
cd factorio
./bin/x64/factorio --version</pre>


=== Первый запуск и настройка ===
Ссылка всегда отдаёт последнюю стабильную версию. Последняя команда показывает, какая версия скачалась, — она должна совпадать с версией игры у игроков.


1. Запустите сервер первый раз:
[[Файл:Factorio-linux-download.png|800px]]
<pre>./bin/x64/factorio --create-server-settings</pre>


2. Это создаст файл server-settings.json
== 5. Решите, нужен ли мир с дополнением Space Age ==


3. Отредактируйте настройки:
В серверную версию входит платное дополнение Space Age, и по умолчанию оно включено. На такой сервер смогут зайти только игроки, у которых дополнение куплено.
<pre>nano server-settings.json</pre>
 
'''Если у игроков нет Space Age''' — отключите его до создания мира. Создайте файл со списком модов:
 
<pre>mkdir -p mods
nano mods/mod-list.json</pre>


4. Базовые настройки:
<pre>{
<pre>{
   "name": "Factorio Server",
   "mods": [
  "description": "My Factorio Server",
    {"name": "base", "enabled": true},
  "max_players": 10,
    {"name": "elevated-rails", "enabled": false},
  "password": "",
    {"name": "quality", "enabled": false},
  "token": "",
    {"name": "recycler", "enabled": false},
  "game_password": "",
    {"name": "space-age", "enabled": false}
  "require_user_verification": false,
   ]
  "max_upload_in_kilobytes_per_second": 0,
  "max_upload_slots": 5,
  "min_latency_in_ticks": 0,
  "ignore_player_limit_for_returning_players": false,
  "allow_commands": false,
  "autosave_interval": 10,
  "autosave_slots": 3,
  "afk_autokick_interval": 0,
  "auto_pause": false,
   "only_admins_can_pause_the_game": true,
  "autosave_only_on_server": true,
  "admins": []
}</pre>
}</pre>


== 6. Создание мира ===
Сохраните файл (в nano: '''Ctrl+O''', '''Enter''', '''Ctrl+X''').
 
'''Если дополнение есть у всех''' — этот шаг пропустите.
 
== 6. Создайте мир ==
 
<pre>./bin/x64/factorio --create saves/my-world.zip</pre>
 
Команда создаёт новый мир и завершается словом «Goodbye». Файл мира появляется в каталоге <code>saves</code>.
 
[[Файл:Factorio-linux-create.png|800px]]
 
Чтобы перенести на сервер свой мир из одиночной игры, вместо этого положите его файл <code>.zip</code> в каталог <code>saves</code> и в шаге 8 укажите его имя.
 
== 7. Настройте сервер ==


1. Создайте новый мир:
Настройки хранятся в файле <code>server-settings.json</code>. Создайте его из образца и откройте:
<pre>./bin/x64/factorio --create my-world</pre>


2. Или используйте существующий save файл
<pre>cp data/server-settings.example.json data/server-settings.json
nano data/server-settings.json</pre>


== 7. Создание скрипта запуска ===
Что стоит изменить:


1. Создайте скрипт запуска:
* <code>"name"</code> — название сервера.
<pre>nano /home/factorio/factorio-server/start-server.sh</pre>
* <code>"game_password"</code> — пароль для входа. Пустые кавычки — вход без пароля.
* <code>"visibility"</code> → <code>"public"</code> — показывать ли сервер в общем списке игры. Для общего списка нужна учётная запись factorio.com: её имя и токен вписываются в поля <code>"username"</code> и <code>"token"</code>. Если учётной записи нет или сервер только для своих, поставьте <code>false</code> — иначе в журнале будет ошибка «Missing token».
* <code>"max_players"</code> — предел числа игроков, 0 — без предела.
* <code>"auto_pause"</code> — ставить игру на паузу, когда на сервере никого нет (по умолчанию <code>true</code>).
* <code>"autosave_interval"</code> — как часто сервер сохраняет мир, в минутах.


2. Добавьте содержимое:
После правки проверьте главные строки:
<pre>\#!/bin/bash
 
<pre>grep -E '"(name|public|game_password)"' data/server-settings.json</pre>
 
[[Файл:Factorio-linux-settings.png|800px]]
 
== 8. Создайте скрипт запуска ==
 
<pre>nano ~/factorio-server/start-server.sh</pre>
 
<pre>#!/bin/bash
cd /home/factorio/factorio-server/factorio
cd /home/factorio/factorio-server/factorio
./bin/x64/factorio --start-server my-world.zip --server-settings server-settings.json</pre>
exec ./bin/x64/factorio --start-server saves/my-world.zip --server-settings data/server-settings.json</pre>


3. Сделайте исполняемым:
Сделайте его исполняемым и вернитесь к root:
<pre>chmod +x /home/factorio/factorio-server/start-server.sh</pre>


== 8. Настройка systemd ==
<pre>chmod +x ~/factorio-server/start-server.sh
exit</pre>


1. Выйдите из пользователя factorio:
== 9. Настройте автозапуск ==
<pre>exit</pre>


2. Создайте systemd сервис:
<pre>sudo nano /etc/systemd/system/factorio-server.service</pre>
<pre>sudo nano /etc/systemd/system/factorio-server.service</pre>


3. Добавьте конфигурацию:
Вставьте:
 
<pre>[Unit]
<pre>[Unit]
Description=Factorio Dedicated Server
Description=Factorio Dedicated Server
Строка 116: Строка 138:
ExecStart=/home/factorio/factorio-server/start-server.sh
ExecStart=/home/factorio/factorio-server/start-server.sh
Restart=always
Restart=always
RestartSec=5


[Install]
[Install]
WantedBy=multi-user.target</pre>
WantedBy=multi-user.target</pre>


4. Запустите сервер:
== 10. Запустите сервер и проверьте его ==
 
<pre>sudo systemctl daemon-reload
<pre>sudo systemctl daemon-reload
sudo systemctl enable factorio-server
sudo systemctl enable factorio-server
sudo systemctl start factorio-server</pre>
sudo systemctl start factorio-server
sudo systemctl status factorio-server --no-pager -n 0</pre>
 
Состояние должно быть '''active (running)''':
 
[[Файл:Factorio-linux-service-status.png|800px]]
 
Сервер готов, когда в журнале есть строка «Hosting game at IP ADDR», а порт 34197 занят. Там же видно, какие моды загружены: если вы отключали Space Age, в списке будет только <code>base</code>.
 
<pre>sudo journalctl -u factorio-server -o cat | grep -E "Loading mod .*\(data.lua\)|Hosting game" | tail -4
sudo ss -uln | grep 34197</pre>
 
[[Файл:Factorio-linux-journal.png|800px]]
 
Управление службой:
 
<pre>sudo systemctl stop factorio-server      # остановить (мир сохраняется)
sudo systemctl restart factorio-server  # перезапустить
sudo journalctl -u factorio-server -f    # смотреть журнал, выход — Ctrl+C</pre>
 
== 11. Откройте порт в файрволе ==
 
'''Внимание:''' сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните <code>sudo ufw allow НОМЕР_ПОРТА/tcp</code>.
 
<pre>sudo ufw allow OpenSSH
sudo ufw allow 34197/udp
sudo ufw enable</pre>
 
Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте '''y'''. Проверьте результат:
 
<pre>sudo ufw status</pre>
 
[[Файл:Factorio-linux-ufw.png|800px]]
 
== 12. Зайдите на сервер ==


== 9. Настройка файрвола ==
В игре выберите сетевую игру, подключение по адресу и введите <code>IP_СЕРВЕРА:34197</code>. Пошагово со снимками — в статье [[Как зайти на сервер Factorio]].


<pre>sudo ufw allow 34197/udp</pre>
== Обновление сервера ==


== 10. Управление модами ===
После выхода новой версии игры остановите сервер, скачайте свежий архив поверх старого и запустите снова:


=== Установка модов ===
<pre>sudo systemctl stop factorio-server
sudo -u factorio bash -c "cd /home/factorio/factorio-server && wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64 && tar -xf factorio-headless.tar.xz"
sudo systemctl start factorio-server</pre>


1. Моды устанавливаются в:
Миры, настройки и список модов при этом сохраняются. Если загрузка архива остановилась на полпути (при проверке такое случилось один раз), прервите её клавишами '''Ctrl+C''' и повторите вторую команду.
<pre>/home/factorio/factorio-server/factorio/mods</pre>


2. Используйте Factorio mod portal для скачивания модов
== Где лежат миры и моды ==


== Заключение ==
* Миры и автосохранения: <code>/home/factorio/factorio-server/factorio/saves/</code>
* Моды: <code>/home/factorio/factorio-server/factorio/mods/</code> — сюда кладутся архивы модов с портала [https://mods.factorio.com mods.factorio.com]. Набор модов на сервере и у игроков должен совпадать.


Factorio сервер успешно установлен! Убедитесь, что у вас есть лицензия для использования сервера.
== Если что-то пошло не так ==


'''Для размещения ваших игровых серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):'''
{| class="wikitable"
! Что видите !! Причина и решение
|-
| В журнале «Matching server connection failed: … Missing token» || В настройках включён общий список (<code>"public": true</code>), но не указаны имя и токен учётной записи factorio.com. Впишите их или поставьте <code>"public": false</code>. Сам сервер при этой ошибке работает.
|-
| Игроки без Space Age не могут зайти || Мир создан с дополнением. Отключите его по шагу 5 и создайте новый мир по шагу 6.
|-
| Служба в состоянии «failed» || Посмотрите причину: <code>sudo journalctl -u factorio-server -n 50 --no-pager</code>. Чаще всего это опечатка в имени файла мира или ошибка в <code>server-settings.json</code> (лишняя или пропущенная запятая).
|-
| После обновления игры игроки не могут подключиться || Версия сервера отличается от версии игры. Обновите сервер.
|-
| Сервер запущен, но зайти не удаётся || Проверьте, что порт открыт (<code>sudo ufw status</code>): Factorio использует порт 34197 по протоколу UDP.
|}


* '''[Выделенные серверы](https://ark-hoster.ru/dedicated/)''' - для высоконагруженных игровых серверов
'''Для размещения игровых серверов рекомендуем услуги [https://ark-hoster.ru ARK-HOSTER.RU]:'''
* '''[VPS/VDS серверы](https://ark-hoster.ru/vpsgame/)''' - для небольших и средних серверов


Наши специалисты помогут с настройкой игровых серверов!
* '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' — для небольших и средних серверов
* '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' — для высоконагруженных игровых серверов

Текущая версия от 18:15, 14 ноября 2026

Инструкция по установке выделенного сервера Factorio на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 14 ноября 2026 года на чистой Ubuntu 24.04.4 с сервером версии 2.1.24.

Что понадобится

  • VDS с Ubuntu 24.04 LTS и доступом root по SSH.
  • Память: сервер с новым миром занимает около 400 МБ, с большой базой — несколько гигабайт. Для начала хватит VDS с 2 ГБ.
  • Диск: архив сервера — 60 МБ, после распаковки около 300 МБ. Достаточно 2 ГБ свободного места.
  • Процессор: от 1 ядра; Factorio важна скорость одного ядра, а не их число.

Серверная версия игры (headless) скачивается с сайта разработчика бесплатно и без входа в учётную запись.

1. Обновите систему

sudo apt update && sudo apt upgrade -y

На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие.

Окно выбора раскладки клавиатуры. Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите Enter, в следующем окне снова Enter.

Сообщение о новом ядре. Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки.

Перезагрузите сервер и подключитесь снова через минуту:

sudo reboot

2. Установите нужные пакеты

sudo apt install -y wget xz-utils

3. Создайте пользователя для сервера

Игровой сервер не должен работать от root. Создайте для него отдельного пользователя и переключитесь на него:

sudo useradd -m -s /bin/bash factorio
sudo su - factorio

Пароль этому пользователю не нужен: входить под ним по SSH никто не будет.

4. Скачайте сервер

mkdir -p ~/factorio-server
cd ~/factorio-server
wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64
tar -xf factorio-headless.tar.xz
cd factorio
./bin/x64/factorio --version

Ссылка всегда отдаёт последнюю стабильную версию. Последняя команда показывает, какая версия скачалась, — она должна совпадать с версией игры у игроков.

5. Решите, нужен ли мир с дополнением Space Age

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

Если у игроков нет Space Age — отключите его до создания мира. Создайте файл со списком модов:

mkdir -p mods
nano mods/mod-list.json
{
  "mods": [
    {"name": "base", "enabled": true},
    {"name": "elevated-rails", "enabled": false},
    {"name": "quality", "enabled": false},
    {"name": "recycler", "enabled": false},
    {"name": "space-age", "enabled": false}
  ]
}

Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X).

Если дополнение есть у всех — этот шаг пропустите.

6. Создайте мир

./bin/x64/factorio --create saves/my-world.zip

Команда создаёт новый мир и завершается словом «Goodbye». Файл мира появляется в каталоге saves.

Чтобы перенести на сервер свой мир из одиночной игры, вместо этого положите его файл .zip в каталог saves и в шаге 8 укажите его имя.

7. Настройте сервер

Настройки хранятся в файле server-settings.json. Создайте его из образца и откройте:

cp data/server-settings.example.json data/server-settings.json
nano data/server-settings.json

Что стоит изменить:

  • "name" — название сервера.
  • "game_password" — пароль для входа. Пустые кавычки — вход без пароля.
  • "visibility" → "public" — показывать ли сервер в общем списке игры. Для общего списка нужна учётная запись factorio.com: её имя и токен вписываются в поля "username" и "token". Если учётной записи нет или сервер только для своих, поставьте false — иначе в журнале будет ошибка «Missing token».
  • "max_players" — предел числа игроков, 0 — без предела.
  • "auto_pause" — ставить игру на паузу, когда на сервере никого нет (по умолчанию true).
  • "autosave_interval" — как часто сервер сохраняет мир, в минутах.

После правки проверьте главные строки:

grep -E '"(name|public|game_password)"' data/server-settings.json

8. Создайте скрипт запуска

nano ~/factorio-server/start-server.sh
#!/bin/bash
cd /home/factorio/factorio-server/factorio
exec ./bin/x64/factorio --start-server saves/my-world.zip --server-settings data/server-settings.json

Сделайте его исполняемым и вернитесь к root:

chmod +x ~/factorio-server/start-server.sh
exit

9. Настройте автозапуск

sudo nano /etc/systemd/system/factorio-server.service

Вставьте:

[Unit]
Description=Factorio Dedicated Server
After=network.target

[Service]
Type=simple
User=factorio
WorkingDirectory=/home/factorio/factorio-server/factorio
ExecStart=/home/factorio/factorio-server/start-server.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

10. Запустите сервер и проверьте его

sudo systemctl daemon-reload
sudo systemctl enable factorio-server
sudo systemctl start factorio-server
sudo systemctl status factorio-server --no-pager -n 0

Состояние должно быть active (running):

Сервер готов, когда в журнале есть строка «Hosting game at IP ADDR», а порт 34197 занят. Там же видно, какие моды загружены: если вы отключали Space Age, в списке будет только base.

sudo journalctl -u factorio-server -o cat | grep -E "Loading mod .*\(data.lua\)|Hosting game" | tail -4
sudo ss -uln | grep 34197

Управление службой:

sudo systemctl stop factorio-server      # остановить (мир сохраняется)
sudo systemctl restart factorio-server   # перезапустить
sudo journalctl -u factorio-server -f    # смотреть журнал, выход — Ctrl+C

11. Откройте порт в файрволе

Внимание: сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните sudo ufw allow НОМЕР_ПОРТА/tcp.

sudo ufw allow OpenSSH
sudo ufw allow 34197/udp
sudo ufw enable

Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте y. Проверьте результат:

sudo ufw status

12. Зайдите на сервер

В игре выберите сетевую игру, подключение по адресу и введите IP_СЕРВЕРА:34197. Пошагово со снимками — в статье Как зайти на сервер Factorio.

Обновление сервера

После выхода новой версии игры остановите сервер, скачайте свежий архив поверх старого и запустите снова:

sudo systemctl stop factorio-server
sudo -u factorio bash -c "cd /home/factorio/factorio-server && wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64 && tar -xf factorio-headless.tar.xz"
sudo systemctl start factorio-server

Миры, настройки и список модов при этом сохраняются. Если загрузка архива остановилась на полпути (при проверке такое случилось один раз), прервите её клавишами Ctrl+C и повторите вторую команду.

Где лежат миры и моды

  • Миры и автосохранения: /home/factorio/factorio-server/factorio/saves/
  • Моды: /home/factorio/factorio-server/factorio/mods/ — сюда кладутся архивы модов с портала mods.factorio.com. Набор модов на сервере и у игроков должен совпадать.

Если что-то пошло не так

Что видите Причина и решение
В журнале «Matching server connection failed: … Missing token» В настройках включён общий список ("public": true), но не указаны имя и токен учётной записи factorio.com. Впишите их или поставьте "public": false. Сам сервер при этой ошибке работает.
Игроки без Space Age не могут зайти Мир создан с дополнением. Отключите его по шагу 5 и создайте новый мир по шагу 6.
Служба в состоянии «failed» Посмотрите причину: sudo journalctl -u factorio-server -n 50 --no-pager. Чаще всего это опечатка в имени файла мира или ошибка в server-settings.json (лишняя или пропущенная запятая).
После обновления игры игроки не могут подключиться Версия сервера отличается от версии игры. Обновите сервер.
Сервер запущен, но зайти не удаётся Проверьте, что порт открыт (sudo ufw status): Factorio использует порт 34197 по протоколу UDP.

Для размещения игровых серверов рекомендуем услуги ARK-HOSTER.RU: