Noobには難しいかもしれない。CS1.6のサーバ構築。Linux編

CS1.6サーバ構築Linux

このぐらいの知識がないと難しいかもしれません。
GUIなんていう甘っちょろいものは使いません。

Steam導入

適当にsteamディレクトリを作り、そこに導入するものとする。
FTPなどでマップデータをアップロードすることや、
rootで構築するとセキュリティの面で心配になることを考えると、
hlds用ユーザを作り、権限を与えて実行する形が管理も楽でよい。
バックアップをとる時も、FTPからsteamディレクトリをそのまま落とせばいい。
今回はユーザアカウントとして、hldsを作成した後、
hldsでログインし、その直下にsteamディレクトリを作成した。

 mkdir /home/hlds/steam
 cd /home/hlds/steam

Steamを導入するために、必要なデータをダウンロードしてくる。

 wget http://storefront.steampowered.com/download/hldsupdatetool.bin
 chmod +x hldsupdatetool.bin
 ./hldsupdatetool.bin

hldsupdatetool.binを実行すると、規約に同意するか聞かれるので、yesと応答する。
すると、実行ファイル「steam」が作られるので、実行。

 ./steam

実行時のログが以下のようになれば、steamの導入は成功。

 [hlds@localhost hlds]$ ./steam
 Checking bootstrapper version ...
 
 Use: steam -command  [parameters] [flags]
 (以下略)

しかし、初回起動時ならたいてい、以下のログになる。

 [hlds@localhost hlds]$ ./steam
 Checking bootstrapper version ...
 Getting version 34 of Steam HLDS Update Tool
 Downloading. . . . . . . . . . .
 Steam Linux Client updated, please retry the command

このメッセージが出た場合は、バージョンアップが行われたことを示す。

CS1.6サーバのインストール

 ./steam -command update -game cstrike -dir .

ダウンロードが始まるので終わるまで放置。
ダウンロードが完了したら、以下の起動コマンドでサーバが立ち上がるか確認する。

 ./hlds_run -game cstrike

起動直後のログの最後のほうに、以下の文字が出ていれば起動はできている。

 Adding master server 72.165.61.189:27010
 Adding master server 69.28.151.162:27010
 Connection to Steam servers successful.
   VAC secure mode is activated.

"quit"をコンソールに打つ、もしくはCtrl+Cで終了。
起動設定については後述。

サーバ設定

cstrike/server.cfgを編集し、以下の項目を必ず設定する。

 hostname "Counter-Strike 1.6 Server"
 sv_password ""
 rcon_password "asdf"
 
 mapchangecfgfile "server.cfg"
 
 sv_maxspeed 320
 sys_ticrate 1000
 sv_maxupdaterate 102
 sv_maxrate 20000

hostname はサーバの名前。好きに変える。
sv_password はサーバログインに必要なパスワード。
rcon_password はrconパスワード。設定するなら複雑なものにしたほうがいい。rcon quitで落とされる。
mapchangecfgfile はmapchange毎に読み込まれるファイル。この場合は自分自身を読み込む。
sv_maxspeed は移動速度。
sys_ticrate は重要でサーバのFPS値に直結する。あまり高すぎても処理が追いつかなくchokeが出たりするので、最適値を探す。試合・public鯖でないのなら、100〜500で問題ない。
sv_maxupdaterate は1秒間の最大通信回数。100〜102で決まり。
sv_maxrate は1回の通信で使用できる帯域。20000あればよい。


回線の設定は、回線の品質に影響するので注意。
この設定は光回線向けなので、ADSL回線ならばもう少し下げなければならなくなる。


通常の起動では、sys_ticrateの値に遥か及ばない(100前後)ので、
起動コマンドに、-pingboost 3 を指定する。


その他、固定化したい設定はserver.cfgに書き込む。(観戦の許可、オールトークの許可など。)
動的に設定したいものは、適当なcfgにまとめ、必要になる度にexec 〜.cfgでロードする。(例: lo3.cfg)

起動設定

毎回コマンドラインで同じ起動コマンドを打つのはめんどくさいので、
シェルスクリプトを作成する。
稚拙だが、僕が書いたスクリプトを参考にしてほしい。

 wget http://hlds.rying.net/arc/hlds.sh.txt
 mv hlds.sh.txt hlds.sh
 chmod 0755 hlds.sh

hlds.shをエディタで開き、設定の項目を必要に応じて設定する。(HLDS_PATH, HLDS_RUNなど。)
デフォルトでは僕の起動設定になっているので注意。

使い方はhlds.shに引数をつけて使う。
./hlds.sh start ・・・サーバ起動
./hlds.sh stop ・・・サーバ停止
./hlds.sh restart・・・サーバ再起動


また、僕が作成したrcon実行ファイルをコンパイルして導入することで、
hlds.shにrconによるquit終了、status/statsの確認ができるようになる。
quitで終了することで、killを送るより安全に終了できる。

 wget http://hlds.rying.net/arc/hlrcon.c
 gcc hlrcon.c -o rcon
 mv rcon /home/hlds/steam/rcon


AMXXの導入、zbotの導入などもできますが、とりあえずこの辺で。


過去に書いたカーネル再構築については、やったことを淡々と書いただけなので、間違っているかも。
もう少し調べて理解してから、再度再構築した内容を書くかもしれない。