Установка игрового сервера Satisfactory на Linux: различия между версиями
Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана |
Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана |
||
| Строка 4: | Строка 4: | ||
* VDS с '''Ubuntu 24.04 LTS''' и доступом '''root''' по SSH. | * VDS с '''Ubuntu 24.04 LTS''' и доступом '''root''' по SSH. | ||
* '''Память:''' сервер с новым миром занимает около 2 ГБ, с большой фабрикой — заметно больше. Берите VDS от 8 ГБ. | * '''Память:''' сервер с новым миром занимает около 2,5 ГБ, с большой фабрикой — заметно больше. Берите VDS от 8 ГБ. | ||
* '''Диск:''' файлы сервера занимают 2,8 ГБ; с запасом на обновления и сохранения нужно от 10 ГБ свободного места. | * '''Диск:''' файлы сервера занимают 2,8 ГБ; с запасом на обновления и сохранения нужно от 10 ГБ свободного места. | ||
* '''Процессор:''' от 2 ядер. | * '''Процессор:''' от 2 ядер. | ||
| Строка 202: | Строка 202: | ||
T=$(curl -sk -X POST $API -H "Content-Type: application/json" -d '{"function":"PasswordLogin","data":{"MinimumPrivilegeLevel":"Administrator","Password":"Secret123"}}' | grep -oP '"authenticationToken":"\K[^"]+') | T=$(curl -sk -X POST $API -H "Content-Type: application/json" -d '{"function":"PasswordLogin","data":{"MinimumPrivilegeLevel":"Administrator","Password":"Secret123"}}' | grep -oP '"authenticationToken":"\K[^"]+') | ||
curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"SaveGame","data":{"SaveName":"before-stop"}}'; echo | curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"SaveGame","data":{"SaveName":"before-stop"}}'; echo | ||
sudo find /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames -name "*.sav" -printf "%TT %f\n" | cut -c1-8, | sudo find /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames -name "*.sav" -printf "%TT %f\n" | cut -c1-8,20-</pre> | ||
[[Файл:Satisfactory-linux-save.png|800px]] | [[Файл:Satisfactory-linux-save.png|800px]] | ||
Текущая версия от 20:30, 14 ноября 2026
Инструкция по установке выделенного сервера Satisfactory на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 14 ноября 2026 года на чистой Ubuntu 24.04.4.
Что понадобится
- VDS с Ubuntu 24.04 LTS и доступом root по SSH.
- Память: сервер с новым миром занимает около 2,5 ГБ, с большой фабрикой — заметно больше. Берите VDS от 8 ГБ.
- Диск: файлы сервера занимают 2,8 ГБ; с запасом на обновления и сохранения нужно от 10 ГБ свободного места.
- Процессор: от 2 ядер.
Учётная запись Steam и купленная игра для установки сервера не нужны.
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 lib32gcc-s1 lib32stdc++6
lib32gcc-s1иlib32stdc++6нужны программе SteamCMD, через которую скачивается сервер.
3. Создайте пользователя для сервера
Игровой сервер не должен работать от root. Создайте для него отдельного пользователя:
sudo useradd -m -s /bin/bash satisfactory
Пароль этому пользователю не нужен: входить под ним по SSH никто не будет, а переключаться на него вы будете командой из шага 5.
4. Скачайте SteamCMD
sudo mkdir -p /opt/steamcmd cd /opt/steamcmd sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz sudo tar -xzf steamcmd_linux.tar.gz sudo chown -R satisfactory:satisfactory /opt/steamcmd
Архив маленький (2,3 МБ), но с серверов Steam он может качаться около минуты — это нормально.
5. Установите сервер Satisfactory
Переключитесь на пользователя satisfactory и запустите SteamCMD:
sudo su - satisfactory cd /opt/steamcmd ./steamcmd.sh
При первом запуске SteamCMD скачивает собственное обновление (около 40 МБ). С серверов Steam оно может идти несколько минут — дождитесь приглашения Steam> и ничего не вводите раньше.
Затем введите по очереди три команды. Порядок важен: каталог установки задаётся до входа.
force_install_dir /home/satisfactory/satisfactory-server login anonymous app_update 1690800 validate
Если вместо загрузки появилась строка «ERROR! Failed to install app … (Missing configuration)», просто введите команду app_update ещё раз: при первом запуске SteamCMD такое случается, со второго раза загрузка начинается.
Загрузка 1,5 ГБ занимает несколько минут. Дождитесь строки «Success! App '1690800' fully installed.»:
Выйдите из SteamCMD:
quit
Проверьте, что файлы на месте:
ls /home/satisfactory/satisfactory-server
6. Что нужно знать до запуска
У сервера Satisfactory нет файла настроек, который нужно править заранее, и свой скрипт запуска ему не нужен: в каталоге уже есть штатный FactoryServer.sh.
Название сервера, пароль администратора и мир задаются после запуска — из игры, через «Диспетчер серверов» (шаг 10). До этого сервер работает, но игры на нём нет.
Сервер использует три порта, и открыть нужно все три (шаг 9):
7777/udp— игра;7777/tcp— управление сервером из игры;8888/tcp— обмен данными с игроками.
Порты 15000 и 15777 из старых руководств с версии 1.0 не используются.
Вернитесь к root:
exit
7. Настройте автозапуск
Чтобы сервер запускался вместе с системой и поднимался после сбоя, создайте для него службу:
sudo nano /etc/systemd/system/satisfactory-server.service
Вставьте:
[Unit] Description=Satisfactory Dedicated Server After=network.target [Service] Type=simple User=satisfactory WorkingDirectory=/home/satisfactory/satisfactory-server ExecStart=/home/satisfactory/satisfactory-server/FactoryServer.sh -log -unattended Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
8. Запустите сервер и проверьте его
sudo systemctl daemon-reload sudo systemctl enable satisfactory-server sudo systemctl start satisfactory-server
Запуск занимает меньше минуты. Проверьте состояние службы — должно быть active (running):
sudo systemctl status satisfactory-server --no-pager -n 0
Первая команда показывает, что сервер занял все три порта. Вторая спрашивает сервер о его состоянии — в ответе должно быть healthy:
sudo ss -lntu | grep -E "7777|8888"
curl -sk -X POST https://127.0.0.1:7777/api/v1 -H "Content-Type: application/json" -d '{"function":"HealthCheck","data":{"clientCustomData":""}}'; echo
Управление службой:
sudo systemctl stop satisfactory-server # остановить sudo systemctl restart satisfactory-server # перезапустить sudo journalctl -u satisfactory-server -f # смотреть журнал, выход — Ctrl+C
9. Откройте порты в файрволе
Внимание: сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните sudo ufw allow НОМЕР_ПОРТА/tcp.
sudo ufw allow OpenSSH sudo ufw allow 7777/udp sudo ufw allow 7777/tcp sudo ufw allow 8888/tcp sudo ufw enable
Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте y. Проверьте результат:
sudo ufw status
10. Зайдите на сервер
Первым на сервер должен зайти его владелец и «занять» сервер:
1. В игре откройте «Диспетчер серверов» (Server Manager) и добавьте сервер по адресу IP_СЕРВЕРА, порт 7777.
2. Игра предложит задать название сервера и пароль администратора.
3. Создайте новую игру или загрузите сохранение.
После этого остальные игроки подключаются через тот же «Диспетчер серверов». Пошагово — в статье Как зайти на сервер Satisfactory.
Настройка без игры (необязательно)
Занять сервер и создать мир можно и с самой VDS — запросами к интерфейсу управления сервера. Выполните команды по порядку, заменив название, пароль и имя сессии на свои:
API=https://127.0.0.1:7777/api/v1
T=$(curl -sk -X POST $API -H "Content-Type: application/json" -d '{"function":"PasswordlessLogin","data":{"MinimumPrivilegeLevel":"InitialAdmin"}}' | grep -oP '"authenticationToken":"\K[^"]+')
T=$(curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"ClaimServer","data":{"ServerName":"My Satisfactory","AdminPassword":"Secret123"}}' | grep -oP '"authenticationToken":"\K[^"]+')
curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"CreateNewGame","data":{"NewGameData":{"SessionName":"MySession"}}}'; echo
Через полминуты проверьте состояние — в ответе должно быть имя сессии:
curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"QueryServerState","data":{}}' | cut -c1-110; echo
Сохранение мира
Сервер сам сохраняет мир: по умолчанию каждые 5 минут. Чтобы сохранить его прямо сейчас — например, перед остановкой или обновлением, — войдите с паролем администратора и отправьте команду сохранения:
API=https://127.0.0.1:7777/api/v1
T=$(curl -sk -X POST $API -H "Content-Type: application/json" -d '{"function":"PasswordLogin","data":{"MinimumPrivilegeLevel":"Administrator","Password":"Secret123"}}' | grep -oP '"authenticationToken":"\K[^"]+')
curl -sk -X POST $API -H "Content-Type: application/json" -H "Authorization: Bearer $T" -d '{"function":"SaveGame","data":{"SaveName":"before-stop"}}'; echo
sudo find /home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames -name "*.sav" -printf "%TT %f\n" | cut -c1-8,20-
Обновление сервера
После выхода обновления игры остановите сервер, обновите файлы и запустите снова:
sudo systemctl stop satisfactory-server sudo -u satisfactory /opt/steamcmd/steamcmd.sh +force_install_dir /home/satisfactory/satisfactory-server +login anonymous +app_update 1690800 validate +quit sudo systemctl start satisfactory-server
Ваши настройки и сохранения при обновлении не затрагиваются.
Где лежат сохранения
Сохранения и настройки сервера лежат в домашнем каталоге его пользователя:
/home/satisfactory/.config/Epic/FactoryGame/Saved/SaveGames/
Чтобы перенести мир с другого сервера или из одиночной игры, положите файл .sav в этот каталог и загрузите его из игры через «Диспетчер серверов».
Если что-то пошло не так
| Что видите | Причина и решение |
|---|---|
| Сервер виден в «Диспетчере серверов», но подключиться или управлять им не удаётся | Открыты не все порты. Нужны три: 7777/udp, 7777/tcp и 8888/tcp. Проверьте командой sudo ufw status.
|
Запрос HealthCheck не отвечает |
Сервер ещё запускается или не запущен. Подождите минуту и проверьте службу: sudo systemctl status satisfactory-server.
|
| После обновления игры игроки не могут подключиться | Версия сервера отличается от версии игры. Обновите сервер. |
| SteamCMD отвечает «ERROR! Failed to install app '1690800' (Missing configuration)» | Так иногда бывает при первом запуске SteamCMD. Введите команду app_update ещё раз — со второго раза загрузка начинается.
|
После установки нет каталога /home/satisfactory/satisfactory-server |
Команда force_install_dir была введена с ошибкой или после login, и сервер установился в /home/satisfactory/Steam/steamapps/common/. Запустите SteamCMD заново и повторите три команды из шага 5 по порядку.
|
| Служба в состоянии «failed» | Посмотрите причину: sudo journalctl -u satisfactory-server -n 50 --no-pager. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым.
|
| Сервер запущен, но зайти не удаётся | Проверьте, что порты открыты (sudo ufw status) и что в игре указан верный адрес и порт.
|
Для размещения игровых серверов рекомендуем услуги ARK-HOSTER.RU:
- VPS/VDS серверы — для небольших и средних серверов
- Выделенные серверы — для высоконагруженных игровых серверов