Zimri

Zimri - xlog

生活就像海洋 🌊
github

CentosでFactorioサーバーを構築する

《异星工厂》は、slpwnd によって制作・配信されたシミュレーション経営ゲームであり、プレイヤーは宇宙船が異星に墜落し、惑星の資源を利用して生き残り、工場を建設する必要があります。
資源を収集し、装置をアップグレードし、基礎インフラを構築し、生産を自動化し、敵を打ち負かします。

環境の準備:Centos7.x
システムの更新、国内サーバーではアリババクラウドのソースを使用し、海外サーバーではシステムの更新のみを行います。

一、システムの更新とソースの変更#

まず、予測できないエラーが発生した場合に備えて、元のソースをバックアップします。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
アリババクラウドの Centos7 ソースをインポートします。

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
または

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
EPEL を追加します。

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

curl -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

YUM キャッシュをクリアします。

yum clean all
アリババクラウドのキャッシュを作成します。

yum makecache
これでソースの変更が成功しました。システムを更新することができます(必要ない場合、時間がかかります)。

yum -y update
システムを更新した場合は、再起動してください。

二、Centos glibc-2.18 環境のコンパイル#

gcc と wget をインストールします。

yum install gcc -y
yum install wget -y

glibc-2.18.tar.gz をダウンロードします。

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

プライベートアクセラレーションアドレス(国内):

wget https://webstation.zimri.online/share/Game/factorio/server/glibc-2.18.tar.gz

解凍して glibc-2.18 に移動します。

tar -xvf glibc-2.18.tar.gz
cd glibc-2.18

build フォルダを作成します。

mkdir build

cd build

コンパイルします。

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make -j4

make install

ldd --version

三、screen のインストール#

Screen は、物理的な端末を複数のプロセス間でマルチプレクスするためのフルスクリーンウィンドウマネージャーです。

ユーザーは、1 つの screen セッション内で複数の screen サブセッションを作成できます。各 screen セッション(またはサブセッション)では、実際の telnet/SSH 接続ウィンドウのように操作できます。

yum install screen -y

四、ファイアウォールの例外#

デフォルトの CentOS7 では、ファイアウォール firewalld が使用されています。

ファイアウォールの状態を確認します。

firewall-cmd --state 
または
systemctl status firewalld

"success" と表示されれば、ファイアウォールが有効になっています。
ファイアウォールが無効になっている場合、以下の手順は実行する必要はありませんが、セキュリティのためにファイアウォールを有効にすることをお勧めします。

ファイアウォールを起動する必要がある場合は、次のコマンドを実行します。

systemctl start firewalld

起動時に有効にするには、次のコマンドを実行します。

systemctl enable firewalld

Factorio の指定ポートを開放します。

firewall-cmd --zone=public --add-port=34197/udp --permanent

SSH ポートも念のため追加します。

sudo firewall-cmd --zone=public --permanent --add-service=ssh
  1. 設定を再読み込みして有効にする
    ファイアウォールを再読み込みします。
sudo firewall-cmd --reload

五、Factorio サーバーの準備#

1. プログラムのダウンロード(最新版または必要なバージョン)#

cd ~
wget https://www.factorio.com/get-download/0.17.79/headless/linux64

2. プライベートアクセラレーションアドレス(国内)#

wget https://webstation.zimri.online/share/Game/factorio/server/0.17.79/linux64

3. 圧縮ファイルの解凍#

tar -xvf linux64

4. プロジェクトを /opt ディレクトリに移動することをお勧めします#

mv -f /root/factorio /opt/factorio

5. 設定ファイルの編集#

/opt/factorio/data フォルダに移動し、server-settings.example.json ファイルを編集します。

cd /opt/factorio/data
cp server-settings.example.json server-settings.json

必要な設定を行います。

"name": "[CN]サーバー名",
  "description": "サーバーの説明",
  "username": "factorio公式ウェブサイトで登録したアカウント",
  "password": "factorioパスワード",
  "token": "トークンを設定します。形式はb50704b226ab50704b226ab50704b226aのようです。",
  ...

6. マップの生成 *#

サーバーを初めて作成する場合、マップを生成するために必ず実行する必要があります。

cd /opt/factorio
./bin/x64/factorio --create ./saves/test1.zip

7. サーバーの起動#

Factorio SSH コマンドが独占されているため、バックグラウンドで実行するために、事前にインストールした screen コマンドを使用します。

screen -S factorio

指定のマップでサーバーを起動するコマンド

/opt/factorio/bin/x64/factorio --config /opt/factorio/config/config.ini --port 34197 --start-server /opt/factorio/saves/test1.zip --server-settings /opt/factorio/data/server-settings.json

saves フォルダ内の最新のマップセーブでサーバーを起動するコマンド

/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json

その後、SSH ウィンドウを直接終了してください。

8. 管理コマンド#

サーバーへのログイン#

SSH 接続後、バックグラウンドで実行されている ssh コマンドラインを表示します。

screen -ls

出力:

There is a screen on:
        1051.factorio_auto      (Attached)
1 Socket in /var/run/screen/S-root.

screen に接続し、前にプロセス ID が表示される場合は、ID を使用して直接ログインできます(ID は動的です)。

screen -r 1051

即時セーブ#

screen にログインした後、次のコマンドを入力します。

/server-save

セーブが実行されます。

Factorio サーバーの終了#

screen にログインした後、Ctrl + C を押します。
サーバーが終了します。

六、起動時に自動実行#

Factorio SSH コマンドが独占されているため、起動時に screen コマンドを使用して saves フォルダ内の最新のマップセーブでサーバーを起動するようにします。

起動スクリプトを作成します。

cd /opt/factorio
mkdir start
cd start
touch screen.sh
vi screen.sh

INSERT の内容は以下の通りです。

screen_name="factorio_auto"
screen -dmS $screen_name

cmd="/opt/factorio/start/factorio-run.sh";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\n'

で保存します。

touch factorio-run.sh
vi screen.sh

INSERT の内容は以下の通りです。

/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json

で保存します。

実行権限を付与します。

chmod +x factorio-run.sh
chmod +x screen.sh

rc.local を編集し、最後の行に作成したスクリプトを追加します。

vi /etc/rc.d/rc.local
... ...
/opt/factorio/start/screen.sh

実行権限を付与します。

chmod +x /etc/rc.d/rc.local
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。