【CentOS 7】ConoHaVPSでMinecraftマルチサーバーを構築する手順

# はじめに
[ConoHaVPS](https://www.conoha.jp/vps/)を利用してMinecraftのサーバーを構築したい人向けの解説です。
バニラで1.12.2~最新版を遊ぶ分にはテンプレートが用意されていますが、それ以前のバージョンを遊びたい場合、Modやリソースパックを導入したい場合はVPSを利用すると制約がなく便利です。
CentOSなどを触ったこと方でもできるようにかなり丁寧に記述するため、わかっている方には冗長かもしれませんが適宜読み飛ばしてください。

# サーバー構築の初期設定
さっそくですがサーバーを構築していきます。
[ConoHaのサイト](https://www.conoha.jp/?btn_id=campaign-limitedoffer--header_top)からアカウントを作成、ログインしたらコントロールパネルにアクセスします。
サーバー追加をクリックしたら、サービスはVPS、メモリはサーバーの規模に応じて選択してください。VPS割引きっぷは数カ月分まとめて払うと安くなるよー、みたいな感じですが主旨とは外れるため詳しくは公式サイトの解説を見てください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981787/9b0240a1-cdce-1700-3213-94b9372233e5.png)
続いてイメージタイプはCentOS、バージョンは7.9を選択します。
rootパスワードは任意で設定してください。

:::note warn
注意
rootパスワードは忘れるとかなりまずいので、絶対に忘れないようにしてください。
:::

ネームタグは特に関係ないので任意で設定してください。
オプションの自動バックアップは使いたければ有効にしましょう。
それ以外の項目はそのままにして、料金を確認したら追加をクリックします。
1分程度でサーバーができるため、できたらネームタグをクリックしサーバーの設定を行うためコンソールを開いてください。

# ユーザー設定
コンソールを開くとログインを要求されるため、ユーザー名をroot、パスワードはrootパスワードのところで設定したものを入力します。
パスワード入力を始めても画面が特に変わっていないように見えますが、ちゃんと入力されているので安心してください。

rootユーザーでサーバーを動かすのはセキュリティ的によろしくないのでユーザーを新しく作成します。
ユーザー名は仮にmcuserとしますが、なんでもいいので任意の名前を設定してください。
`useradd mcuser`と入力し送信します。
続いてパスワードを設定するため、`passwd mcuser`と送信します。
これによりパスワードの入力を2回求められるため入力します。

# SSH設定
このままではrootユーザーのパスワードが割れた際にサーバー全部乗っ取られかねない上に攻撃を受けたりがあるので諸々の設定をします。
よくわからない方はとりあえずそのまま打っておけば大丈夫です。
コピペをしたい場合はコンソール画面上部のテキスト送信を押してそこにペースト、送信でできます。

まずは設定ファイルのバックアップを行います。
`cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_yyyymmdd`
yyyymmddは日付を入力しておきましょう。

続いて編集します。`vi /etc/ssh/sshd_config`で編集画面に入ります。
なにやらテキストエディタのような画面になったら、iを押して画面下部に[INSERT]と出てくることを確認してください。この状態になると編集できます。
編集可能になったらPermitRootLogin yesをPermitRootLogin noに書き換えます。

また、ポート番号がデフォルトでは22になっていますが、このポートは攻撃を受けやすいため変更します。
Port 22の22の部分を使用されている0~1023以外の任意の数(今回は12678)に変更します。
書き換えたらescキーを押し、:wqを入力し確定します。これで上書き保存完了です。

以上の設定が完了したら再起動します。
`systemctl restart sshd`を送信します。

# ファイアウォール設定
ファイアウォールにより使用したいポートが許可されていないため、設定を変更します。
上で設定したポートで通信できるように`firewall-cmd --permanent --add-port=12678/tcp`を送信します。12678の部分は自分で設定したものに読み替えてください。

デフォルトで開いているsshのポートは不要なため閉じます。
`firewall-cmd --permanent --remove-service=ssh`を送信します。

続いてMinecraftサーバーで使用する25565ポートを開放します。
`firewall-cmd --permanent --add-port=25565/tcp`

`firewall-cmd --reload`で上記の設定を反映させます。

設定が反映されているかの確認を行います。
`firewall-cmd --list-all`
servicesの欄にsshがないこと、portsの部分に設定したポート(この記事では12678)とMinecraftのポート25565があることを確認してください。

これで問題なければ以下のコマンドでパッケージを最新の状態にしておきます。
`yum -y update`
続いてサーバーを再起動します。
`reboot`

# Minecraftサーバーインストールの準備
再起動したらrootユーザーで再度ログインします。
Minecraftを動作させるためにはjavaが必須なためまずはjavaをインストールします。
`yum -y install java`
Minecraft1.17以降を遊びたい方はjava16以降が必要なためそちらのバージョンをインストールしてください。(後日記事を書きます)

続いてマルチサーバー用のディレクトリ(フォルダ)を作成します。
`mkdir /opt/minecraft`
インストールするディレクトリはどこでもいいのでわかる方は自由に変えていただいて構いません。この記事では/opt/minecraftを利用します。
続いてこのディレクトリの所有者を変更します。
`chown mcuser:mcuser /opt/minecraft/`
mcuserの部分とディレクトリは各自の環境に応じて適宜読み替えてください。

ここからはminecraftの動作用に作ったユーザーで作業を行うため、`exit`でログアウトし、mcuser、パスワードを入力しログインし直してください。


# Minecraftサーバーのインストール
長々設定してきましたがとうとうMinecraftサーバーのインストールに入ります。
`cd /opt/minecraft`でディレクトリを移動します。cdコマンドでディレクトリの移動ができるので覚えておきましょう。
`cd ../`で一つ上に移動できるのも便利なので覚えておいてください。

今後マルチ用のワールドを複数作る可能性もあるため、minecraft以下にもう一つディレクトリを作成します。`mkdir 任意のフォルダ名` `cd 設定したフォルダ名`
今後ワールドを増やすときは同様にディレクトリを作成しましょう。

インストールしたいディレクトリに移動したら、wgetコマンドでサーバーのjarファイルをダウンロードします。最新版であれば[こちら](https://www.minecraft.net/ja-jp/download/server)のリンクからDownload minecraft_serverx.x.x.jarの部分を右クリック、リンクのアドレスをコピーします。
過去のバージョンは[MCVersions](https://mcversions.net/)からダウンロードします。

`wget ダウンロードリンク`を送信すると、ダウンロードが開始されます。
完了したら`ls`を送信しserver.jarがあることを確認します(バージョンによっては名前が異なる可能性があります)

`java -Xms1024M -Xmx1024M -jar server.jar nogui`を送信します。
初回起動時はなにやらエラーが出てStopping serverが出ますが、EULA(使用許諾契約)に同意していないためです。再度`ls`を送信するとeula.txtなどいろいろなファイルができていると思います。

EULAに同意する必要があるため、`vi eula.txt`で編集します。
iを押して編集可能な状態にし、eula=falseをeula=trueに書き換え、escキーを押して:wq、エンターで保存します。

保存できたら再度サーバーを起動します。
`java -Xms1024M -Xmx1024M -jar server.jar nogui`
1024Mの部分は契約しているメモリによって変更してください。

ただ、サーバーのメモリすべてを割り当ててしまうとOSが使用する分がなくなってしまうため、OSが使用する分のメモリは残るようにしてください。
また、Xms、Xmxの数値は同じにしてください。

[Server thread/INFO]: Done (x.xxxs)! For help, type "help" or "?"
という表示があれば問題なくサーバーが起動できています。
ConoHaのサーバー管理画面に書かれているIPアドレスをMinecraftのマルチプレイのサーバーアドレスに入力し、ワールドに入れることを確認してください。

今後はサーバーを起動したいときに`java -Xms....M -Xmx....M -jar server.jar nogui`、終了時にstopを送信することで終了できます。

# その他設定
以上で基本的なサーバーの設定は完了です。
このあとは各自の行いたいことによってやることが変わります。
Modを導入したい場合はForge等のサーバーを立てる必要があるため、別の記事を参照してください。(執筆中)

配布ワールドやシングル環境で遊んでいたワールドを導入したい場合はwgetでworldフォルダに中身をダウンロードするか、Cyberduck等でSFTP接続し、ワールドデータをアップロードしてください。
サーバープロパティの設定が必要であれば`vi server.properties`で編集を行うことができます。

サーバーのメモリが不足しているように感じたら一度サーバーを停止し、サーバー管理画面からプラン変更を行うことで簡単にメモリを増やすこともできます。

# おわりに
おつかれさまでした。かなり長い記事になってしまいましたが、触ったことがない方でもわかりやすい記事になるよう心がけたつもりです。
分からない点、間違いがあればなんなりとご指摘ください。
良きマイクラライフを！