Factorio
Няма достатъчно оценки
Создаем сервер Factorio на Linux
От Kweemy
По быстрому как из терминала Linux запустить сервер Factorio для совместной игры. Без Docker'а и лишних танцев с бубном.
   
Награда
Добавяне към любими
В любими
Премахване от любими
Подготовка
Для сервера нам нужно:
  • Сервер на Linux на Ubuntu или Debian
  • SSH и FTP клиент (в моём случае я буду использовать Bitvise[www.bitvise.com], вы же можете использовать то, что вам удобно)
  • Умение вчитываться, а не в тупую копировать команды (в принципе, так тоже сработает)
Заходим через SSH и скачиваем сервер
После покупки сервера вам выдаются: IP адрес, имя пользователя (в 90%+ это root), пароль от пользователя.


Вводите данные и нажимаете снизу "Log in"

Если у вас другой клиент, то чаще всего после подключения вас в самом терминале попросит пароль от пользователя

После логина у вас будет доступен SFTP клиент и возможность открывать терминал


Идём на сайт factorio.com/download
и из 4 вариантов нам нужен этот:


Нажимаем ПКМ и "Копировать ссылку"
Сейчас у нас в буфере ссылка на скачивание сервера


Теперь открываем терминал и пишем:
cd /
cd /opt
Если вы сидите от имени root, то можно писать команду без sudo
sudo wget -O factorio_server.tar.gz {ссылка с сайта}
Вставлять ссылку/текст в терминал можно, просто, нажав ПКМ
По итогу должно получиться на примере:
sudo wget -O factorio_server.tar.gz https://factorio.com/get-download/1.1.74/headless/linux64

После окончания загрузки можно прописать команду
ls
И проверить что всё скачалось или открыть SFTP клиент и проверить так


Далее распаковываем архив командой
sudo tar -xf factorio_server.tar.gz

На выходе у нас в папке opt распакуется сервер в папке factorio
Загружаем сейв | Запускаем сервер
Если у вас есть сейв с игрой и вы хотите его перенести на сервер, то заходим на своём компьютере в %Appdata%\Factorio\saves и выбираем нужный нам сейв.

Если вы всё это делаете не под пользователем root , то пишем следующую команду:
sudo chown -R {имя_пользователя} /opt/factorio
(С точки зрения безопасности - это 3.14здец. С моей точки зрения - мне п0хyй, ничё не будет, кому этот сервер нужен)

Открываем SFTP клиент и в папке factorio создаём папку "saves"
(ПКМ -> создать паку) ( ͡° ͜ʖ ͡°) курс продвинутого пользователя ПК


И закидываете в эту папку ваш сейв и запоминаем его название


Если вы хотите создать новый прямо сейчас
Повторяем описанное выше (выдача прав, создание папки)
Пишем в терминал:
cd /opt/factorio ./bin/x64/factorio --create ./saves/world.zip
Если последняя команда выдает ошибку что у неё нет привилегий, то перед командой напишите sudo

Запуск сервера
для запуска сервера в терминале, вам нужно находиться в папке factorio, после чего прописываем:
sudo ./bin/x64/factorio --start-server {имя сейва без .zip}
После запуска в конце должно быть написано:
updateTick(0) chaning state from(CreatingGame) to(InGame)

Значит всё работает правильно
Оставляем сервер работать + Видимость
По сути сервер работает, на него можно зайти, но есть 2 проблемы
1. При закрытии терминала - сервер выключается
2. Сервера нет в общем списке серверов (если вам это не нужно, то забейте)

Остановить сервер не закрывая терминал можно комбинацией Ctrl + C

Оставляем сервер включенным
Скачиваем через терминал screen
sudo apt-get install screen
Терминал попросит подтвердить действие, пишем Y , когда попросят и всё готово

После его установки (сервер должен быть выключен) пишем команду
screen -dmS server sudo ./bin/x64/factorio --start-server {имя сейва без .zip}
где "server" название скрина, вы же можете назвать его как угодно

После этих махинцаий у нас будет открыт сервер в фоне, проверить это можно командой:
screen -ls
Чтобы зайти в окно screen пишем команду:
screen -r
Вы снова сможете видеть что происходит внутри screen'а и здесь его можно будет закрыть (Комбинация CTRL + C), либо снова свернуть комбинацией Ctrl + A + D

Как добавить сервер в публичный список серверов (хз нaxуя)
В папке factorio/config будет лежать файл server-settings.json
в этом файле можно редактировать макс. кол-во игроков, имя сервера в списке, пароль при подключении и т.д

Если вы выдали права до этого, то вы можете через SFTP клиент редактировать этот файл через ПКМ -> Edit

Чтобы сервер отображался введите ему имя, описание, макс кол-во игроков.
А в пустых кавычках
"username": "",
"password": "",
Вводим свой логин и пароль от аккаунта factorio, если вы не знаете свой пароль (а вы его не знаете), то через сайт factorio его можно сбросить с помощью steam

Чуть ниже есть пустое место token, его вводите ВМЕСТО пароля, если вы его не хотите вводить. То есть у вас должен быть вписан ЛИБО ПАРОЛЬ, ЛИБО ТОКЕН и никак иначе.

"game_password":
Это пароль при заходе на сервер, думаю объяснений не нужно


Теперь при запуске сервера помимо
--start-server {имя сейва без .zip}
нужно будет прописывать:
--start-server {имя сейва без .zip} --server-settings /opt/factorio/config/server-settings.json

Fin

16 коментара
StopGuard (Мертвый) 1 март в 11:16 
ну с этим трудно спорить. но если уж ориентироваться на виндузятников, то лучше писать видеогайд. возможно на следующей неделе подниму свой сервак, заодно и гайдецкого запишу.

Имхо с докером можно обойтись без половины костылей из этого гайда тк докер сам скачает образ, поднимет сервер загрузив нужный сейв. всё что останется сделать - пробросить из контейнера файл-конфиг и папку с сохранениями, чтоб не лазить в контейнер для настройки.
Kweemy  [автор] 1 март в 8:28 
Расчёт в первую очередь на людей, которые не пользуется линуском. Если человек знает, как использовать докер, он точно разберётся сам и без этого гайда.
StopGuard (Мертвый) 28 февр. в 22:09 
не блочит. постоянно его использую. это был один эпизод длительностью в пару дней.

мануал на работу с докером не очень нужен - в инете их хватает. есть даже готовые образы с факторкой на докерхабе. любой кто юзал докер хоть раз в жизни справится.
Kweemy  [автор] 27 февр. в 21:50 
Docker блочит ру ip, если брать хост например в мск. А так напиши свой с использованием docker'а
StopGuard (Мертвый) 27 февр. в 20:25 
осталось понять чем плох докер, учитывая, что он по сути делает большую часть телодвижений за юзверя.
Kweemy  [автор] 5 юли 2024 в 9:12 
по идее в server-settings.json надо прописать
"require_user_verification": false

то есть на выходе что то вроде этого:
{
"require_user_verification": false
}

Если в server-settings.json больше настроек, ну например максимум слотов, то все строчки кроме последней должны иметь запятые (как требует json)
{
"max_players": 12,
"game_password": "pass",
"require_user_verification": true
}
SIVERT 5 юли 2024 в 7:14 
Только 1 интересно, factorio.zone пиратку проскает на ура, а если самому настроить то вообще никак
Kweemy  [автор] 11 ноем. 2023 в 7:22 
ну я еблaн оказывается, там без / , тоесть просто:
sudo tar -xf factorio_server.tar.gz
Pela 10 ноем. 2023 в 3:59 
можете подсказать уже много перепробовал