風狂屋の備忘録

アクセスカウンタ

zoom RSS Linuxでのマインクラフトマルチサーバー1.8.8の立て方・接続方法

<<   作成日時 : 2015/09/30 10:57   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Linux(Debian)でのマインクラフトマルチサーバー1.8.8の立て方・接続方法

実験機として用意したもの
ソケット939のPC
マザー:939A790GMH
CPU:4800+(2コア2.4GHz)
メモリ:DDR400 4GB
USB2.0メモリ:8GB
電源と光学ドライブ
ディスプレイとキーボードは一時流用

プレイ環境
max4人、メモリは2GB割当
マップは一回り大きい物4枚ぐらい移動済み
トラップタワー数基稼働中
ブタ・にわとり・牛・馬・ロバ 各種牧畜中
人参・じゃがいも・小麦・スイカ・かぼちゃ・カカオの畑栽培中
木材栽培専用用地あり
各種自動化もしくは半自動化の装置が稼働中

稼働状況
人数が2人以上で数分おきに2秒程度のラグが発生
ネザーでラグが頻発
ラージチェストの開閉でラグが発生
ただし、0人から1人ではほぼ鯖のラグの発生警告はほぼ無い

マイクラwikiではスペックを達しているものの実運用では使えるギリギリの状態となっている。
これは単純にCPUのスペック不足と言える。
実運用では用意出来る機体は中古i5ぐらい必要かもしれない。
サーバーとして稼働部品を少なくするためUSB2.0の8GBメモリにシステムが全部入っているがコレも転送速度からいって良くなかったようだ。
中古i5PCは約13k円+送料ぐらいで取引されておりこの程度ぐらいのスペックはサーバーとして必要と考えたい。ちなみにグラフィック関係は最終的には要らなくなる。

OSとしては大手であるDebian(デビアン)7.8.0のCUIを使用した。
また、システム構築に際してWin7機によるダウンロードやisoディスクの作成などをしている。この部分は最新版のバージョンにするには致し方無いのでLinux機器単独では出来ない。CPU切替器があると操作はだいぶ楽になるがこれは差し替えて対応してもいいので絶対必要という訳ではない。

手順
1.LinuxOSのDebianをDL
2.isoとして焼く
3.Linuxのインストール
4.javaのDLインストール
5.ユーザーの作成
6.iptablesの設定(ポート開放設定)
7.sambaの設定(ファイル共有)
8.サーバーソフトのDLと設定
9.最新サーバーソフトのDLと設定
10.以前のワールドを移植
11.LAN内で稼働テスト
12.ルーターのポート設定(外部へ開放)

エディタ
細かいことを言うと宗教戦争になるので何も言いません。ここでは、CUI環境でも簡単に扱えるviを使います。もちろんnanoやvim、emacsでも可能です。信者は各自置き換えてください。
「~」の入力
Shift押しながらひらがなの「へ」の部分です。まぁ、カレントディレクトリを理解できる人は別にいらないと思います。
1から3はググるといっぱい出てきます。
必ずDVDに焼かないといけないわけではないのでUSBメモリに焼きたい方はそうしてください。焼くソフトもいっぱいありますが自分が安定していると思うものを使って下さい。
CUIとしてインストールするにはインストール途中で入れるソフトを選ぶ時にデスクトップ環境を選択しないだけです。
必要であれば日本語化環境を入れておきましょう。

4.sshとscreenと更新とjavaのインストール
#aptitude install ssh
#aptitude install screen
#aptitude update
#aptitude upgrade
javaのインストールはオラクル版のほうが安心である。
openJDK版でも動作するがまれに誤動作する。
openJDK版はLinux機から直接行える。
オラクル版はwin機からDLしてsamba設定が終わってからインストールしても良いです。
自分がDLしたファイルは
「tar zxvf jre-8u60-linux-x64.tar.gz」
tarで解凍[/usr/java/jre1.8.0_60/bin/]へインストール。
当然だが時間が経てばバージョンアップするので数字が変わるので注意です。
DL先のサイトはググッて探すこと(サイトの構成が変更されることがあるため)

5.ユーザーの作成
ユーザー名は忘れなければ自分の好みの名前に置き換えて構いません。
また、suでスーパーユーザーになっている場合はchmodで権限変更していれば問題ないです。
サーバー用ディレクトリの作成
マインクラフトサーバを設置するためのディレクトリを作成しカレントディレクトリを移動します。
別になんでもいいですので、わかる方は適宜対応してください。
$ mkdir ~/mc
$ cd ~/mc

6.iptablesの設定(ポート開放設定)
コレが検索してもコレダというのがありません。
何故かと言うとそのポートを開きなさいと確定してしまうとそのポートから侵入される危険性があるので知っている人は書きたくないのです。
実験で一回上手く行ったらポート番号を変更するなり対処して下さい。
バグ有りのままでとりあえず実験素材となるファイルをアップロードしておきます。
適時DLして使って下さい。
自分もiptablesについては勉強不足ですがよく検索して勉強する事をオススメします。
http://ux.getuploader.com/dion777/download/112/firewall.sh
「777」
このファイルを実行するには
# ./firewall.sh
で実行出来ます。
(モードは一回700で指定し直しておいて下さい)
(viで開くなりして^Mとか文字化けしていないかチェックして下さい)
(使わないサービスのポートは#でコメントアウトして閉じて置いて下さい)
参考:http://bl.oov.ch/2010/11/debian-iptables.html
参考:http://fedorasrv.com/iptables.shtml

7.sambaの設定(ファイル共有)
http://uturo1.nevernothing.jp/debiansambafile/
そのまま使えます。
5で作ったユーザーも加えておきます。

8.サーバファイルのダウンロードと設定
ここでは便利な便利な「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
[minecraft_server.jar]と出てきたらダウンロード成功です。
サーバーの起動
ダウンロードしたファイルを実行します。
$ cd ~/mc
$ /usr/java/jre1.8.0_60/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
実行すると、何やら端末内でゴニョゴニョ始まるのが見られると思います。少し待つ(スペックによっては1分くらいかかります)と、一段落するので、stopと入力してエンターキーを押し、一旦終了します。
起動確認
起動がうまく行っていると、いくつかのファイルやディレクトリが生成されているはずです。
確認しましょう。
$ ls ~/mc
world banned-ips.txt banned-players.txt minecraft_server.jar ops.txt server.log
server.properties white-list.txt
上記のように8つの名前が出てきていれば成功です。
うまくいってない場合は、もう一度実行ししばらく待ってみましょう。
ちなみに、自分がDL出来たファイルは1.5.2でした。

9.最新サーバーソフトのDLと設定
簡単なのはwin機で「http://www.minecraft.net/download」のサイトの「Multiplayer Server」にある「minecraft_server.1.8.8.jar」をDLします。
先ほどsamba設定しましたのでファイル共有が出来ていますからmcディレクトリへコピーします。
$ cd ~/mc
$chmod 700 minecraft_server.1.8.8.jar
$ /usr/java/jre1.8.0_60/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
win機と同じく
eura.txtが出来ますので最後をeura=trueへ書き換えて保存します。

10.以前のワールドを移植
win機などで使っていたworldディレクトリをsamba設定のファイル共有mcディレクトリへコピーします。
いちお、chmod 700でワールドを設定しておくと良いでしょう。

11.LAN内で稼働テスト
$ /usr/java/jre1.8.0_60/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
win機などプレーヤー側でマルチサーバー選択サーバーの増設
LAN内のローカルIPを指定します、名前は適当につけて下さい。
ローカルIPについては
接続設定
# ifconfig
で表示される数字の中にサーバーPCのIPアドレスが表示されるので、控えておきます。
(多くの場合は、[192.]で始まり末尾が[.1]ではないもの、例えば[192.168.0.8]などである、がもちろん例外もある)
サーバファイルを起動後、同じLAN内のあるPCでMinecraftを起動し、マルチサーバーを選択して先に控えたIPアドレスを入力し接続出来れば、マルチサーバー構築は成功です。
シェルスクリプトの作成
先述のような起動方法だと面倒なので、シェルスクリプトを作成します。
$ vi ~/mc/server.sh
と実行すると、白紙(というか黒?)の画面が出てくるので、
#!/bin/sh
/usr/java/jre1.8.0_60/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
:wqで終了・保存します。
そして、このスクリプトに実行権を付与します。
$ chmod 700 ~/mc/server.sh
これで、シェルスクリプトは完成です。
試しに実行してみましょう。
$ cd ~/mc
$ ./server.sh
うまく行っていれば、見覚えの画面が出てくるはずです。
stopで終了しましょう。
バックグラウンドでの実行
このままだと"端末"を閉じるとサーバアプリケーションも閉じてしまうので、バックグラウンで実行できるようにします。
バックグラウンドで実行するためにscreenという仮想端末を利用します。
次に先に作ったシェルスクリプトを再編集します。
$ vi ~/mc/server.sh
で次の画面が開くので編集します。
#!/bin/sh
screen -AmdS mc /usr/java/jre1.8.0_60/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
:wqで終了・保存します。
試しに先の記述と同じように起動してみましょう。
$ cd ~/mc
$ ./server.sh
すると、一瞬何も起きてないように思うかもしれません。
しかし、うまくいっていればバックグラウンドで起動しています。
それを確認しましょう。
$ screen -r mc
実行すると、見覚えのある画面になると思います。
マインクラフトのサーバコマンドなどの入力はこの状態で行うことになります。
なお、メモリに余裕がある場合は1024Mは1GBのメモリ指定をしているので
1024単位ですが2048Mなど多めに可能なら3から4GBも設定すれば動作が楽になるでしょう。

※注意〜

Cannot open your terminal '/dev/pts/0' - please check.

というエラー?が出て、何も起こらない場合があります。
その時は、
$ script /dev/null
を実行した後に
$ screen -r mc
を実行してください。
〜〜
この画面から元のLinuxの画面に戻るときは、
Ctrl+a→d
で戻ることができます。

これで、マインクラフトサーバの設置は終了です。
以後、マインクラフトサーバを起動する際はユーザー"mc"でログインした後に
$ cd ~/mc
$ ./server.sh
を実行することで、起動が可能です。
もちろんモードを700指定してあればsuのままでも実行できます。
「server.properties」の内容を確認して適時変更して下さい。

12.ルーターのポート設定(外部へ開放)
ここまではLAN内で動作していましたがルーターのポートを開放することで外のインターネットへ公開する事ができます。
残念ながらルーターはどの機種を使っているか自分にはわかりませんので各自で型番を調べてポート開放の仕方を調べましょう。
そして「25565」のポート番号が開ければ公開出来ます。
もちろん標準のポート番号なのでもう少し設定を変えるなりが必要です。

ポートを開放すると外部からの接続要求を受けることが可能な状態になります。
危険性を理解した上で操作を行なってください。

あとはプレイしたい友人にIPアドレスを教えればゲームに参加することが出来ます。
適時、ホワイトリストなど活用して使える人の絞り込みをしておいたほうがいいでしょう。

以上で終わりなのですが、
始めに書いたとおりスペックが足りていないので今後どうしようと悩んでいるところです。
まず、置き場所から作らないといけなくて困ったものです。
Win機としてはi7-5930Kがあるのでこれで全部出来ればいいのですが
Javaを使うマインクラフトと何かのソフトのバックグラウンド操作がぶつかって
突然PCが落ちるのでワールドごとおちるよりはと鯖を別にたてています。
今のところはゲームする時に再起動してクリアな状態でゲームをすればいいかな?
とは思いますが根本的な解決となっていません(大汗
Win機でマルチサーバーを立てる方法
http://fuukyouya.at.webry.info/201501/article_4.html

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Linuxでのマインクラフトマルチサーバー1.8.8の立て方・接続方法 風狂屋の備忘録/BIGLOBEウェブリブログ
文字サイズ:       閉じる