Установка игрового сервера Factorio на Linux

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску

Инструкция по установке выделенного сервера 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: