serversman@VPS で Minecraft のサーバを動かしてみた。

シェアする

DTIのVPS、グローバルIPアドレス貰ってるじゃん?

CentOSじゃん?

root権限あるじゃん?

Java入れたらMinecraftのサーバ動くんじゃね?

というわけで動かしてみた。せっかく金払ってるのでフル活用しないとね。

まずJavaを入れる。

$ sudo yum install java-1.6.0-openjdk.i386
# 略
$ java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.10) (rhel-1.21.b17.el5-i386)
OpenJDK Client VM (build 14.0-b16, mixed mode)

入った。

$ wget http://www.minecraft.net/download/minecraft_server.jar?v=1307624913526
$ mv minecraft_server.jar?v=1307624913526 minecraft_server.jar

Chromeで「リンク先URLをコピー」したら最後にいらない数字がついた。キャッシュ避けだろうけど。やりやすいようにリネームしてやる。

とりあえず wikiの通りにコマンドを入れてみる。

$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

なんだとこのやろう、1G与えて少ないとか言うのか!?

試行錯誤の結果

$java -jar minecraft_server.jar -nogui

で動いた。やっぱりやるべきはオプション無し起動。

起動したらMAP初期化を待つ。
ちなみにこのときのCPU使用率、100% がんばれXeon、OpenVZだけど。

初期化終わったら入ってみる。

snow island
雪国ができた。

ログイン時のサーバログ

$ java -jar minecraft_server.jar nogui
148 recipes
16 achievements
2011-06-11 11:27:43 [INFO] Starting minecraft server version Beta 1.6.6
2011-06-11 11:27:43 [WARNING] **** NOT ENOUGH RAM!
2011-06-11 11:27:43 [WARNING] To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
2011-06-11 11:27:43 [INFO] Loading properties
2011-06-11 11:27:43 [INFO] Starting Minecraft server on *:25565
2011-06-11 11:27:43 [INFO] Preparing level "world"
2011-06-11 11:27:43 [INFO] Preparing start region for level 0
2011-06-11 11:27:44 [INFO] Preparing spawn area: 44%
2011-06-11 11:27:45 [INFO] Preparing start region for level 1
2011-06-11 11:27:45 [INFO] Preparing spawn area: 36%
2011-06-11 11:27:46 [INFO] Done (2808461000ns)! For help, type "help" or "?"
2011-06-11 11:28:27 [INFO] ryomatsu [/**.**.**.**:52997] logged in with entity id 124 at (106.12052715700108, 76.5625, -146.0534447284877)

初回起動じゃないのでマップ初期化はしてないです。が、やっぱりメモリが足りないみたいな警告が出る。。。ちなみにこのときサーバ上では800MBほどメモリ食ってます。VPSなのでメモリほしかったらお金出すしか無いんですけどね。

Sponsored Links

サーバの設定の変更方法

サーバの設定ファイルはサーバが置いてあるディレクトリ内にある、server.properties に書いてある。
大体名前でどんな設定か想像できるだろうが一応書いておこう。minecraft wikiからコピペし・・・ようとしたが一部項目が違う様なので調べた。

$ cat server.properties
#Minecraft server properties
#Thu Jun 09 22:16:50 JST 2011
level-name=world # マップデータを保存するフォルダの名前
allow-nether=true # ネザーへ行くことを許可するかどうか true=許可
view-distance=10 # サーバがプレイヤーに送信するデータ量 3-15 で指定
spawn-monsters=true # モンスターが沸くかどうか true=沸く
online-mode=true # minecraft のサーバでユーザ認証するかどうか true=認証する
spawn-animals=true # 動物が沸くかどうか true=沸く
max-players=20 # ログインできるプレーヤーの最大値。adminは除く。0-255
server-ip= # ipアドレス複数個持ってた場合はここで指定することもできるが空白をお勧めする。
pvp=true # Friendly Fire を許可するかどうか true=許可
level-seed= # Map生成時のシード値
server-port=25565 # サーバで使用するポート番号
allow-flight=false # 飛行/no-clipを許可するかどうか true=許可
white-list=false # ユーザ認証にホワイトリストを使用するかどうか。 true=使用

ちょっと実験

さて、設定もわかったことだしちょっと実験。
サーバコンソールで help と押すとコマンド一覧が出ます。

Console commands:
   help  or  ?               shows this message
   kick <player>             removes a player from the server
   ban <player>              bans a player from the server
   pardon <player>           pardons a banned player so that they can connect again
   ban-ip <ip>               bans an IP address from the server
   pardon-ip <ip>            pardons a banned IP address so that they can connect again
   op <player>               turns a player into an op
   deop <player>             removes op status from a player
   tp <player1> <player2>    moves one player to the same location as another player
   give <player> <id> [num]  gives a player a resource
   tell <player> <message>   sends a private message to a player
   stop                      gracefully stops the server
   save-all                  forces a server-wide level save
   save-off                  disables terrain saving (useful for backup scripts)
   save-on                   re-enables terrain saving
   list                      lists all currently connected players
   say <message>             broadcasts a message to all players
   time <add|set> <amount>   adds to or sets the world time (0-24000)

おもむろに以下のコマンドを連打します。

give ryomatsu 46 64

TNT!TNT!

46 はまいどおなじみTNTですね!

TNT!TNT!

そのへんに適当に置いて・・・

TNT!TNT!

あとはレッドストーンとスイッチを設置して・・・

TNT!TNT!

ドーン!!

TNT!TNT!
TNT!TNT!
after TNT

友達から「TNT同時爆破させたらサーバがすげー重くなった」って話を聞いたんでためしにやってみたんです。
とりあえず300個ぐらいTNT並べて爆発させてみたけど最大でCPU50%ぐらいですね。ちょっと実用に耐えないかな。。。

というわけでサーバには良いPCを用意しましょう。サーバーを爆破させちゃだめですよ!

Sponsored Link

シェアする

フォローする