もうすっかりMinecraftの虜になっている我が家の子供達。
片方は受験生なんだけど、大丈夫なのかね、そんなので(笑
複数人で遊べるマルチプレイをやりたいと、で、友達と色々建設したいと言うので、じゃぁサーバでも立ててやるかと思い立った。 今日は下の子もママも風邪で遊びに行けないしね。
そのうちブログも引っ越しする予定だけど、まずはMinecraftからインストールすべぇ(笑
【追記】
Minecraft関連、他にも色々書いてます。 サーバを組むなら下記もオススメ。
今のサーバはさくらインターネットのレンタルサーバなのだけれども、少なくとも管理者権限のあるサーバじゃないとMinecraftは動かせないので別サーバが必要だ。 と言うことで、新たに専用サーバを借りてみることにした。
今のIDもそのまま使えるし、新たな契約とか手間なので、借りるのは同じさくらインターネットの、値段的にもお手頃な仮想専用サーバさくらのVPS。 独自ドメインの管理とDNSは、引き続きバリュードメインで。
さくらのVPSは動的なプラン変更はできないとのことなので、使いやすそうな1Gプランにしておこう。 クレジットカードの申込みが手軽なので、それで2週間のお試しを申し込む。
2週間の申込みをクリックすると会員かどうかを聞かれるので、会員ならID等を入力する。
サービスプランはメモリ1GBで、ディスクは今のレンタルサーバでも2GBくらいしか使っていないし贅沢にSSDの30GBにしておく。 年額で約1万円なら、コストパフォーマンスもかなり良いね。
クレジットカードだと2週間のお試し期間が使えるので、この後にクレジットカード番号の入力と確認を終えると、もう申込みが完了する。
この間5分もかからない。 契約情報にも追加済み。
すげー。 あっという間だ。 サーバ設定画面に入ってみると、レンタルサーバと違ってサーバ全体を管理できるメニューが表示される。
起動とか再起動ってボタンが、まさに自分のサーバ!って気分を盛り立ててくれる! いいねぇ、コレ。
まずはOSのインストール。 標準OSはCentOS 6 x86_64で、ISOイメージまで使えるのか。 面白そうだなぁ。
標準OSインストールを選択すると、rootパスワードの設定画面になる。
パスワード管理ツールで自動生成されたパスワードを設定して、先に進むとインストールが始まり、そしてあっという間に終わっている。
管理画面のサーバ状態が稼働中になれば、無事に起動したってこと。
久しぶりのUNIX系OSにドキドキしながら、サポートサイトの初期設定ガイドを参考に、TeraTermを使ってログインして初期設定をする。 分かりやすく説明されていて、これは本当に嬉しい配慮だね。 これはセキュリティ対策を含めた大事な基本の設定なので、よっぽど手慣れた人で無ければ最低限これらは必ずやっておこう。
- サーバを起動しましょう
- セキュリティの設定を行いましょう
- rootのパスワードの変更をしましょう
- 一般ユーザを追加しましょう ←ここでMinecraft用のユーザも作っておいた
- sudoを設定しましょう
- SSH接続の設定を変更しましょう
- システムをアップデートしましょう
- ファイアウォールを設定しましょう ←ここでポート番号25565も追加
一般ユーザの追加とかvimとか、しばし触って勘を取り戻す。 ただ、こうしたヘルプで敷居が下がったとは言え、全く知識の無い人は近寄らない方が無難だろうね。 viとか何?ってなるでしょ、やっぱり。
単純にネットワーク的に変化があるか、まずはPINGしてみる。 これが今のnakayan.jpサーバの応答。
x.x.x.xに ping を送信しています 32 バイトのデータ: x.x.x.x からの応答: バイト数 =32 時間 =13ms TTL=54 x.x.x.x からの応答: バイト数 =32 時間 =13ms TTL=54 x.x.x.x からの応答: バイト数 =32 時間 =15ms TTL=54 x.x.x.x からの応答: バイト数 =32 時間 =15ms TTL=54
これが新しいサーバ。 応答速度は半分くらいになっているね。
y.y.y.y に ping を送信しています 32 バイトのデータ: y.y.y.y からの応答: バイト数 =32 時間 =6ms TTL=55 y.y.y.y からの応答: バイト数 =32 時間 =7ms TTL=55 y.y.y.y からの応答: バイト数 =32 時間 =7ms TTL=55 y.y.y.y からの応答: バイト数 =32 時間 =6ms TTL=55
Web等を構築したらもっと色々なレスポンスを計測するけど、パフォーマンスは悪くない。 ついでにIPv6をVPSに設定してみたら、こんなレスポンスだった。
z:z:z:z:z:z:z:z に ping を送信しています 32 バイトのデータ: z:z:z:z:z:z:z:z からの応答: 時間 =11ms z:z:z:z:z:z:z:z からの応答: 時間 =7ms z:z:z:z:z:z:z:z からの応答: 時間 =7ms z:z:z:z:z:z:z:z からの応答: 時間 =6ms
んじゃ、次はjavaのインストール。 ログインしてsuしたらお手軽パッケージインストールする。
# yum install java
で適当にyとか押してるとインストールされるので、引き続きMinecraftのサーバプログラムをココから落とす。
落としたファイルは、TeraTermの画面でドラッグ&ドロップし、SCPでファイル転送。 SCPの手順は初期設定ガイドのSSH接続の設定を変更しましょうに詳しいので、そちらを参照してね。 ちなみに、今回落としたファイルはminecraft_server.1.8.1.jarというバージョンだった。 このファイルがちゃんと動くかどうか試すには、下記のコマンドを実行すれば良い。 このXmxは最大メモリ量、自分のサーバに合わせて書き換えること。
$ java -Xms1024M -Xmx1024M -jar minecraft_server.1.8.1.jar nogui
初回の起動時は下記のメッセージが表示されて、途中で止まってしまうが慌てない。 大事なのは赤字のメッセージのところ。
[xx:xx:xx] [Server thread/INFO]: Starting minecraft server version 1.8.1
[xx:xx:xx] [Server thread/INFO]: Loading properties
[xx:xx:xx] [Server thread/WARN]: server.properties does not exist
[xx:xx:xx] [Server thread/INFO]: Generating new properties file
[xx:xx:xx] [Server thread/WARN]: Failed to load eula.txt
[xx:xx:xx] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[xx:xx:xx] [Server thread/INFO]: Stopping server
[xx:xx:xx] [Server Shutdown Thread/INFO]: Stopping server
EULAとはエンドユーザ使用許諾契約(End User License Agreement)のことで、指示通りeula.txtを開くと「納得したならeula=falseをTRUEに書き換えるべし」と書いてあるので書き換えて、上記のコマンドを再度実行しよう。
そうすると、ファイルが色々と解凍されて、こんな表示で止まる。
[xx:xx:xx] [Server thread/INFO]: Done (1.443s)! For help, type "help" or "?"
これでサーバが起動したってことだ。 止めるときにはstopと入力すると終了する。
このままでも外部から接続して遊ぶことができるんだけど、普通じゃ面白みが無いかなーと思って千と千尋のワールドにしてみた。
赤丸のDownload Linksタブをクリックするとダウンロード画面に飛ぶので、落としたらTeraTermでSCP転送してunzipコマンドで解凍。 オリジナルのワールドがworldディレクトリに入っているのでディレクトリ名を違うものに変えて、解凍したディレクトリをworld/に変える。
テクスチャの反映は調査中。
そうしたら、minecraftサーバをバックグラウンドで起動させるために、screenコマンドを管理者権限でインストール。
# yum install screen
何か聞かれたらyを押す。
インストールが完了したら、公式wikiのTutorials/Server startup scriptを参考に起動スクリプトを導入する。
まずはスクリプトのダウンロード。
$ wget -O minecraft //minecraft.gamepedia.com/Tutorials/Server_startup_script/Script?action=raw
ダウンロードしたファイルを自分の環境に合わせて書き換える。
$ vim minecraft
書き換えるのは、下記#Settingsセクションの、赤字の部分。
#Settings SERVICE='minecraft_server.jar' OPTIONS='nogui' USERNAME='minecraft' WORLD='world' MCPATH='/home/minecraft/minecraft' BACKUPPATH='/media/remote.share/minecraft.backup' MAXHEAP=2048 MINHEAP=1024 HISTORY=1024 CPU_COUNT=1 INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \ -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts \ -jar $SERVICE $OPTIONS"
今回インストールしたマインクラフト本体には、minecraft_server.1.8.1.jarというバージョン名が付いているけれど、下記のように起動スクリプトから呼ばれるリンクを作っておく。 こうしておけば、バージョンアップの時や、Forgeに入れ替える時でも、リンクを張り直すだけで元ファイルをいじる必要がなくなる。
$ ln -s?minecraft_server.1.8.1.jar minecraft_server.jar
上記で設定したバックアップフォルダも、事前に作成するのを忘れない。
作成したファイルは、/etc/rc.d/init.d/にコピーする。 赤字のディレクトリ名は上記の設定ファイルと同じ。
$ sudo cp /home/minecraft/minecraft/minecraft /etc/rc.d/init.d/
実行権限の付与。
$ sudo chmod a+x /etc/rc.d/init.d/minecraft
起動させてみる。
$ sudo /etc/rc.d/init.d/minecraft start
起動するとこんなメッセージが表示される。
Starting minecraft_server.jar... minecraft_server.jar is now running.
これが確認できたら、試しに止めてみる。
$ sudo /etc/rc.d/init.d/minecraft stop
メッセージはこう。
Stopping minecraft_server.jar minecraft_server.jar is stopped.
ちゃんと動作していたら、自動起動の設定をして確認して終了。
$ sudo chkconfig minecraft on $ sudo chkconfig --list minecraft
以上!
自分のサーバだから敵の出現とか含めて色々とパラメータを変えられるので、これから楽しもう♪
【追記】
forgeの導入とかやってみたので、メモ記事を追加しました。
コメント
こんにちは、初めまして 現在さくらVPSでマインクラフトのサーバーを立てているところなのですがサーバーを立てるところまではうまくいきポートを開放も成功しているようなのですが、マインクラフト本体からそのサーバーに入ろうとすると Inernal Exception: java.io.IDException: 既存の接続はリモートホストに強制的に切断されました。と出てしまい困っています。よろしければ、ご教授おねがいします。
お返事遅れてごめんなさい。
エラーの詳細までは分かりかねますが、他の公開サーバには接続できますか?
パソコンのセキュリティソフトや、ブロードバンドルータにも設定変更が必要かもしれません。