meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

【CentOS 7】Linuxでのマインクラフトのサーバの建て方

 

CentOS 7 でマインクラフト(Minecraft)のサーバを構築してみました。

私の備忘録も兼ねて、記事に書いておこうと思います(^o^)

手順

大きく分けて、やることは9つです。

  1. マインクラフトのサーバ用のアカウントの作成
  2. Javaのインストール
  3. screenのインストール
  4. ポートの開放
  5. マインクラフトサーバのダウンロード
  6. マインクラフトのサーバの設定
  7. マインクラフトのサーバの起動
  8. screenを用いてのバックグラウンドでの起動
  9. マインクラフトのサーバの詳細設定

の9つです。

順に説明していきます。

目次

1. マインクラフトのサーバ用のアカウントの作成

まずは、マインクラフトのサーバ用のアカウントを作成しましょう。

アカウントの作成とパスワードの設定方法

最近は、CentOS 7 について勉強をしています・ω・昨日、sambaを導入してファイルサーバを作成しました(^o^)今日は、ユーザの作成、グループの作成、グループの割り当てについてまとめたいと思います。ユーザを作成する方法ユーザを作成するには、useradd を使用します。$ sudo useradd sample_user$ id sample_useruid=1002(sample_user) gid=1003(sample_user) groups=1003(sample_user)ここでは、sample_userという名前のユーザを作成することにします。3行目のidでユーザが作成されたかどうかを確認しています。作成されていますね...

 

ユーザの作成を行うには、useradd を使用します。ユーザにパスワードを割り当てるには、passwd を使用します。

[meideru@localhost ~]$ sudo useradd meideru-minecraft
[meideru@localhost ~]$ sudo passwd meideru-minecraft
Changing password for user meideru-minecraft.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[meideru@localhost ~]$ cat /etc/passwd
(~~~中略~~~)
meideru-minecraft:x:1003:1004::/home/meideru-minecraft:/bin/bash

 

ユーザが作成できているかどうかはmcat /etc/passwd を使用します。作成できていますね!

2. Javaのインストール

マインクラフトはJavaで開発されています。マインクラフトのサーバも同様です。なので、Javaをインストールする必要があります。

Javaをインストールするには、yum -y install java を使用します。

[meideru@localhost ~]$ sudo yum -y install java
[sudo] password for meideru:
(~~中略~~)
Complete!

 

これでインストールは完了です。

3. screenのインストール

通常、ログアウト(exit)するとアプリケーションは動作し続けますが、再びログインしたときにそのアプリケーションをコントロールすることはできません。

(シェルにはfgとbgというアプリケーションをバックグランドで動作させるコマンドがありますが、このコマンドは、それをできるアプリケーションとできないアプリケーションがあります。マインクラフトのサーバはできません。)

つまり、起動したは良いものの、ログアウトすると、あとはそのアプリケーションを終了することしかできないということです。

これを解決できるのがscreenというアプリケーションです。これを用いると、再びログインしたときにアプリケーションをコントロールすることができます。

 

早速、screenをインストールしてみましょう。

screenをインストールするには、yum -y install screen を使用します。

[meideru@localhost ~]$ sudo yum -y install screen
(~~中略~~)
Complete!

 

これでインストール完了です。

4. ポートの開放

サーバですからパケットの通信が必要です。

パケットを通過させるにはファイアウォールを設定する必要あります。

今日は、CentOS 7 のファイアウォール(Firewall)について説明します。特定のアプリケーションのパケットを通過させる設定まで説明します(^o^)ファイアウォールとはファイアウォールとは、サーバへのパケットの通過を制限させるためのものです。全てのパケットをサーバへ通過させることはセキュリティ上、とてもとても危険なことです。なので、これを用いて悪意のあるパケットを通さないようにします。因みにファイアウォールとは、英語で「防火壁」の意味です。ファイアウォールを確認してみよう早速、自分のサーバ(CentOS 7)のフ...

 

マインクラフトのサーバは通常、25565というポート番号を使用して通信しますので、このポートを開放してやります。

 

ポートを開放するには、firewall-cmd –permanent –add-port=(ポート番号) –zone=(ゾーン名) を使用します。

[meideru@localhost ~]$ sudo firewall-cmd --permanent --add-port=25565/tcp --zone=public
success
[meideru@localhost ~]$ sudo firewall-cmd --reload
success
[meideru@localhost ~]$ firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 25565/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

 

firewall-cmd –reload はファイアウォールの設定を反映するコマンドです。

その下のfirewall-cmd –list-all は、ファイアウォールの設定を確認するコマンドです。portsの横に25565/tcpというのが書いてありますよね?これはこの番号のポートを解放しているという意味です。

5. マインクラフトサーバのダウンロード

マインクラフトのサーバのアプリケーション本体をダウンロードします。

ダウンロードするには、wget を使用します。wget はファイルをダウンロードするコマンドです。

入っていない方はインストールしてください。

wget をインストールするには、yum -y install wget を使用します。

[meideru@localhost ~]$ sudo yum -y install wget
(~~中略~~)
Complete!

 

次に、マインクラフトのサーバのアプリケーション本体をダウンロードします。

wget (URL) を使用します。(URL)にはファイルがダウンロードできるURLを入力してください。

通常はカレントディレクトリにファイルが保存されますので、保存先のディレクトリに移動しておいてください。

この記事では、ホームディレクトリにダウンロードします。

[meideru@local ~]$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.10.2/minecraft_server.1.10.2.jar
[meideru@localhost ~]$ ls
minecraft_server.1.10.2.jar

 

ls を入力した結果、ダウンロードできていることが確認できました。

成功です!

6. マインクラフトのサーバの設定

マインクラフトのサーバを設定する前に、ダウンロードしたファイルの名前を変更しましょう。

mvを使用して名前を変更します。

[meideru@localhost ~]$ mv  minecraft_server.1.10.2.jar minecraft_server.jar
[meideru@localhost ~]$ ls -l
total 9240
-rwxrwxr-- 1 meideru meideru 9459897 Jun 23 21:23 minecraft_server.jar

 

ls で名前が変更できていることを確認してみましょう。できていますね!

 

マインクラフトのサーバを起動してみましょう。結論から言いますが、初回の起動は必ず失敗します。利用規約に同意していないためです。

起動するには、java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui を使用します。

[meideru@localhost ~]$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
[01:37:52] [Server thread/INFO]: Starting minecraft server version 1.10.2
[01:37:52] [Server thread/INFO]: Loading properties
[01:37:52] [Server thread/WARN]: server.properties does not exist
[01:37:52] [Server thread/INFO]: Generating new properties file
[01:37:52] [Server thread/WARN]: Failed to load eula.txt
[01:37:52] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[01:37:52] [Server thread/INFO]: Stopping server
[meideru@localhost ~]$ ls -l
total 9248
-rw-rw-r-- 1 meideru meideru     181 Jul 12 01:37 eula.txt
drwxrwxr-x 2 meideru meideru      23 Jul 12 01:37 logs
-rwxrwx--- 1 meideru meideru 9459897 Jun 23 21:23 minecraft_server.jar
-rw-rw-r-- 1 meideru meideru      59 Jul 12 01:37 server.properties

 

実行すると起動に失敗して、新しく合わせて3つのファイルとディレクトリが作られたと思います。eula.txtとlogsとserver.propertiesの3つです。

eula.txtの記述を書き換えます。具体的には、eula=false となっているところをeula=true に書き換えてください。

これで、利用規約に同意したことになります。

7. マインクラフトのサーバの起動

もう一度起動してみましょう。

[meideru@localhost ~]$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
[01:46:07] [Server thread/INFO]: Starting minecraft server version 1.10.2
[01:46:07] [Server thread/INFO]: Loading properties
[01:46:07] [Server thread/INFO]: Default game type: SURVIVAL
(~~中略~~)
[01:46:22] [Server thread/INFO]: Preparing spawn area: 89%
[01:46:23] [Server thread/INFO]: Preparing spawn area: 98%
[01:46:23] [Server thread/INFO]: Done (14.887s)! For help, type "help" or "?"

 

これで無事起動できました!

マインクラフトを起動して、マルチプレイでサーバのIPアドレスを入力してみてください。接続できるはずです!

サーバを停止するには、stopと入力してenterを押します。

基本的なことは、これで全て終了です。

8. screenを用いてのバックグラウンドでの起動

起動してみてわかったと思うのですが、マインクラフトのサーバの画面だけが表示されていて他の作業が何もできません。

マインクラフトのサーバをバックグラウンドで実行する必要があるのです。

そのためには、3でインストールしたscreen を使用します。

以下ではザックリとscreenの使い方を説明しますので、しっかりと使い方を理解したい方は「関連記事」を見てください。

今日は、screen というアプリケーションの使い方を説明しようと思います(^o^)screen は使い方がわかると、とても便利です。screenとは?screen とは、1つの端末内に複数の端末を仮想的に起動することのできるアプリケーションです。1つの端末で複数のウィンドウを作成できるのでscreenと呼ばれています。また、ユーザがログアウトしても、閉じていなければ仮想的な端末(ウィンドウ)は維持されます。消えないのです。つまり、次回ログインしたときにも、先の仮想的な端末(ウィンドウ)にもアクセスすることができます。具体的な使...

 

まず、screenを起動します。シェルでscreen と入力して起動します。

[meideru@localhost ~]$ screen

 

screen を起動すると、新しく画面が生成されると思います。

 

新しく生成された画面で、マインクラフトのサーバを起動してください。

[meideru@localhost ~]$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
[02:21:29] [Server thread/INFO]: Starting minecraft server version 1.10.2
(~~中略~~)
[02:21:32] [Server thread/INFO]: Done (2.544s)! For help, type "help" or "?"

 

マインクラフトのサーバを起動している状態で、Ctrl + A を押してから D を押してください。すると、元の画面に戻ると思います。これをデタッチと言います。

この状態でログアウトしてもマインクラフトのサーバは動作し続けています。

 

試しにログアウトしてみましょう。

ログアウトしてから、もう一度、ログインしてみましょう。

ログインしてから、screen -ls とコマンドを打ってみてください。すると、起動している画面の一覧が表示されます。

[meideru@localhost ~]$ screen -ls
There is a screen on:
        5452.pts-0.tk2-250-34620        (Detached)
1 Socket in /var/run/screen/S-meideru.

 

5452というのはPID番号です。

これがデタッチ(Detached)されていることがわかりますね。

この画面は、マインクラフトのサーバを起動している画面です。

この画面に戻るには、screen -r (PID番号)を使用します。

[meideru@localhost ~]$ screen -r 5452

 

すると、マインクラフトのサーバの画面に戻っているはずです!

これで完璧です!

 

とてもザックリとした説明になってしまいました^^;

screenの使い方について詳しく知りたい方は、関連記事をご覧ください。

ザックリとscreenの使い方を説明しますので、しっかりと使い方を理解したい方は「関連記事」を見てください。

今日は、screen というアプリケーションの使い方を説明しようと思います(^o^)screen は使い方がわかると、とても便利です。screenとは?screen とは、1つの端末内に複数の端末を仮想的に起動することのできるアプリケーションです。1つの端末で複数のウィンドウを作成できるのでscreenと呼ばれています。また、ユーザがログアウトしても、閉じていなければ仮想的な端末(ウィンドウ)は維持されます。消えないのです。つまり、次回ログインしたときにも、先の仮想的な端末(ウィンドウ)にもアクセスすることができます。具体的な使...

9. マインクラフトのサーバの設定

1~8までの作業で、マインクラフトのサーバは運用できます。

しかし、今後、色々と詳細に設定しなければならない機会が出てくると思います。なので、紹介しておきます。

設定を行うには、server.properties を編集します。

例えば、初期の状態では内容は以下のようになっています。

[meideru@localhost ~]$ cat server.properties
#Minecraft server properties
#Tue Jul 12 02:24:38 JST 2016
max-tick-time=60000
generator-settings=
force-gamemode=false
allow-nether=true
gamemode=0
enable-query=false
player-idle-timeout=0
difficulty=1
spawn-monsters=true
op-permission-level=4
announce-player-achievements=true
pvp=true
snooper-enabled=true
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
use-native-transport=true
motd=A Minecraft Server
enable-rcon=false

 

これをいじって設定を変更します。

各項目についてはググってみてください(無責任ですがw)

 

以上です!

ノシ

 - ガジェット