【Rust】LinuxGSMを使用してRustサーバーをRed Hat Enterprise Linux 9に構築する方法

  • URLをコピーしました!

RustのマルチサーバーをVPSのテンプレート等使わず構築する方法を説明します。
OSはRed Hat Enterprise Linux 9を想定しています。

目次

概要

本記事ではLinuxにLinuxGSMを使ってRustサーバーを構築する手順を説明します。
LinuxGSMはRustに限らず様々なゲームのマルチサーバーを構築することができます。

本手順でコマンドを記載している箇所の先頭に「$」または「#」を記載しています。
「$」で始まるコマンドは、本手順内で作成するrustserverユーザで実行するコマンドです。
「#」で始まるコマンドは、rootユーザで実行するコマンドです。
※rootユーザを使いたくない場合は、「#」で始まるコマンドはsudoコマンド経由で実行してください。

本手順はRed Hat Enterprise Linux 9を想定して説明していますが、Rocky LinuxやAlmaLinuxでも同じコマンドで構築可能です。

事前準備

初期状態ではLinuxGSMでRustサーバーをインストールするために必要なライブラリが不足しているので、インストールします。

rootユーザで下記コマンドを実行してください。

# dnf install -y glibc.i686 libstdc++.i686 zlib-devel

この後作成するrustserverユーザにsudoコマンドをパスワードなしで実行する権限を付与していれば、上記コマンドが自動的に実行されるので本手順は不要です。

Rustサーバー構築

Rustサーバーを動かすためのユーザを作成

adduserコマンドでRustサーバーを動かすためのユーザを作成します。
ユーザ名は何でも良いです。

# adduser rustserver

ユーザ作成後、作成したユーザにスイッチします。

# su - rustserver

スイッチ後に/home/rustserverになっていればOKです。

Rustサーバーをインストール

LinuxGSMに必要なコンテンツをダウンロードします。

$ curl -Lo linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh rustserver

ダウンロード後、インストールを実行します。
途中でY/nで答える質問が何回か表示されますが、デフォルトにYが設定されているので、エンター押して進めて良いです。

$ ./rustserver install

サーバー設定

/home/rustserver/lgsm/config-lgsm/rustserver/rustserver.cfg

/home/rustserver/lgsm/config-lgsm/rustserver/_default.cfg に標準の設定があるので、ここから編集したい行をコピーして、同ディレクトリにあるrustserver.cfgファイルに貼り付けてください。

ここでは基本的にサーバー名やマップに関する設定を指定します。

_default.cfg を編集するとLinuxGSMの更新等で上書きされて、変更した設定が消える可能性があります。
必ずrustserver.cfgに張り付けて編集してください。

RCONのパスワードもここで設定しますが、デフォルトパスワードが固定で設定されています。
RCONのパスワードが知られるとRustサーバーを操作できるので、必ず変更してください。

/home/rustserver/serverfiles/server/rustserver/cfg/server.cfg

ここでは基本的にサーバー説明、サーバー画像、サーバータグ、WebサイトURLを指定します。
デフォルトのまま起動するとLinuxGSMに関する説明や画像が表示されますが、本ファイルにて指定されているので、該当設定を空にすれば消えます。

設定内容の確認

下記コマンドで現在の設定内容を表示することができます。
もし想定と異なれば、どこかの設定方法が誤っているので確認してください。

$ ./rustserver details

プラグインの利用準備(oxide)

Rustサーバーを運用するなら何かしらのプラグインを入れると思います。
oxideプラグインを利用できるように下記コマンドを実行します。
途中でインストールするプラグイン種別を聞かれるので、「rustoxide」と入力してください。

$ ./rustserver mods-install
...色々出る
Rust Installing mods
=================================
Available addons/mods
=================================
Carbon for Rust - Allows for the use of both plugins and harmony mods - carbonmod.gg
 * rustcarbon
Oxide for Rust - Allows for the use of plugins - https://umod.org/games/rust
 * rustoxide

Enter an addon/mod to install (or exit to abort): rustoxide ⇐ココ

ポート穴開け

OSのファイアウォールを有効にしている場合、Rustで使用するポートを許可する必要があるので、追加します。
ファイアウォールを無効にしている場合は本手順は不要です。

自宅のRustサーバーをインターネット上の外部に公開する場合は、ルータの設定も必要になりますので、適宜設定してください。
ルータの設定については機種ごとに違うのでここでは説明しません。

許可ポートを追加

Rustサーバーで使用するポートを許可します。
デフォルト設定であれば、下記コマンドで追加可能です。
デフォルトから変更した場合、ポート番号部分を適宜変更してください。

# firewall-cmd --zone=public --add-port=28015/udp --permanent
# firewall-cmd --zone=public --add-port=28017/udp --permanent
# firewall-cmd --zone=public --add-port=28016/tcp --permanent
# firewall-cmd --zone=public --add-port=28082/tcp --permanent

変更を反映

# firewall-cmd --reload

サーバー操作方法一覧

主に使用するサーバーコマンドです。

マンド説明
$ ./rustserver startサーバーを起動します。
$ ./rustserver stopサーバーを停止します。
$ ./rustserver restartサーバーを再起動します。
$ ./rustserver detailsサーバーの設定状況、稼働状況を表示します。
$ ./rustserver full-wipeフルワイプします。
$ ./rustserver map-wipeマップワイプします。
プレイヤーのBP情報はそのままです。
$ ./rustserver force-updateRustサーバーを更新します。
起動中に実行すると、再起動します。
$ ./rustserver mods-installoxideプラグインを有効にし、各プラグインを配置するoxideディレクトリを作成します。
$ ./rustserver mods-updateoxideを更新します。
基本的にRustサーバーの更新と一緒に配信されます。
$ ./rustserver update-lgsmLinuxGSMを更新します。

cron等で上記コマンドを定期実行することで再起動やアップデートを自動化できますが、正直不便です。
別記事にて、systemdで管理する方法を紹介する予定です。

参考サイト

https://linuxgsm.com/servers/rustserver/

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんばんは!本サイトの管理人のdoraliverです。
普段遊んでいるゲームの情報を発信できればと思います。
最近はRustのサーバーを建てて遊んでいるので、サーバーに関する情報をお届けします。

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次