Minecraftをやりたい我が子のためにサーバを立ててみる

もうすっかりMinecraftの虜になっている我が家の子供達。

片方は受験生なんだけど、大丈夫なのかね、そんなので(笑

複数人で遊べるマルチプレイをやりたいと、で、友達と色々建設したいと言うので、じゃぁサーバでも立ててやるかと思い立った。 今日は下の子もママも風邪で遊びに行けないしね。

そのうちブログも引っ越しする予定だけど、まずはMinecraftからインストールすべぇ(笑

【追記】

Minecraft関連、他にも色々書いてます。 サーバを組むなら下記もオススメ。

さくらのVPSにSpigot(CraftBukkit)を導入する

今のサーバはさくらインターネットレンタルサーバなのだけれども、少なくとも管理者権限のあるサーバじゃないとMinecraftは動かせないので別サーバが必要だ。 と言うことで、新たに専用サーバを借りてみることにした。

今のIDもそのまま使えるし、新たな契約とか手間なので、借りるのは同じさくらインターネットの、値段的にもお手頃な仮想専用サーバさくらのVPS。 独自ドメインの管理とDNSは、引き続きバリュードメインで。

さくらのVPS動的なプラン変更はできないとのことなので、使いやすそうな1Gプランにしておこう。 クレジットカードの申込みが手軽なので、それで2週間のお試しを申し込む。

VPS紹介

2週間の申込みをクリックすると会員かどうかを聞かれるので、会員ならID等を入力する。

会員確認
次は規約の確認。

規約確認
サービスプランはメモリ1GBで、ディスクは今のレンタルサーバでも2GBくらいしか使っていないし贅沢にSSDの30GBにしておく。 年額で約1万円なら、コストパフォーマンスもかなり良いね。

サービス選択

クレジットカードだと2週間のお試し期間が使えるので、この後にクレジットカード番号の入力と確認を終えると、もう申込みが完了する。

申込完了

この間5分もかからない。 契約情報にも追加済み。

契約情報

すげー。 あっという間だ。 サーバ設定画面に入ってみると、レンタルサーバと違ってサーバ全体を管理できるメニューが表示される。

VPS初期状態

起動とか再起動ってボタンが、まさに自分のサーバ!って気分を盛り立ててくれる! いいねぇ、コレ。

スイッチ

まずはOSのインストール。 標準OSはCentOS 6 x86_64で、ISOイメージまで使えるのか。 面白そうだなぁ。

OSインスコ

標準OSインストールを選択すると、rootパスワードの設定画面になる。

OSインスコ確認

パスワード管理ツールで自動生成されたパスワードを設定して、先に進むとインストールが始まり、そしてあっという間に終わっている。

管理画面のサーバ状態が稼働中になれば、無事に起動したってこと。

稼働中

久しぶりのUNIX系OSにドキドキしながら、サポートサイト初期設定ガイドを参考に、TeraTermを使ってログインして初期設定をする。 分かりやすく説明されていて、これは本当に嬉しい配慮だね。 これはセキュリティ対策を含めた大事な基本の設定なので、よっぽど手慣れた人で無ければ最低限これらは必ずやっておこう。

一般ユーザの追加とか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を押す。

インストールが完了したら、公式wikiTutorials/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の導入とかやってみたので、メモ記事を追加しました。

Minecraftあれこれ

スポンサーリンク
スポンサーリンク




『Minecraftをやりたい我が子のためにサーバを立ててみる』へのコメント

  1. 名前:onnobu 投稿日:2015/05/07(Thu) 21:11:21 ID:4b37c3674 Reply

    こんにちは、初めまして 現在さくらVPSでマインクラフトのサーバーを立てているところなのですがサーバーを立てるところまではうまくいきポートを開放も成功しているようなのですが、マインクラフト本体からそのサーバーに入ろうとすると Inernal Exception: java.io.IDException: 既存の接続はリモートホストに強制的に切断されました。と出てしまい困っています。よろしければ、ご教授おねがいします。

    • 名前:管理人 投稿日:2015/05/12(Tue) 08:57:33 ID:81ffa7fa1 Reply

      お返事遅れてごめんなさい。
      エラーの詳細までは分かりかねますが、他の公開サーバには接続できますか?
      パソコンのセキュリティソフトや、ブロードバンドルータにも設定変更が必要かもしれません。