vps_minecraft

[ServersMan@VPS]超簡単!常時稼働マイクラサーバー(Minecraft Server)を建てる!その1


vps_minecraft
最近(でも無い?)大人から子供まで人気のゲーム「マインクラフト(Minecraft)」は、マルチプレイでみんなで協力して遊ぶと面白さ100倍らしい。家の中坊もハマっている模様。

しかし、マルチで遊ぶには誰かサーバーを建てて、ポートを開けたり、多少なりとも知識が必要で、しかも自宅のパソコンをサーバーにした場合、当然起動していないと誰もアクセス出来ないので常時起動しっぱなしとなる。
それなりにPCゲームをやるパソコン付けっぱなしにした場合、それなりのグラボを積んでいれば150W程度はあるので電気代は月2000円ぐらいにはなる。これは痛い。

ServersMan@VPS エントリープランなら、月490円で自分専用のサーバーを借りれるので、これを使ってマイクラサーバーを極力簡単に立ち上げてみる。

とりあえず、遊べるだけなら、7個のコマンドを打つだけで、サーバーが立ちます。

DTIからサーバーのIPアドレスやパスワードなどが書かれたメールが到着したら、SSHでサーバーにアクセスする。

minecraftの実行に必要なJAVAをインストールする。

[root@dti-vps ~]# yum install java-1.7.0-openjdk

minecraft用のディレクトリ(フォルダ)を作る。(場所はどこでもいいが、ここではvar内に)

[root@dti-vps ~]# mkdir /var/minecraft

作成したディレクトリ(フォルダ)に移動する。

[root@dti-vps minecraft]# cd /var/minecraft/

Minecraft server の最新版をダウンロードする。

[root@dti-vps minecraft]# wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.2/minecraft_server.1.7.2.jar

Minecraft serverを起動する為のシェルスクリプトを作る。
[esc]はキーボードのエスケープキーを押す、[enter]は同じくエンターキーを押す。

[root@dti-vps minecraft]# vi minecraft.sh

#!/bin/sh
java -Xms512M -Xmx1024M -jar minecraft_server.1.7.2.jar

[esc]
:q [enter]

作成したシェルスクリプトに実行権限を付ける。

[root@dti-vps minecraft]# chmod o+x minecraft.sh

シェルスクリプトを実行してminecraft server を起動する。

[root@dti-vps minecraft]# ./minecraft.sh

[11:10:35] [Server thread/INFO]: Starting minecraft server version 1.7.2
[11:10:35] [Server thread/INFO]: Loading properties
[11:10:35] [Server thread/WARN]: server.properties does not exist
[11:10:35] [Server thread/INFO]: Generating new properties file
[11:10:35] [Server thread/INFO]: Default game type: SURVIVAL
[11:10:35] [Server thread/INFO]: Generating keypair
[11:10:37] [Server thread/INFO]: Starting Minecraft server on *:25565
[11:10:38] [Server thread/WARN]: Failed to load operators list: java.io.FileNotFoundException: ./ops.txt (そのようなファイルやディレクトリはありません)
[11:10:38] [Server thread/WARN]: Failed to load white-list: java.io.FileNotFoundException: ./white-list.txt (そのようなファイルやディレクトリはありません)
[11:10:38] [Server thread/INFO]: Preparing level "world"
[11:10:42] [Server thread/INFO]: Preparing start region for level 0
[11:10:43] [Server thread/INFO]: Preparing spawn area: 0%
[11:10:44] [Server thread/INFO]: Preparing spawn area: 1%
[11:10:45] [Server thread/INFO]: Preparing spawn area: 2%
[11:10:47] [Server thread/INFO]: Preparing spawn area: 4%
[11:10:48] [Server thread/INFO]: Preparing spawn area: 4%
[11:10:49] [Server thread/INFO]: Preparing spawn area: 5%
[11:10:50] [Server thread/INFO]: Preparing spawn area: 5%
[11:10:51] [Server thread/INFO]: Preparing spawn area: 6%
[11:10:52] [Server thread/INFO]: Preparing spawn area: 8%
[11:10:54] [Server thread/INFO]: Preparing spawn area: 9%
[11:10:55] [Server thread/INFO]: Preparing spawn area: 10%
[11:10:56] [Server thread/INFO]: Preparing spawn area: 11%
[11:10:57] [Server thread/INFO]: Preparing spawn area: 13%
[11:10:58] [Server thread/INFO]: Preparing spawn area: 15%
[11:10:59] [Server thread/INFO]: Preparing spawn area: 17%
[11:11:00] [Server thread/INFO]: Preparing spawn area: 19%
[11:11:01] [Server thread/INFO]: Preparing spawn area: 20%
[11:11:02] [Server thread/INFO]: Preparing spawn area: 21%
[11:11:03] [Server thread/INFO]: Preparing spawn area: 23%
[11:11:04] [Server thread/INFO]: Preparing spawn area: 26%
[11:11:05] [Server thread/INFO]: Preparing spawn area: 28%
[11:11:06] [Server thread/INFO]: Preparing spawn area: 29%
[11:11:07] [Server thread/INFO]: Preparing spawn area: 32%
[11:11:08] [Server thread/INFO]: Preparing spawn area: 34%
[11:11:09] [Server thread/INFO]: Preparing spawn area: 36%
[11:11:10] [Server thread/INFO]: Preparing spawn area: 38%
[11:11:11] [Server thread/INFO]: Preparing spawn area: 41%
[11:11:13] [Server thread/INFO]: Preparing spawn area: 44%
[11:11:14] [Server thread/INFO]: Preparing spawn area: 47%
[11:11:15] [Server thread/INFO]: Preparing spawn area: 49%
[11:11:16] [Server thread/INFO]: Preparing spawn area: 50%
[11:11:17] [Server thread/INFO]: Preparing spawn area: 53%
[11:11:18] [Server thread/INFO]: Preparing spawn area: 56%
[11:11:19] [Server thread/INFO]: Preparing spawn area: 58%
[11:11:20] [Server thread/INFO]: Preparing spawn area: 61%
[11:11:21] [Server thread/INFO]: Preparing spawn area: 63%
[11:11:22] [Server thread/INFO]: Preparing spawn area: 65%
[11:11:23] [Server thread/INFO]: Preparing spawn area: 67%
[11:11:24] [Server thread/INFO]: Preparing spawn area: 70%
[11:11:25] [Server thread/INFO]: Preparing spawn area: 73%
[11:11:26] [Server thread/INFO]: Preparing spawn area: 76%
[11:11:27] [Server thread/INFO]: Preparing spawn area: 78%
[11:11:28] [Server thread/INFO]: Preparing spawn area: 81%
[11:11:29] [Server thread/INFO]: Preparing spawn area: 84%
[11:11:31] [Server thread/INFO]: Preparing spawn area: 88%
[11:11:32] [Server thread/INFO]: Preparing spawn area: 91%
[11:11:33] [Server thread/INFO]: Preparing spawn area: 93%
[11:11:34] [Server thread/INFO]: Preparing spawn area: 96%
[11:11:35] [Server thread/INFO]: Preparing spawn area: 98%
[11:11:35] [Server thread/INFO]: Done (57.446s)! For help, type "help" or "?"

後は、自分のパソコンでマイクラを起動して、[マルチプレイ]→[サーバーのIPアドレス]を入れてアクセスするだけ。
サーバーのスペックが低いので、多少、ラグがあり、時々以下のようなワーニング(警告)が出る。

Can’t keep up! Did the system time change, or is the server overloaded?

これは「処理に予想より沢山時間が掛かっているので、システムの時間が途中で変更されたか、オーバーロード(過負荷)が疑われる」という意味。

そこで、サーバーで使用していないサービスを停止する事で、メモリとCPU負荷を軽くしてみる。

空きメモリを確認するコマンド「Free」

[root@dti-vps minecraft]# free
           total    used    free     shared buffers cached
Mem:       2097152  72512   2024640  0      0       0
-/+ buffers/cache:  72512   2024640
Swap:      0        0       0

totalはこのサーバー利用可能な全メモリ量、usedは現在使用中のメモリ量、freeは現在使われていないメモリ量。
ちなみに、free に -m を付けて実行すると、単位が[MB]になって表示されるので見やすい。

[root@dti-vps minecraft]# free -m
           total   used    free   shared buffers cached
Mem:       2097    72      2024   0      0       0
-/+ buffers/cache: 72      2024
Swap:      0       0       0

標準で起動するように設定されているサービスを確認する。

[root@dti-vps minecraft]# chkconfig | grep 3:on
ajaxterm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
modules_dep 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
serversman 0:off 1:off 2:off 3:on 4:on 5:on 6:off
smadmd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

ひとまず、絶対必要な最小限のサービスのみ起動するようにしてみる。

[root@dti-vps minecraft]# chkconfig crond off
# 指定時刻に自動的にプログラムを実行する。
[root@dti-vps minecraft]# chkconfig ajaxterm off
# ブラウザでSSHを使えるようにする。
[root@dti-vps minecraft]# chkconfig httpd off
# WEBサーバー。
[root@dti-vps minecraft]# chkconfig ip6tables off
# IPv6用のファイヤーウォール
[root@dti-vps minecraft]# chkconfig iptables off
# IPv4用のファイヤーウォール
[root@dti-vps minecraft]# chkconfig portreserve off
# 特定のサービスにポート番号が占拠されてしまうのを防止。
[root@dti-vps minecraft]# chkconfig saslauthd off
# 認証デーモン。
[root@dti-vps minecraft]# chkconfig serversman off
# dtiの独自サービス ServerMan。
[root@dti-vps minecraft]# chkconfig smadmd off
# dit独自のServerManのオンラインストレージ機能。
[root@dti-vps minecraft]# chkconfig xinetd off
# ポート監視用のデーモンプログラム。アクセスがあった時にサービスを起動。
[root@dti-vps minecraft]# chkconfig modules_dep off
# modprobeがモジュールをロードする順番を指定するのに必要。本来は要らないが、
# ServersMan@VPSはOpenVZを採用しカーネルが共有されるので特有の問題が出る可能性があるが・・とりあえずoff

最小限のサービスに絞られたか確認する。

[root@dti-vps minecraft]# chkconfig |grep 3:on
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

IPv6を無効にする。

[root@dti-vps minecraft]# vi /etc/sysconfig/network
[a]#入力モードにする
NETWORKING="yes"
GATEWAY="192.0.2.1"
#NETWORKING_IPV6="yes"
↑に♯を付けてコメントアウト
#IPV6_DEFAULTDEV="venet0"
↑に♯を付けてコメントアウト
HOSTNAME=ホスト名
NETWORKING_IPV6="no" #追記
[esc]
:wq [enter]

[root@dti-vps minecraft]# vi /etc/sysctl.conf
#最終行に以下の2行を追記。
[a]#入力モードにする
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
[esc]
:wq [enter]

[root@dti-vps minecraft]# vi /etc/modprobe.conf
[a]#入力モードにする
alias ipv6 off
alias net-pf-10 off
[esc]
:wq [enter]

再起動をする。

注意:再起動がしっぱいしてシャットダウン後、再度、立ち上がって来ない場合が多々ある。いつまでも反応が帰ってこない場合は、コントロールパネルから起動する。

[root@dti-vps minecraft]# reboot

再起動直後のメモリ状況を確認する。

[root@dti-vps ~]# free
total used free shared buffers cached
Mem: 2097152 42656 2054496 0 0 0
-/+ buffers/cache: 42656 2054496
Swap: 0 0 0

約30MBのメモリを節約する事に成功。

メモリに多少余裕があるので、Minecraft Serverが使うメモリ量を増やしてみる。
メモリを全部使い切るとサーバーが不安定になるので、空きメモリは僅かに残す事。

[root@dti-vps minecraft]# cd /var/minecraft/
[root@dti-vps minecraft]# vi minecraft.sh

[a]#入力モードにする
#!/bin/sh
java -Xms1024M -Xmx1536M -jar minecraft_server.1.7.2.jar
[esc] #↑数字を書き換える512→1024、1024→1536
:wq [enter]

再度、マイクラを起動してみる。

[root@dti-vps minecraft]# ./minecraft.sh

上記のように最大1.5GB程度メモリを割り当てると、まだワーニング(警告)は出るが、それほどラグは気にならず、普通に遊べるレベルになった。

但し、常時稼働するマイクラサーバーとして運用するには、このままでは様々な問題がたっぷり。
セキュリティ上、こんな危険なサーバーを放し飼いにしてはいけません。

次回は常時起動サーバーを前提にセキュリティを含め、各種設定を行なう。

ServersMan@VPS サービスの詳細、申込はこちら



Kenzi Tada について

カメラマンを本業と出来るよう鋭意努力中ですが、まだまだ力量が不足し、広告企画制作や技術者としての仕事をメインに、二足のわらじ、もとい四足ぐらいか(笑) 作品制作や撮影のお仕事にご協力頂ける被写体様(男女年齢問わず)、ヘアメイクアップアーティスト様を随時募集しております。ご興味が御座います方は是非、ご連絡下さい。