2014年5月26日月曜日

MineCraftサーバーが落ちる件

MineCraftのサーバーを立てて
友達と一緒に遊ぼうと思って、

鯖立てにいざ挑戦。



結構沢山のサイトやブログで
サーバーの構築方法が紹介されてたので、
ここではその話はしません。









とあるブログで紹介されている手順に則って構築を進めたにも関わらず、
私の立てたサーバーでは
マルチプレイが出来ない!!

という状況に陥っており、
さらにそれに似た症状がなかなか検索に引っかからなかったので、
ここで記事にして残しておこうかな、と。




具体的な症状としては、

・サーバーは立てることに成功している。
・アンテナも立っている。
・自分でログインできる。
・外部(友達)からもログインできる。
・複数人(二人以上)入るとサーバーが落ちる。


といった具合です。



一つずつ見てきましょうか。

スペック不足?

まず真っ先に疑ったのが、
サーバーのスペック不足。

ソロには耐えられるが、複数人だと耐えられない、という理由で。


調べた所に依ると、
二人、三人くらいなら4GB程のメモリがあれば問題ないそうな。

私は4GB割り振っていたので、
まあ、おそらくこれが原因ではないでしょう。

CPUも
Corei7ですし、
安直ですが、多分これも原因ではない。






回線速度の問題?

次に疑ったのが、回線速度の問題です。


言い忘れてましたが、
サーバーが落ちる際にERRORと言われるのですが、
その内容が、

Internal exception: java.net.SocketTimeoutException: Read timed out

なるものなのです。
Time Out
つまりはしばらくサーバーからの応答が無いためにサーバーを落としますね。
という理由でサーバがストップしちゃってるんですね。


もしかしたら
回線速度が足りてないのかな??

と思い、
無線でやっていたものを有線に繋ぎ変えました。


それでもやっぱり複数人でログインした途端に落ちちゃう。

回線速度も問題ではなさそうだ。


整合性の問題?

つまり、私と友達との間で何かしら設定に矛盾が生じて
二人が同時に存在すると弾かれる、的な事かなー?ってね。


追加MODとかがちゃんとサーバー側とクライアント側で一致していなかったりすると
もしかしたらこうなるかもね。


まあ、結果として
私はそのパターンじゃなかったけどね。

設定に矛盾性は認められませんでしたよ。


バージョンもちゃんと揃えてたしね。









ようやく解決

ここまで来て
もう諦めようかな、と思っていたタイミングで
こんな記事を見つけました。

http://forum.minecraftuser.jp/viewtopic.php?f=7&t=19192

確かめてみた所、MODの導入環境こそ違うものの、
症状としては全く同じでした。




私が使っていたサーバー用jarファイルは
minecraftserver-mcpc-plus-164-R21-forge965-B220.jar
だったのですが、

どうやら、上記のリンク先のページに記述してある通り、
#251以降のバージョンでないとダメみたいですね。



なので、
新しいjarファイルを落として、Server用フォルダにコピー&ペースト。
起動用スクリプトの中身の
220 の部分を 最新('14/5/26現在)の 265に変えてやると

おおーー

治っちゃいましたーー。



たった二文字の変更で。。





これを追求するまでに相当遠回りしました。

ログファイルめっちゃ読んだ。
疲れた。w







結果報告

MCPC+でサーバーを立てている人は
MCPC+のバージョンに気をつけて下さい!!

minecraftserver-mcpc-plus-164-R21-forge965-B251←
最後に251ってあるでしょ。
あれよりも大きい数字が書かれているバージョンで使いましょう。

でないと
マルチプレイしたら死にます。(鯖が)





一人でも似たような症状の人がこの記事によって
救われる事を祈って。ww


以上です。






教訓

アップデートちゃんとしよう。(震え声)







追記(2015/2/26)
現在mcpc+は後続となるCauldronという名称になっています.
サーバー構築を考えている人はcauldronで検索!!

MacのWi-Fiが安定しない件

Macの無線がよく切れるので、対策を練ってみた。

これから行う作業は自己責任でお願いします、と。




簡単な話なんだが、
以下の4つのファイルを削除するだけ。
  • com.apple.airport.preferences.plist
  • com.apple.network.identification.plist
  • NetworkInterfaces.plist
  • preferences.plist

上記のファイルは
$ ls /Library/Preferences/SystemConfiguration/  
で確認できると思います。

OSに関するファイル等が含まれるフォルダなので
くれぐれも指定したファイル以外削除しないように注意。


削除の際は、
$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

$ sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

$ sudo rm /Library/Preferences/SystemConfiguration/preferences.plist

ですね。




こうすることによって
ネットワークに関するプロファイルを再構築するのです。

ちなみに、自分で構築したネットワーク環境も初期化されますので、ご注意。
VPNとか、その辺ね。



単純に
今入れている802.1Xの構成プロファイルのみを削除したい、ということなら

$ sudo rm /Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

だけで良かったと思います。




802.1Xの構成プロファイルの削除方法については
システム環境設定からも
別の方法で行えたと思いますが、

それでも出来なかったら
上記の方法で試すと良いかもしれません。






※ちゃんと削除した後はMacOSを再起動しましょう。