Запуск выделенного сервера для Factorio на Ubuntu
Войдите в систему, используя SSH и учетную запись root. Первым делом необходимо защитить сервер с помощью брандмауэра и препятствовать тому, чтобы сети ботов рассылали спам на ваш сервер при попытке входа в систему.
Обновите установленные на сервере пакеты:
apt-get update apt-get upgrade -y
Разрешите SSH и Factorio соединения:
ufw allow openssh ufw allow 34197/udp ufw enable
Автоматически запрещать попытки входа в систему, которые неоднократно пытаются войти в систему с использованием общих паролей (ботнеты):
apt-get install -y fail2ban
Следующий шаг является необязательным, но я всегда устанавливаю часовой пояс сервера на свой часовой пояс, так как это облегчает мне чтение файлов журнала:
dpkg-reconfigure tzdata
Теперь добавьте пользователя (без прав root / sudo), который будет запускать игру:
adduser gamemaster
При желании вы можете добавить свои открытые ключи SSH к авторизованным SSH-ключам этого пользователя, если вы хотите войти в систему и посмотреть журнал консоли factorio:
mkdir /home/gamemaster/.ssh nano /home/gamemaster/.ssh/authorized_keys
затем вставьте свой ~/.ssh/id_rsa.pub сюда
Теперь установим игру:
cd /home/gamemaster wget --content-disposition https://www.factorio.com/get-download/latest/headless/linux64
извлечь игру
tar xf factorio_
Создайте файл настроек сервера
cd factorio/data/ cp server-settings.example.json server-settings.json nano server-settings.json
вам необходимо указать здесь свое имя пользователя и пароль (или токен), если вы хотите разместить игру в общедоступном каталоге. Вы все равно можете подключиться напрямую, если вы этого не сделаете, что нормально, если вы просто хотите поиграть с группой друзей. Также рекомендуется указать свое имя в разделе со списком постоянных администраторов.
Если вы намереваетесь оставить сервер работающим какое-то время, вам нужно будет время от времени обновлять его по мере выхода новых версий. Для этого проще всего использовать скрипт средства обновления Python от пользователя GitHub narc0tiq. Сначала установите необходимые пакеты python:
apt install python-pip pip install requests
Затем загрузите скрипт обновления (и сделайте его исполняемым)
cd /home/gamemaster/factorio/bin/x64 wget --content-disposition https://raw.githubusercontent.com/narc0tiq/factorio-updater/master/update_factorio.py chmod +x ./update_factorio.py
Теперь обновить можно так:
cd /home/gamemaster/factorio/bin/x64 ./update_factorio.py -Dxa ./factorio
Теперь создайте каталог для файлов сохранения:
mkdir /home/gamemaster/factorio/saves
Предоставьте учетной записи gamemaster право собственности на все файлы и папки, которые мы создали до сих пор:
chown gamemaster:gamemaster /home/gamemaster -R
Теперь вы можете либо загрузить файл сохранения в папку сохранений, которую мы создали ранее (не забудьте передать право собственности мастеру игры), либо создать новую случайно сгенерированную карту:
su gamemaster /home/gamemaster/factorio/bin/x64/factorio --create /home/gamemaster/factorio/saves/initial.zip exit
(выйдите только один раз, чтобы вернуться в корневую оболочку)
Теперь создайте сервис Factorio, который обеспечит перезапуск игры в случае сбоя или перезагрузки сервера.
cd /etc/systemd/system nano factorio.service
Вставьте в этот файл следующее:
[Unit] Description=Factorio Server service After=network.target [Service] User=gamemaster ExecStart=/home/gamemaster/factorio/bin/x64/factorio --server-settings /home/gamemaster/factorio/data/server-settings.json --start-server-load-latest --console-log /home/gamemaster/Factorio.log Restart=always [Install] WantedBy=multi-user.target
Затем перезагрузите сервисный демон, чтобы он заметил новую службу и включил новую службу:
systemctl daemon-reload systemctl enable factorio
Если вы хотите проверить, что все работает, вы можете вручную запустить сервер:
su gamemaster /home/gamemaster/factorio/bin/x64/factorio --server-settings /home/gamemaster/factorio/data/server-settings.json --start-server-load-latest --console-log /home/gamemaster/Factorio.log
и подключитесь к нему. Снова остановите сервер с помощью CTRL-C
Наконец, теперь вы можете запустить службу factorio и подключиться к своему серверу (либо через его IP-адрес, либо через общедоступный каталог, если вы включили это в файле server-settings.json):
systemctl start factorio
После подключения к серверу вы увидите свой логин в журнале игровой консоли:
cat /home/gamemaster/Factorio.log
Здесь также будет весь публичный чат, а также все сообщения [JOIN], [LEAVE], [BAN] и многое другое.
Счастливого строительства!
Original article : https://www.reddit.com/r/factorio/comments/6qo2ge/guide_setting_up_an_ubuntu_headless_server/