Game Factorio — Setting up an Ubuntu headless server

Запуск выделенного сервера для 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/

Добавить комментарий