BF1942サーバのたて方(その5)
Linuxでサーバを立てる
LinuxでBF1942のサーバはWindowsとは違って、OSのバージョン問わず安定かつ負荷が低い等のメリットが有ります。
しかし、Windowsでのサーバ用ファイルが充実しているのとLinuxでの導入が難しいなどがあって導入に躊躇すると思います。
このページでは、Linuxでサーバを立てるための解説をしますが、BFSMはGUI環境でないため、BFRMの導入・設定も合わせて解説します。
導入解説はwindowsに準拠します
しかし、Windowsでのサーバ用ファイルが充実しているのとLinuxでの導入が難しいなどがあって導入に躊躇すると思います。
このページでは、Linuxでサーバを立てるための解説をしますが、BFSMはGUI環境でないため、BFRMの導入・設定も合わせて解説します。
導入解説はwindowsに準拠します
0章 ポートの開放
無効にするのが一番楽ですが、サーバを公開するということは外部にグローバルIPアドレスをさらすということと同義であることを忘れないでください。
ルーターを使用している場合、外部との通信を行うために一部の通信ポートを開放(通信許可)する必要があります。
さらに、ルーターに外部との通信を許可するPCを定義してやる必要もあります。
ルーターの説明書を参照して以下の通信ポートを開放(通信許可)し、ルーティングの定義を行う必要があります。
さらに、ルーターに外部との通信を許可するPCを定義してやる必要もあります。
ルーターの説明書を参照して以下の通信ポートを開放(通信許可)し、ルーティングの定義を行う必要があります。
- UDP 14567 (Game Port)
- UDP 14690 (ASE Port)
- UDP 22000 (Game Spy InterNET)
- UDP 23000 (Game Spy LAN)
- TCP 14667 (BFSM Port)
- TCP 4711 (Remort Console Port)
- ICMP (ping) ←ルーターに設定項目がない場合は無視して良いです
1章 サーバソフトウェアを入手する
以下のLinuxサーバ用ファイルをダウンロードします。
Linux用DecicateServerファイル
- bf1942_lnxded-1.6-rc2.run(リンク切れ)新しいリンク
- bf1942-update-1.61.tar.gz(リンク切れ)新しいリンク
- bf1942_lnxded-1.612-all_clients.tar.xz(リンク切れ)(要らないかも?)
Battlefield 1942 Server Manager
Battlefield 1942 Remote Manager (Win32、128人化対応版)
2章 ソフトを導入する
1章のファイルを全て導入したら、インストールをします。これらのファイルはホームディレクトリにあるとします。
今回はユーザー名を『bf42』とします。
今回はユーザー名を『bf42』とします。
- bf1942_lnxded-1.6-rc2.runを実行します
./bf1942_lnxded-1.6-rc2.run
- アップデートファイルを上から順に解答します
tar xvzf bf1942-update-1.61.tar.gz
tar xfJv bf1942_lnxded-1.612-all_clients.tar.xz
tar xfJv bf1942_lnxded-1.612-all_clients.tar.xz
- 生成したbf1942ディレクトリへ移動します
cd bf1942
- BFSMを解凍し、生成された以下のファイルを移動させます
tar xvzf ../BFServerManager201.tgz
mv bfsmd /usr/bin
chmod 755 usr/bin/bfsmd
mv useraccess.con mods/bf1942/settings
mv servermanager.con mods/bf1942/settings
mv bfsmd /usr/bin
chmod 755 usr/bin/bfsmd
mv useraccess.con mods/bf1942/settings
mv servermanager.con mods/bf1942/settings
- 一旦スタンドアロンサーバを起動した後、quitで止める
./start.sh +status Monitor 1
# quit
# quit
次に、servermanager.conとuseraccess.conの以下の部分を編集します。
servermanager.con
game.serverIP 192.168.0.1 #サーバのローカルIPアドレス
game.serverPort 14567
manager.enableRemoteConsole 1 #BFRMからのアクセス 1:許可 0:拒否
manager.consoleUsername "admin" #BFRMからのアクセスへのログイン名
manager.enableRemoteAdmin 1 #BFRMからの管理者接続 1:許可 0:拒否
manager.consolePassword "Password" #BFRMからのアクセスへのパスワード
game.serverPort 14567
manager.enableRemoteConsole 1 #BFRMからのアクセス 1:許可 0:拒否
manager.consoleUsername "admin" #BFRMからのアクセスへのログイン名
manager.enableRemoteAdmin 1 #BFRMからの管理者接続 1:許可 0:拒否
manager.consolePassword "Password" #BFRMからのアクセスへのパスワード
useraccess.con
コンマで区切られた最初の部分に上で設定したログイン名『admin』
次の部分は上で設定したパスワード『password』
次の部分は上で設定したパスワード『password』
これで、BFRMからのアクセスの設定は終わりです。
- サーバディレクトリでBFSMDを起動する
bfsmd
- BFRMが導入されたPCからBFRMを起動しサーバへアクセスする。
サーバ名、サーバのローカルIPアドレスとポート、ログイン名、パスワードを入力し接続出来たら、WindowsのBFSMと同様に使うことが出来ます。
3章 サーバーリスト表示に対応する
GameSpyの終了に伴いサーバー側もサーバーリストに対応するための設定をしなければなりません。
今回はhostsの書き換えでの対応を解説します。
今回はhostsの書き換えでの対応を解説します。
- hostsの権限を変更する
chmod 744 /etc/hosts
- テキストエディタで『hosts』に以下を追記する。
162.19.137.251 master.gamespy.com
162.19.137.251 master.bf1942.sk
162.19.137.251 master.bf1942.sk
- hostsの権限を元に戻す。
chmod 644 /etc/hosts
これでクライアント側のサーバーリストに表示されたと思います。
(162.19.137.251は現在運用されているマスターサーバー"master.bf1942.org"のIPです。もし閲覧時点でマスターサーバーが変更されている場合は、そのIPを入力すること。)
(162.19.137.251は現在運用されているマスターサーバー"master.bf1942.org"のIPです。もし閲覧時点でマスターサーバーが変更されている場合は、そのIPを入力すること。)
F&A
- スタンドアロンサーバが起動しない
Linuxのバージョンにもよりますが、例えば今のubuntu serverでは32bitソフトの起動のために、ひと手間が必要です。
物として、
"libtinfo5:386"
"libncurses5:i386"
この2つが必要になり、aptでインスコもできないので、.debファイルをダウンロードして"dpkg -i (ファイル名)"で手動インスコさせる必要があります。
ファイルのダウンロード→http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/
色々ありますが、筆者は"libncurses5_6.2-0ubuntu2.1_i386.deb"と
"libtinfo5_6.3-2ubuntu0.1_i386.deb"で起動しました。
物として、
"libtinfo5:386"
"libncurses5:i386"
この2つが必要になり、aptでインスコもできないので、.debファイルをダウンロードして"dpkg -i (ファイル名)"で手動インスコさせる必要があります。
ファイルのダウンロード→http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/
色々ありますが、筆者は"libncurses5_6.2-0ubuntu2.1_i386.deb"と
"libtinfo5_6.3-2ubuntu0.1_i386.deb"で起動しました。
- Internal Error!が大量に出力されて鬱陶しい
どうやら今のLinuxバージョンと相性が悪いらしく、有志の方が修正パッチを作成してくれました。
フォーラム→https://team-simple.org/forum/viewtopic.php?id=6454
ダウンロードリンク→https://drive.google.com/open?id=1tPzWKcwfNAsuKLmpW-NRfyzhai02-kq2
ダウンロードした"bfsmd"をbinフォルダの中にあるはずのbfsmdに置き換えてください。
フォーラム→https://team-simple.org/forum/viewtopic.php?id=6454
ダウンロードリンク→https://drive.google.com/open?id=1tPzWKcwfNAsuKLmpW-NRfyzhai02-kq2
ダウンロードした"bfsmd"をbinフォルダの中にあるはずのbfsmdに置き換えてください。
- bfsmdが起動しない
bfsmdがないと言われた場合→./bin/bfsmd
建てた時にいつものサーバー情報が見たい場合のオプション→+status Monitor 1
serverファイルが別にある場合→-path (サーバーファイルがあるパス)
couldn't bind server socketと言われる場合→同じプロセスが起動していないか確認する事。または、-ip (自分のip)でipアドレスを明示的に指定してあげる事。
(例:./bin/bfsmd -path /home/BF1942/server/bf1942 +statusMonitor 1 -ip 192.168.0.1)
建てた時にいつものサーバー情報が見たい場合のオプション→+status Monitor 1
serverファイルが別にある場合→-path (サーバーファイルがあるパス)
couldn't bind server socketと言われる場合→同じプロセスが起動していないか確認する事。または、-ip (自分のip)でipアドレスを明示的に指定してあげる事。
(例:./bin/bfsmd -path /home/BF1942/server/bf1942 +statusMonitor 1 -ip 192.168.0.1)
- サーバーリストに表示されない
自分自身からは見えません。
もし、他人から又はマスターサーバーから見えない場合は、ファイヤウォールやポートを確認してください。
最悪、DMZに置いてファイヤウォールをOFFにしてしまえば見れます。(セキュリティは良くない)
また、hostsを適切に編集しているか確認したいときは、"ping master.gamespy.com"でipアドレスが適切に変換されているかで確認できます。
もし、他人から又はマスターサーバーから見えない場合は、ファイヤウォールやポートを確認してください。
最悪、DMZに置いてファイヤウォールをOFFにしてしまえば見れます。(セキュリティは良くない)
また、hostsを適切に編集しているか確認したいときは、"ping master.gamespy.com"でipアドレスが適切に変換されているかで確認できます。
- modを入れたい
serverフォルダ内にあるmodsに入れてください。
なお、このまま実行すると「全て小文字にしろ」と贅沢を言ってくるので一手間をかけます。
renameコマンドを用いて、modフォルダ内の物を全て小文字に変換してください。
フォルダ名小文字変換→rename -f 'y/A-Z/a-z/' *
ファイル名小文字変換→rename 'y/A-Z/a-z/' *
renameコマンドが無いと言われた場合は、aptでインストールすること。
なお、このまま実行すると「全て小文字にしろ」と贅沢を言ってくるので一手間をかけます。
renameコマンドを用いて、modフォルダ内の物を全て小文字に変換してください。
フォルダ名小文字変換→rename -f 'y/A-Z/a-z/' *
ファイル名小文字変換→rename 'y/A-Z/a-z/' *
renameコマンドが無いと言われた場合は、aptでインストールすること。