Killing Floor 2

Killing Floor 2

十分な評価がありません
[JP] Linux サーバー開設ガイド
作者: Asapi 1020
あさぴ鯖を例に、Linuxにおけるサーバー管理の色々を解説します。
   
アワード
お気に入り
お気に入り
お気に入りから削除
§1. Linuxを用意しよう
まず、常時稼働している鯖を立てたい、自宅では回線が不安、などに当てはまらない場合は、自宅のPC(Windows)で十分なので、以下のガイドを参照するだけで十分です。
https://steamcommunity.com/sharedfiles/filedetails/?id=430515480 https://steamcommunity.com/sharedfiles/filedetails/?id=2393771628

このガイドでは、外部にサーバーをレンタルしLinux環境でサーバー構築をする手順について、私の管理する鯖を例に説明します。

まず、どこのレンタルサーバーを用いるかを決めます。
結論から言うと、僕の環境は次の通りです。
カゴヤVPS 3850円/月 OS: Ubuntu 20.04 CPU: 4コア メモリ: 4GB ストレージ: 100GB

🔗参考文献[www.server-navi.com]
🔗カゴヤ公式サイト[www.kagoya.jp]

ログイン後、こちらの画面の「インスタンス作成」からスペックの選択に進みます。
KF2は大容量なので、ストレージが100GBあるものを選びましょう。
この先はすべて前述の私の環境を例に解説するので、違うスペックを選ぶ場合は注意してください。

スペックを選んだら、「ログイン用認証キー追加」をクリック、任意のキー名で登録、その下でインスタンス名を入力したら、画面最下部のインスタンス作成をクリックして完了です。

インスタンス一覧から、作成したものを選び「稼働」をクリックしましょう。
これでレンタルしたサーバーが起動できました。
このサーバーを管理するために「コンソール」タブからコンソールを起動しましょう。
表示されるはずのポップアップウィンドウは、ブラウザでブロックされていることが多いので、必要に応じて許可を施しましょう。
🔗ポップアップのブロックについて[flets-w.com]
§2. 構築手順
まずはLinuxの環境を整えていきます。

コンソールを開くと
login:
と出てくるので
login: root
と入力しましょう。パスワードが求められるのでインスタンス作成時に決めたパスワードを入力します。

管理者としてログインできたら、仮想メモリの設定を行います。
私の場合4GBのメモリで契約してますが、念のため16GBくらいほしいので、足りない12GBをSSD上に仮想メモリとして用意します。
次の通りにコマンドを入力します。
# fallocate -l 12G /swapfile # chmod 600 /swapfile # mkswap /swapfile # swapon /swapfile # sed -i ‘$ a /swapfile swap swap defaults 0 0’ /etc/fstab
/swapfile は任意の名前です。使えない名前だとbusyと怒られるので、適当に /swapfile2 でもなんでも変えておきましょう。
# free -m -h
と入力すると、元のメモリとSwapのメモリが確認できます。

次にファイアウォールを設定します。
解放すべきポートは次の通りです。
27015
Steam
20560
Steam
123
Weekly
7777
Server
7777は任意のポート番号です。複数サーバーを立てる予定がある場合は、この段階でたくさん開けておくと良いと思います。
私の場合は7777~7781まで開けています。
手順は次の通りです。
# apt install firewalld # firewall-cmd --permanent --add-port=27015/udp # firewall-cmd --permanent --add-port=20560/udp # firewall-cmd --permanent --add-port=123/udp # firewall-cmd --permanent --add-port=7777/udp # firewall-cmd --reload
その後、VPSの管理サイト側でも操作を行います。
セキュリティ設定からセキュリティグループを作成し、同じ番号のポートを開けていきます。

次はSteamCMDなるプログラムをインストールします。
その前にいくつかのインストールと、ユーザーアカウント作成を行います。
# apt update # apt upgrade # apt install lib32gcc1 # apt install curl # useradd -m [任意のユーザー名]
ユーザーが作成できました。
# su - [ユーザー名]
管理者からユーザーに切り替わりました。
$ mkdir ~/Steam $ cd ~/Steam $ curl -sqL “https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz” | tar zxvf -
SteamCMDがダウンロードできました。
$ ./steamcmd.sh Steam>force_install_dir kf2server Steam>login anonymous Steam>app_update 232130 validate Steam>exit
KF2のサーバーがダウンロードできました。
🔗参考文献[wiki.killingfloor2.com]
§3. よく使うコマンド
KF2サーバーのセットアップ詳細に移る前に、Linux操作でよく使うコマンドを紹介しておきます。
cd [dir]
ディレクトリの移動
dir [dir]
ディレクトリの中身を参照
vi [file]
ファイルのテキストを編集
cp [file1] [file2]
ファイル1をファイル2にコピー
rm [file]
ファイルの削除
more
ファイルの内容を読む
df -h
ストレージの使用状況を確認
ps -a
実行中プロセスの確認
kill [ID]
IDのプロセスを停止

ここに載せていないものでも、Linux ~~~ で調べれば大抵見つかります。
§4. KF2サーバーの設定
Linuxサーバーの起動コマンド
./Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab
これを毎回入力するのは面倒なのでシェルスクリプトを作りましょう。Windowsでいうところのbatファイルみたいなものです。
vi 01.sh
ファイル名はなんでもいいですが、拡張子はshです。
vi はLinuxにおけるテキストエディタで、コンソール操作のためコマンドを色々入力する必要があります。
使い方詳細はこちら[eng-entrance.com]

今回の場合は次の手順で可能です。
vi 01.sh (01.shを新規作成、viで編集開始) i (入力開始) ./Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab (内容の入力) Esc(入力終了) :wq (保存"w”してviを終了"q")

シェルスクリプトは実行権限を付与する必要があるので、
$ chmod +x 01.sh
と入力します。
ここで一度サーバーを起動しましょう。
$ ./01.sh
これでいくつかの重要ファイルが作成されました。

私の場合、主なファイル編集は次の通りに行います。
なお、KFGame/Configが主な編集対象です。
  • KFWeb.ini
    bEnabled=True
  • LinuxServer-KFGame.ini
    MaxSpectators=6
    AdminPassword=???
    bPartitionSpectators=True
その他細かい設定は多くのものがWebAdminから設定できます。
あとはLinuxServer-KFEngine.iniでWorkshop連携などを、LinuxServer-KFGame.iniでマップの管理を行います。
これらの手順は基本的にWindowsと変わらないので、必要に応じて冒頭のガイドリンクを参照してください。

サーバーを複数立てる際は、複数のシェルスクリプトを同時に動かすといいです。
./01.sh & ./02.sh & ./03.sh &
複数起動時は最後にも&を付けることを勧めます。これにより、操作がKF2サーバー側ではなくLinux側に残ります。
&をつけなかった場合は、Ctrl+Cで最後に起動したサーバーを閉じ、操作はLinux側に戻ります。
サーバーの停止は、実行中プロセスの参照とプロセスの停止で行います。
ps -a kill [プロセスID]
2 件のコメント
Asapi 1020  [作成者] 2023年4月13日 7時41分 
@ZETSU
その通りですね、修正しておきました。
ご報告ありがとうございます。
ZETSU 2023年4月12日 0時56分 
"Steam>app_update 232090 validate"
こちらの表記に誤りがあると思われます。

現在(2023年4月)KF2のIDは'232130'でした。
お手数をお掛けしますが、ご確認の程よろしくお願いします。