Установка игрового сервера Factorio на Linux
Инструкция по установке выделенного сервера 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:
- VPS/VDS серверы — для небольших и средних серверов
- Выделенные серверы — для высоконагруженных игровых серверов