マイクラサーバといえば、公式が提供している Realms がありますが、ワールドデータの書き換えができなかったりとまだ不便な点が多いのが現状です。
今回は、レンタルサーバ上にマイクラのサーバを建てることで、カスタマイズしやすいサーバを構築しましょう。
SPONSORED LINK
必要となる知識
レンタルサーバの説明
今回は初心者でも扱いやすい さくらVPS を使っていきます。
一番安いプランでも mod なしで 5〜6 人であれば、遅延なく動くことを確認しています。 (参考までに、地上とネザーで同時に作業しても問題ないです)
- 初期費用: 1080円
- 月額費用: 685円
常時起動状態だと さくらの VPS が一番安いと思いますが、一度選んだプランをグレードアップはできませんので、ご注意ください。
- 夜間は落とす
- 休日のみ稼働
などの使い方であれば、AWS EC2 の方が安いです。 ただ、落とすのを忘れてしまうとコストがかさむため、ご注意を。
SPONSORED LINK
レンタルサーバを借りる
では、さくらVPS を借りていきましょう。
さくらVPS申し込み から申し込みボタンをクリックします。
選択画面が出てきますので、「はじめての方」をクリックします。
512MB プランを選択します。他は変更しなくて問題ありません。このままカートに入れます。
あとはユーザ情報の登録などをし、購入まで進めてください。
レンタルサーバ情報を確認する
レンタルが完了しましたら、サーバ情報を確認します。 さくらの VPSにアクセスし、コントロールパネルログインをクリックします。
v4
の箇所に 123.456.78.912
のような数字があると思います。
これが、レンタルしたサーバの IPアドレス(住所)にあたるものですので、これをメモしてください。
また、下記画像をクリックします。
メニューから 標準 OS インストールをしてください。
root 権限のパスワードを問われますので、忘れないようなパスワードを設定します。
※ ある程度マシなパスワードを設定しましょう。
ssh 環境の準備
手持ちの PC から レンタルサーバへアクセスします。
ssh と呼ばれるセキュリティを担保した接続を試みます。
Windows の方
Tera Term をインストールしてください。
Mac の方
特に入れるものはありません。 ターミナルを開いてお待ち下さい。
Linux サーバへのアクセス
接続の仕方は下記の通りです。
$ ssh root@123.456.78.900 root@123.456.78.900's password:
ssh コマンドで root ユーザで さきほどメモした IP アドレスを指定して接続しようとすると、パスワードが聞かれますので入力します。
SAKURA Internet [Virtual Private Server SERVICE]
と表示されれば成功です。ここから各種設定をしていきます。
各種インストール
java のインストール
minecraft は java で動いているので導入します。
※ #
は、root ユーザで実行するという意味です。コマンド入力する必要はありません。
# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
screen のインストール
マイクラサーバをバックグラウンドで動かすのに必要なツールになります。
# yum install -y screen
wget のインストール
wget は、 url を指定してダウンロードするためのものです。
# yum install -y wget
iptable( firewall )の設定
いわゆる ファイアウォール の設定を行います。 vim を使って編集していきますので、使い方を確認しながら編集してください。
# vim /etc/sysconfig/iptables
下記をコピペします。(25565 が開いているのがポイントです)
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 25565 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
設定を読み直します。
# service iptables restart
ユーザの追加
root ユーザはすべての実行権限を持っているのですが、このユーザで操作を行うと、誤ってシステムを破壊してしまうなどセキュリティ上好ましくないため、マイクラのサーバを動かすためのユーザを別で作ります。
minecraft
という名のユーザを追加します。
パスワードは忘れないようにしてください。
# adduser minecraft # passwd minecraft Changing password for user minecraft. New password: (#パスワードを入力して Enter を押す) Retype new password: (#パスワードを再入力して Enter を押す)
minecraft サーバのダウンロード
まずは 公式サイト で最新のサーバダウンロード URL を確認してきます。
右クリックから「リンクのアドレスをコピー」的なものを選択します。
今回は /usr/local/minecraft
の階層にマイクラサーバをダウンロードします。
# mkdir -p /usr/local/minecraft # chown minecraft:minecraft /usr/local/minecraft # cd /usr/local/minecrft # wget https://s3.amazonaws.com/Minecraft.Download/versions/1.10.2/minecraft_server.1.10.2.jar # mv minecraft_server.1.10.2.jar minecraft_server.jar
wget している url は、コピーしたリンクのアドレスをペーストしてください。
ユーザの切り替え
さて、ここまで設定ができましたら、ユーザを切り替えます。
まずは今のサーバから抜けましょう。
# exit
minecraft ユーザで入りなおします。
$ ssh minecraft@123.456.78.900 minecraft@123.456.78.900's password: (パスワードを入力して Enter を押す)
minecraft の起動
マイクラサーバを起動してみます。
$ cd /usr/local/minecraft $ java -Xmx512M -Xms512M -jar minecraft_server.jar nogui [22:09:38] [Server thread/INFO]: Loading properties [22:09:38] [Server thread/WARN]: server.properties does not exist [22:09:38] [Server thread/INFO]: Generating new properties file [22:09:38] [Server thread/WARN]: Failed to load eula.txt [22:09:38] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info. [22:09:38] [Server thread/INFO]: Stopping server [22:09:38] [Server Shutdown Thread/INFO]: Stopping server
起動しようと試みているのですが、失敗するはずです。
ls
コマンドで配下のファイルが確認できます。
$ ls eula.txt logs minecraft_server.jar server.properties
eula.txt の修正
EULA(使用許諾契約)同意 しなければ、サーバの起動ができないようになっています。
$ vim eula.txt #By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Sat Jul 02 22:09:38 JST 2016 eula=false
最終行の eula=false
を eula=true
に変更して、再度サーバを起動します。
$ java -Xmx512M -Xms512M -jar minecraft_server.jar nogui [22:17:30] [Server thread/INFO]: Starting minecraft server version 1.10.2 [22:17:30] [Server thread/INFO]: Loading properties [22:17:30] [Server thread/INFO]: Default game type: SURVIVAL 中略 [22:17:44] [Server thread/INFO]: Preparing spawn area: 81% [22:17:45] [Server thread/INFO]: Preparing spawn area: 93% [22:17:46] [Server thread/INFO]: Done (12.765)! For help, type "help" or "?"
これで起動できました。一度ログインできるか確認してみます。
マイクラからサーバに接続
いつも通りマイクラを起動しましょう。(サーバのバージョンと同じバーションで起動してください。)
「マルチプレイ」をクリックします。
「サーバを追加」ボタンを押します。
サーバ名は適当につけ、「サーバアドレス」に契約した さくらVPS の IP アドレスを入力し、完了ボタンを押します。
正常に接続ができていれば、緑色のアンテナマークが出るはずです。
まずはこの状態で接続ができるところまで確認してください。 (これで接続ができない場合は、iptables の設定が怪しいことが多いです。再確認しましょう。)
無事に接続が終わったら、 stop
と打って一旦サーバを落としましょう。
ワールドデータの設置
普段使っているワールドデータを Linux サーバに設置しましょう。
ちょっとわかりにくいかもしれませんが、以下のような感じです。
$ exit $ scp コピーしたいローカルのファイルパス ユーザ名@リモートのホスト名:保存したいパス $ cd マイクラのワールドデータが置いてあるPATH $ scp -r world minecraft@サーバのIPアドレス:/usr/local/minecraft
マイクラのワールドデータは saves
ディレクトリにあるフォルダになります。
参考: マイクラのセーブデータ保存場所
マイクラサーバの常時起動設定
さて、今の状態では ssh 接続が切れてしまうと、サーバも落ちてしまいます。
これを、いちいち起動せずに常時サーバが立ち上がっている状態にしましょう。
基本的には、公式が載せているコマンドをサーバ上で実行すればいいだけです。
参考資料: Tutorials/Server startup script
起動スクリプト( start_server.sh
) の作成
- minecraft ユーザのみ実行可能
- すでに起動している場合はなにもしない
$ cd /usr/local/minecraft $ vim start_server.sh
#!/bin/bash # Settings SERVICE='minecraft_server.jar' USERNAME='minecraft' SCREENNAME='minecraft' MC_PATH='/usr/local/minecraft' XMX='512M' XMS='512M' ME=`whoami` cd $MC_PATH if [ $ME == $USERNAME ] ; then if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "$SERVICE is already running!" else echo "Starting $SERVICE..." screen -AmdS $SCREENNAME java -Xmx$XMX -Xms$XMS -jar $SERVICE nogui fi else echo "Please run the minecraft user." fi
実行権限の設定もしておきます。
chmod 744 start_server.sh
これで準備完了。
あとは、以下のコマンドを打つことでサーバが常時起動するようになります。
$ /usr/local/minecraft/start_server.sh
ここまで終われば一応設定は完了です!
終了スクリプト( stop_server.sh
) の作成
サーバの落とし方もワンコマンドでできる方が何かと便利なので、終了スクリプトも一応載せておきます。
- minecraft ユーザのみ実行可能
- すでに停止している場合はなにもしない
#!/bin/bash # Settings SERVICE='minecraft_server.jar' USERNAME='minecraft' SCREENNAME='minecraft' MC_PATH='/usr/local/minecraft' ME=`whoami` cd $MC_PATH if [ $ME == $USERNAME ] ; then if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "Stopping $SERVICE" screen -p 0 -S $SCREENNAME -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015' screen -p 0 -S $SCREENNAME -X eval 'stuff \"save-all\"\015' sleep 10 screen -p 0 -S $SCREENNAME -X eval 'stuff "stop"\015' echo "Stopped minecraft server" else echo "$SERVICE was not runnning." fi else echo "Please run the minecraft user." fi
実行権限の設定もしておきます。
chmod 744 start_server.sh
これで準備完了。
あとは、以下のコマンドを打つことでバックグラウンドで動いているサーバを落とすことができます。
$ /usr/local/minecraft/stop_server.sh
長くなってしまったので、とりあえず以上です。 希望があれば、定期的にバックアップをとる方法も追記します。
mod 入りサーバを Linux で建てるのも機会があれば書きます。
それではみなさん、よいマイクラライフを!
SPONSORED LINK