マインクラフトのマルチサーバの建て方 (Linux版)
まず実際に手を動かす前に、一度最後まで読んでイメージを掴んでいただくのが成功のコツです。
ここでは、以下の様な構成を前提として解説します。なるべくわかりやすいようにしているつもりですが、それでもどうしてもLinux独特のルールなどの知識が必要になってきますが、基本的にディレクトリの移動などのやり方がわかっていれば作業は進められます。Linuxに関する情報は簡単に調べることができるので、わからない事があれば調べてください。また、本ページ最後に、書き込む場を設けてありますので、そちらへ書き込んでいただいても構いません。
- OS
UbuntuServer12.04 LTS 日本語インストール (操作はすべてsshで行います) - マシン
サーバ用に別マシンを用意しているものとします。もちろんVirtualBOXやXenなどの仮想環境でも可能です。 - ルータ
モデム直付けは論外です。ルータ等でLANを構築していることを前提とします。 - root
権限が必要なときはコマンドの頭にsudoを入力するなどしてください。 - CUI環境
GUI環境は説明や管理が煩雑になるので、ここではCUI環境を用います。 - エディタ
細かいことを言うと宗教戦争になるので何も言いません。ここでは、CUI環境でも簡単に扱えるnanoを使います。もちろんviやvim、emacsでも可能です。信者は各自置き換えてください。 - 「~」の入力
Shift押しながらひらがなの「へ」の部分です。まぁ、カレントディレクトリを理解できる人は別にいらないと思います。 - サーバに必要なスペック
当サーバはCPU:Atom230(シングルコア1.6GHz)、メモリ:2GBで運営されています。が、かなり重いです。人数にもよりますが、CPU:デュアルコア2.0GHz以上、メモリ4GB以上はあったほうがいいと思います(あくまでも私の感覚)。スペックについてはここも参考にしてみてください。※ただし、サーバにGPU性能は必要ありません。
OpenJDK導入(Java環境)→ユーザーの作成→サーバソフト設置→設定
Java環境構築
- パッケージ更新
以下の2つのコマンドを入力し、更新します。$ sudo apt-get update
$ sudo apt-get upgrade
- OpenJDkのインストール
マインクラフト動作要件から、JREを導入します。$ sudo apt-get install openjdk-6-jre
ユーザーの作成
- ユーザーの作成
マインクラフト用のユーザーを作成します。
ここでは、マインクラフト用のユーザーに対してデフォルトの設定をします。設定が必要な場合は適宜自身で設定してください。またマインクラフト用ユーザー名を"mc"として作業をしています。$ sudo adduser mc
- ユーザーの切替え
マインクラフト用ユーザー"mc"へログインします。$ su - mc
$ cd
マインクラフトサーバの設置
- サーバ用ディレクトリの作成
マインクラフトサーバを設置するためのディレクトリを作成しカレントディレクトリを移動します。
別になんでもいいですので、わかる方は適宜対応してください。$ mkdir ~/mc
$ cd ~/mc
- サーバファイルのダウンロード
ここでは便利な便利な「wget」コマンドを使い、カレントディレクトリへ「minecraft_server.jar」をダウンロードします。
もちろん、他の手段でも大丈夫ですのでたとえばGUI環境でしたら「http://www.minecraft.net/download」のサイトの「Multiplayer Server」にある「minecraft_server.jar(※Minecraft_Server.exeはWindows版ですので、ここでは使用出来ません)」をダウンロードして、適宜移動してもらっても構いません。$ wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
$ ls ~/mc minecraft_server.jar
- サーバの起動
ダウンロードしたファイルを実行します。$ cd ~/mc $ java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
※なお、Xmxの部分(1024のところ)を書き換えることによって、Minecraftサーバへ割り当てるメモリ割り当てプールの最大サイズを決定することができます。これは2Mバイトより大きい1024の倍数で指定します。キロバイトの場合はKを、メガバイトの場合はMを数字の末尾に追記します。上記では1024MBを割り当てています。また、Xmsの値はメモリ割り当てプールの初期値サイズです。 - 起動確認
起動がうまく行っていると、いくつかのファイルやディレクトリが生成されているはずです。確認しましょう。$ ls ~/mc world banned-ips.txt banned-players.txt minecraft_server.jar ops.txt server.log server.properties white-list.txt
- シェルスクリプトの作成
先述のような起動方法だと面倒なので、シェルスクリプトを作成します。$ nano ~/mc/server.sh
#!/bin/sh java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
そして、このスクリプトに実行権を付与します。$ chmod 700 ~/mc/server.sh
試しに実行してみましょう。$ cd ~/mc $ ./server.sh
- バックグラウンドでの実行
このままだと"端末"を閉じるとサーバアプリケーションも閉じてしまうので、バックグラウンで実行できるようにします。
Ubuntuにデフォルトでscreenは入っているようなので、(※1)へスキップしていただいても構いません。$ su - OS導入時に設定したアカウント名
その後screenを$ sudo apt-get install screen
$ su - mc
$ nano ~/mc/server.sh
#!/bin/sh screen -AmdS mc java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
$ cd ~/mc $ ./server.sh
$ screen -r mc
Cannot open your terminal '/dev/pts/0' - please check.
$ script /dev/null
$ screen -r mc
~~~~~~~~~~~~~~~~~~~~~~~~~~~$ cd ~/mc $ ./server.sh
を実行することで、起動が可能です。
設定
- 使用許諾契約
最近のMinecraftは使用許諾があるようですので、その操作を行います。[2016/11/04現在]$ cd ~/mc $ nano eula.txt
これで使用許諾のファイルが開くので、eula=falseをeula=trueに置き換えてください。
- マルチサーバの設定
マルチサーバの設定を適宜変更します。
なお、設定はサーバが停止している状態で行なってください。$ cd ~/mc $ nano server.properties
コマンド | 説明 | |
grow-trees=<true/false> | 苗木の成長のON/OFF | |
level-name=<name> | マップデータを保存するフォルダの名前 | |
level-type=<DEFAULT/FLAT> | マップ生成時の地形、DEFAULT=通常 FLAT=平坦 | |
hell-world=<true/false> | trueにすると通常世界にネザーの世界が生成される | |
allow-nether=<true/false> | "trueにするとネザーの行き来ができるようになる | |
view-distance=<3-15> | サーバーで許可するマップのchunksの表示範囲(?) デフォルトは10 | |
spawn-monsters=<true/false> | モンスターの出現ののON/OFF <false>にするとPeacefulい、に<true>の場合、難易度はdifficultyの値によって設定される。 | |
online-mode=<true/false> | Minecraft公式サーバに接続してユーザ認証を行うかどうか | |
difficulty=<0-3> | 難易度の設定。0=Peaceful 1=Easy 2=Normal 3=Hard ※デフォルトEasy | |
gamemode=<0/1> | ゲームモードの設定。0=サバイバルモード 1=クリエイティブモード | |
spawn-animals=<true/false> | 動物の出現のON/OFF | |
max-players=<0-256> | "プレイヤーの最大同時接続数 | |
server-ip=<blank/IP> | NICが複数ある場合にどのNICにバインドするか | |
pvp=<true/false> | Falseにすると他のプレイヤーを攻撃できなくなる | |
level-seed=<seed> | ワールド作成時のシード値 | |
server-port=<1-65535> | サーバーで使用するポート デフォルトでTCP25565 | |
allow-flight=<true/false> | falseにすると不正な移動があった場合自動でキックする | |
white-list=<true/false> | trueにするとホワイトリスト以外のメンバーは参加できなくなる | |
generate-structures=<true/false> | 建物を生成するか(村) | |
motd=A Minecraft Server | サーバーリストに表示されるメッセージ(サーバー名の下) | |
enable-query | GameSpy4 protocol serverを許可するかどうか | |
enable-rcon | サーバーコンソロールにリモートアクセスを許可するかどうか |
- 接続設定
# ifconfig
(多くの場合は、[192.]で始まり末尾が[.1]ではないもの、例えば[192.168.0.8]などである。がもちろん例外もある。)
※ただし、この状態だとまだ家の外、つまりネット上の人に接続してもらうことは出来ません。詳細はポート開放を参照してください。
質問受付
- Ubuntuへのログイン時にマイクラサーバーを自動的に起動させることは可能でしょうか。/etc/profile.d/に.shファイルを置いてみたのですが、うまくいきませんでした。 -- mrvuzumy? 2013-01-31 (木) 22:00:37
>mrvuzumyさん 返信おくれて申し訳ありません。 このやり方の場合、"mc"ユーザーに実行権限があるので、それ以外のユーザーでログインした場合自動起動できないかもしれません。"mc"ユーザーでログインした上で自動起動できない場合は、実行権限を付け直してみてください。また、別ユーザーでも実行権限を"mc"以外に与えればログイン時の自動起動が可能だと思いますが、あまりおすすめしません。 -- 鯖主? 2013-02-06 (水) 20:54:29 - ここに載ってる以外の方法で悪戦苦闘しておりましたが、おかげさまでサーバーを開くことができ、友達と楽しく遊んでます。 -- bako? 2013-02-09 (土) 12:52:47
>bakoさん そういっていいただけると、このページ書いてよかったなーって思います! ありがとうございます!! -- 鯖主? 2013-02-11 (月) 05:13:13 - 返信ありがとうございます! 少しでも感謝の気持ちが伝わればと思いコメントさせていただきました!。 あと、ご相談なのですが、bukkitなどの導入方法はこの記事の「マインクラフトサーバーの設置」から下を参考に導入を進めることは可能でしょうか -- bako? 2013-02-13 (水) 09:57:51
- 投稿しやすいように、掲示板を設置してみました。そちらをご利用下さい。