【完全版】Minecraftサーバーの構築

:::note info
2025/04/19 記事の更新を行いました
:::

# はじめに

筆者が運営するMinecraftサーバーが運営開始から4年を迎えたということで、この4年間で得られた経験を元にMinecraft Java Editionにおけるマルチプレイサーバーの構築方法から管理・運用方法まで余すところなく書いていく。

# 1. 環境編

まずはじめにMinecraftサーバーを動かすための環境について確認しよう。

## 1-1. 専用のサーバー機は必要か

Minecraftサーバーを走らせるためだけの専用PC(サーバー機)が必要かどうかは運営方法によって異なる。例えば、サーバーを24時間常時解放したい場合や、多くのプレイヤーと遊ぶ(将来的に大型サーバーを目指す)のであればMinecraftサーバーを動かすためだけのサーバー機を用意する必要があるが、友人と遊ぶ時だけ解放したい場合やプライベートで使う分には、普段自分が使っているPCをサーバーとしても問題ない。ただし、普段使用しているPCがノートである場合には注意が必要である。

## 1-2. ノートPCは危険

ノートPCをサーバーとして24時間稼働させることは発火リスクを考慮して避けるべきである。そもそもノートPCはサーバーとして連続的に動作させることを前提として設計されていないため、長時間の稼働にはそれなりの負荷がかかり、バッテリーの劣化を早めたり、PC自体の寿命を縮めることにもなる。もしノートPCしか持っておらずMinecraftサーバーを構築したいのであれば、専用のサーバー機を用意する必要があると言える。

## 1-3. VPSの利用

専用のサーバー機を使う1つの手段として、VPS(バーチャル・プライベート・サーバー)といったサーバー機を定額でレンタルできるサービスが存在する。VPSは、企業のデータセンターにサーバー本体が設置されており、それを別の場所から遠隔操作することで自分でそこにMinecraftサーバーを構築するといったものだ。VPSを利用することのメリットとデメリットを以下にまとめた。

#### ■ VPSのメリット
- 安定性が高い
- 自宅にサーバー機を設置する必要がない
- 電気代の心配がいらない
- 故障時のメンテナンスを自分で行う必要がない

#### ■ VPSのデメリット
- CPUやメモリ/回線などのリソースが他の利用者と共用である場合が多く、ラグが発生する
- DoS攻撃を受けた場合にサービスが停止する
- 性能の割に料金が高い (コスパ悪い)

筆者は2年間Minecraftサーバーを2社のVPSで運用してきたが、デメリットの多さから最終的に自宅サーバーへと切り替えた。接続人数の増加に伴って性能が不足したことと、性能に対するコスパの悪さが原因である。
VPSの中にはサーバーの起動時間に応じて課金されていくものや、DoS攻撃を受けた場合に多額の請求が来るサービスも存在するので注意したい。

とはいっても、初めてMinecraftサーバーを運用する人にはVPSをお勧めしたい。1ヶ月単位でレンタルできるから、挫折した場合でもすぐにやめられるのと、電気代を気にせずに24時間稼働できるからである。ただ、長く運営を続けていくにあたっては将来的に性能不足になり、上位プランにアップグレードした場合に運用コストが割高になることを意識しておいてほしい。

## 1-4. 自宅サーバー

その名の通り、自身でサーバー本体を購入し、自宅にサーバー機本体を設置して運営を行う方法である。自宅サーバーのメリットとデメリットも以下にまとめた。

#### ■ 自宅サーバーのメリット
- ハードウェア、ソフトウェア、ネットワーク関連においてかなり勉強になる
- サーバーのパーツを予算と用途に合わせて選んで自作できる
- (構成によるが)VPSに比べてコスパが良い

#### ■ 自宅サーバーのデメリット
- 初期投資が多額
- 運用するための知識が必要
- 電気代は自己負担
- パーツ故障時のメンテナンスを自分で行う必要がある
- サーバーの監視やセキュリティ対策を自分で行う必要がある

自宅サーバーを用意する場合は多額の初期投資とそれなりの覚悟が必要なので、初めてMinecraftサーバーを運用する人にはオススメしない。また、自宅サーバーでMinecraftサーバーを運用する場合は、有線接続の光回線でないとほとんど快適に運用できないので注意。

## 1-5. 必要最低限の性能

ゲームサーバーを運用する以上、サーバーにはそれなりの性能が問われる。サーバーの性能が足りないと、プレイヤーはまともに遊ぶことすらできない。ラグいサーバーに人は集まらないので、まずは快適にプレイできる必要最低限の環境を用意しよう。
VPSを利用する場合であっても、一番安いプランでは快適にMinecraftサーバーを運用できない場合がほとんどなので、以下に挙げる各パーツの必要最低限の性能と比較しながらプランを選択すると良いだろう。

#### CPU
- 【最低】2コア
- 【推奨】4コア以上

クロック数は3.0GHz以上あればまず問題ない

#### GPU

サーバーなので最低限画面出力できればよい

RAM

- 【最低】2GB
- 【推奨】4GB以上

基本的に、以下の表に示したメモリの容量を満たしていれば十二分である。
ただし、表のメモリ容量を完全に満たしていなくても快適であることが多い。
例えば、筆者のサーバーでは、プラグインもりもりのSpigotサーバーで4GBのメモリ割り当てに対して20人が同時接続しても十分快適に動作した。

接続人数メモリ容量目安~5人2GB6~10人4GB11~20人8GB21~40人16GB41~80人32GB81~160人64GB

Minecraftサーバーにおいて最も重要なパーツであり、メモリの容量こそが快適さを左右する。
プラグインの数やワールドの規模によっても必要なメモリの容量は変動するので、多めに構成しておいて損はない。

#### ストレージ

- 【最低】SSD 50GB (OS起動&データ保存用) / HDD 50GB (バックアップ用)
- 【推奨】SSD 128GB以上 / HDD 512GB以上

#### 回線

- 【最低】100Mbps
- 【推奨】1Gbps以上

自宅サーバーの場合は有線接続の光回線が望ましい。
VPSの場合は共用100Mbps回線である場合が多く、利用者が増える夜間など時間帯によってはラグが発生するので注意。

#### OS
- Ubuntu Server

筆者おすすめのOSはUbuntu。友人同士や身内限定サーバーなどの用途で、接続数が20以下であればWindows上で運用しても問題ない。

#### Windowsと接続数
「お客様は、ライセンスを取得したデバイスでファイルサービス、印刷サービス、インターネットインフォメーションサービス、インターネット接続の共有およびテレフォニーサービスを利用することを目的として、ライセンスを取得したデバイスにインストールされた本ソフトウェアに対し、最大 20 台の他のデバイスからの接続を許可することができます。お客様は、任意の数のデバイスに、デバイス間でデータを同期するために、ライセンスを取得したデバイス上の本ソフトウェアにアクセスすることを許可することができます。」
とあるように、Windows上にMinecraftサーバーを立てる場合はMicrosoftの規約上、接続数が20以下でなければならないという制約がある。

参考: https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/Useterms_Retail_Windows_10_Japanese.htm

# 2. 構築編

さて、Minecraftサーバーの構築に入る。ここでは、Ubuntuでの構築方法を解説する。
Windowsでのbatファイルを用いたサーバー構築の手順はここでは省略する。

## 2-1. サーバー向けMinecraft本体のダウンロード

まずはサーバーに配置する用のJarファイルをダウンロードする。公式バージョンとBukkitやSpigotなどの改造が施されたバージョンが存在するが、本記事ではSpigotを使用してサーバーを構築する。独自に用意したソフトウェアがあれば、そちらを使用しても構わない。

公式バージョンと改造バージョンの違いはプラグインが導入可能かどうかの違いである。当然、プラグインが使えた方が荒らし対策などが行えるため、改造バージョンの使用を推奨する。

以下のソフトウェアのうち、お好みのものを1つダウンロードしよう。（特に理由がなければSpigotを選択することをお勧めする）

- Spigot
- Bukkit
- PaperMC
- GlowstoneMC

## 2-2. FTPソフトのダウンロード
ここではFileZillaと呼ばれるFTPソフトを使用する。FTPソフトとは、サーバーと作業PC間でファイルの送受信をするためのソフトだ。ここではMinecraftに関するファイルをサーバーに転送するために使用する。FTPソフトは他にもWinSCPなどが存在するので、自身で用意したFTPソフトを使用しても構わない。

※自身の作業用PCでサーバーを構築する場合はFTPによるファイル転送操作は必要ない


## 2-3. ファイルの転送

今回の構築作業ではUbuntuの作業用に新たなユーザー「user」を作成して行う。/home/userにMinecraftサーバー専用のディレクトリを作成する。

```shell
$ sudo mkdir /home/user/minecraft
```

「minecraft」を作成し移動したら、先ほどダウンロードしたJarファイルを/home/user/minecraftにアップロードする。これでFTPによる作業は一旦終了。

## 2-4. サーバーにソフトをインストール

今度はサーバーにSSHを使用して接続する。作業PCのOSがWindowsであればTeraTermという専用ソフト、macOSであれば最初からインストールされているターミナルを使用してアクセスすることが可能。先ほどはFTPでサーバーに接続してファイルをいじったが、今度はSSHでサーバーに接続してコマンドで操作していく。

TeraTermもしくはターミナルの画面を開いたら、次のコマンドを順番にコピペして使用。

ここではrootユーザーで作業を行う例を示す。もし、自身でMinecraft専用のユーザーを作った場合にはそちらのユーザーでログインを行う。

```shell
% ssh -l root [IPアドレス]
```

or

```shell
% ssh -l [ユーザー名] [IPアドレス]
```

## 2-5. Screenのインストール

Screenをインストールする。
ScreenはMinecraftをバックグラウンドで24時間動かす役割を担う。

```shell
$ sudo apt -y install screen
```

## 2-6. Javaのインストール

次にサーバーにJavaをインストール。これがないとJarファイルをサーバーで実行することができない。

もしMinecraftのバージョンが1.16.5以下であればJava8を、1.17であればJava16をサーバーにインストールする必要がある。1.18からはJava17が動作要件となった。

1.16.5以前

```shell
$ sudo apt -y install java-1.8.0-openjdk
```

1.17

```shell
$ sudo apt -y install openjdk-16-jdk
```

1.18以降

```shell
$ sudo apt -y install openjdk-17-jdk
```

## 2-7. ファイアウォール設定

サーバーにSSHで接続した状態で作業する。ここでは、Minecraftでサーバーを公開するために必要なポート解放の作業を行う。

Minecraftで通信を行う際に必要なポート25565番を解放する。

```shell
$ sudo ufw allow 25565
```
　
設定を再読み込みで反映させる

```shell
$ sudo ufw reload
```

自宅サーバーの場合はルーターのポート開放も必要。http://192.168.0.1 などからルーターの設定画面に入り、各種ポート設定で25565をTCPで開放する。ルーターにおけるポート開放の手順はメーカーやプロバイダごとに若干異なるため、各自調べてほしい。

主に自宅サーバーを構築する場合にポート解放で挫折する人が多いが、考え方はいたってシンプルである。わかりやすいように上のような図を用意した。OS側だけ、もしくはルーターだけポート解放を行っている場合は、例2,3のようにクライアント（プレイヤー）からサーバーまでの通信の途中経路が遮断されることになる。１箇所でも途中の経路が遮断されていた時点でサーバーには接続できなくなるので、例2,3ではサーバーと通信できず、正常にポート解放ができていないことになる。したがって、例1が示すように、全ての経路でポートを解放することを目指せば良い。

図に示した経路はあくまでも一例であり、回線のプロバイダによってはクライアントとルーターの間にONUが入ってきたり、PCにウイルス対策ソフトが入っている場合はそれが経路を遮断する要因となり得ることにも注意したい。

プロバイダやルーターのメーカーによって若干の手順の違いはあるものの、最終的に例1の状態を目指すことに変わりはない。

## 2-8. 初回起動

サーバー版Minecraft本体のJarファイルを配置したディレクトリに移動する。

```shell
$ cd /home/user/minecraft/
```

Minecraftを起動。以下のコマンドはファイル名が「spigot.jar」になっている。ここは各自Jarファイルの名前に置き換えてほしい。

```shell
$ java -Xmx1024M -Xms1024M -jar spigot.jar
```

しばらく待つと、初回起動が終了する。初回起動時には /home/user/Minecraft に各種ファイルが生成される。

ここで、利用規約に同意しなければならないため、生成されたファイルの中からeula.txtを見つけ出し、適当な箇所を変更する必要がある。

```shell
$ sudo　vi　/home/user/minecraft/eula.txt
```

コマンドを実行するとeula.txtの中身が表示されるので「Aキー」で編集モードに変更し、「↓」キーで一番下まで移動。

```
eula=false
```
となっているところを

```
eula=true
```

に変更し、「escキー」で編集モードを終了。「:wq」を入力し、保存して終了する。これで必要箇所の書き換えは完了。

もし間違った箇所を書き換えてしまい、取り返しがつかなくなった場合には「:q!」で保存せずに終了することができる。

## 2-9. 起動

Screenを起動させる。

```shell
$ screen
```

以下がMinecraftの起動コマンドであるが、以下のコマンドでは2GB（2048MB)のメモリが割り当てられている。メモリの割り当て量を変更する場合は、起動時にこの数値を変更すると良い。MB単位で設定する場合は1024の倍数を使用。
「Xmx」と「Xms」の値を同じ数値に設定することでメモリへの負荷を軽減することができる。

```shell
$ java -Xmx2048M -Xms2048M -jar spigot.jar
```

## 2-10. クライアントからログイン

クライアント版のMinecraftを用意し、「マルチプレイ」からサーバーを追加する。「サーバーアドレス」にはサーバーのIPアドレスもしくはドメインを入れる。

サーバーにドメインを割り当てていない場合は、「グローバルIPアドレス:25565」と入力する。:25565を忘れるとサーバーと通信できない。

もし普段の作業PCでサーバーを立てた場合など、サーバーとクライアントが同じPC上に存在する場合はサーバーアドレスはlocalhostで接続することができる。

## 2-11. 権限の付与

初期状態ではプレイヤーは誰も権限を持っていないので、コンソールから`/op [MinecraftID]`を実行し、自分に権限を付与する。

## 2-12. サーバーの停止

サーバーの停止を行う場合はMinecraft内から/stopコマンドで停止することができる。
基本的にScreen上で動いているため、コンソールを閉じても停止することはない。

一度、/stopと実行し、サーバーを停止させる。

なお、これ以外の方法でサーバーを停止すると、ワールドセーブデータ破損などの危険が伴う。

# 3. プラグイン編

Minecraftサーバーを運用する上で欠かせないのが「プラグイン」の存在だ。荒らし対策やサーバーの独自性を確立するにはプラグインのインストールが必須となる。

## 3-1. プラグインの導入方法

プラグインのインストールは`/home/user/minecraft/plugins`に行う。初回起動の際に/pluginsディレクトリが生成されているはずである。

「2. 構築編」で述べた、Spigotなどの改造バージョンを利用しないとプラグインの導入が行えないので注意。公式バージョンではそもそも/pluginsディレクトリが生成されない仕様。

## 3-2. プラグインのダウンロード

ここにはサーバーに導入するべきプラグインをまとめた。ダウンロードしたら、先程のディレクトリにダウンロードしたJarファイルを入れればインストールは完了。サーバーを再起動するか、/reloadコマンドを実行して、プラグインをサーバーに読み込ませる。

#### World Edit

建築系プラグイン。大規模なブロックの操作はもちろん、球体などのオブジェクトを生成することができる。建築物のコピー、回転にも対応しており、多くのサーバーで導入されている。

#### Core Protect

荒らし対策プラグイン。荒らされた場合に、荒らしを行ったプレイヤーの行動を巻き戻すことによって荒らされる前の状態を復元することができるプラグイン。

#### World Guard

ロビーや立ち入り禁止エリアなどの保護を担うプラグイン。エリアごとにプレイヤーの行動を制限することも可能。荒らし対策全般を行うことができる。

#### Multiverse Core

複数のワールドを管理するプラグイン。デフォルトでは1つのサーバーで1つのワールドしか管理できないが、このプラグインを利用することで複数のワールドを管理することができ、移動することができるようになる。


#### LuckPerms

権限系プラグイン。オペレーター権限を持っていないプレイヤーに対しての権限を管理することができる。権限の管理は荒らし対策において最重要。Webサイト上で権限グループを設定することができる優れもの。


## 3-3. プラグインの注意点

プラグインを導入する際の注意点を以下にまとめた。

- 複数のプラグインを導入することによって競合などによってプラグイン同士の相性による問題が発生することがある
- 悪意のある開発者が作ったプラグインを導入することで、サーバーをハッキングされる場合がある
- 無闇に信頼できない開発者のプラグインを導入しない
- プレイヤーにプラグインの導入を頼まれても安全性を確認できない場合は応じてはいけない
- 他の開発者が作ったプラグインは開発がいつ止まるか分からない

# 4. 運用編

Minecraftサーバーをより効率的に運用するため、ここでは再起動やバックアップの全自動化を行う。

## 4-1. Screenに名前をつける

Screenに名前をつけておくと、セッションが切れた後も容易に再接続することが可能になる。

```shell
$ screen -S [名前]
```

「MC」という名前のScreenを立ち上げるには

```shell
$ screen -S MC
```

と実行すればよい。ここでMinecraftサーバーを起動させれば、「MC」という名前のScreen上でMinecraftサーバーを運用することができる。
ここで「Controlキー」+「Aキー」+「Dキー」を同時に押せば、Screenからデタッチすることができる。

再度このMCにアタッチするには

```shell
$ screen -r MC
```

を実行すればよい。これを使えば複数のScreenを使って違うディレクトリにあるjarファイルをそれぞれのScreen上で実行することによって、1つのサーバー上で複数のMinecraftサーバーを運用することができるようになる。

デタッチし忘れたScreenに入りたい場合は引数に-xを追記しよう。

```shell
$ screen -rx MC
```

## 4-2. 起動用スクリプト

サーバーの起動時に毎回java -Xmx1024M -Xms1024M -jar spigot.jarを実行するのはとても手間がかかるので、スクリプトを作成して起動手順を簡略化しよう。

作業用PCのテキストエディットなどで次のシェルスクリプトを作成する。
```shell
# ------------設定箇所---------------
# 再起動までの待機時間(秒)
MEM=<割り当てるメモリの量>

# jarファイルの名前
JAR=<jarファイルの名前>
# ---------------------------------

java -${MEM} -${MEM} -jar ${JAR} nogui
```
「設定箇所」の< >で囲まれた項目は自分の環境に合わせて書き換えて使用する。

設定例
```shell
# ------------設定箇所---------------
# 再起動までの待機時間(秒)
MEM=1024M

# jarファイルの名前
JAR=spigot.jar
# ---------------------------------
```
作成したら、これをサーバー本体のjarファイルと同じディレクトリにアップロードする。

これで、次回以降、手動でサーバーを起動する際に入力しなければならないコマンドは次の2つになった。

```shell
$ cd /home/user/minecraft
```

```shell
$ sudo ./start.sh
```

## 4-3. 自動再起動の実装

長期間動かし続けることは鯖落ちにつながるので、特にプラグインを導入しているのであれば1日1回程度の再起動は必須と言っていいだろう。

Cronをインストール。

```shell
$ sudo apt -y install cron
```

Cronは指定した時間にスクリプトを実行してくれるもの。
次に、作業用PCで再起動用シェルスクリプトを作成する。

```shell:restart.sh
#!/bin/bash

# ------------設定箇所---------------
# 再起動までの待機時間(秒)
WAIT=30

# screenの名前
SCREEN_NAME=<screenの名前>

# メモリの割り当て量（例: 1024M）
MEM=<割り当てるメモリの量>

# サーバーJarのあるディレクトリ
DIR=<Jarファイルの存在するディレクトリ>

# サーバーJarの場所
JAR=<Jarファイルのパス>
# ---------------------------------

screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say ${WAIT}秒後にサーバーを再起動します\015"'

sleep $WAIT

screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "stop\015"'

sleep 20

screen -S ${SCREEN_NAME} -dm bash -c "cd ${DIR}; exec java -Xms${MEM} -Xmx${MEM} -jar ${JAR} nogui"
```

次に、/home/user/minecraft/内に新たに/scriptディレクトリを作る。
この/home/user/minecraft/scriptに先ほど作成したrestart.shを入れておく。

続いてCronの設定を行う

```shell
$ crontab -e
```

一番下に、0 4 * * * cd /home/user/minecraft/script: ./restart.shを追加。

cron設定
```shell
#
#
#
#
#
:
# m h  dom mon dow   command

0 4 * * * cd /home/user/minecraft/script: ./restart.sh
```
ここでは、毎朝4:00に`/home/user/minecraft/script/restart.sh`を実行するという設定を行った。

例えば、毎日21:30にスクリプトを実行したい場合は`30 21 * * *`とする。

```shell
$ sudo service crontab restart
```

設定が終わったらCronを再起動して設定を反映させる。これで自動再起動が行われるようになった。

## 4-4. 自動バックアップの実装

Minecraftサーバーを運用するにあたって、サーバーのバックアップは必須。バックアップを怠るとサーバーが急停止した場合などにワールドの破損が起こり、取り返しのつかないことになる。データを過失によってリセットするということはプレイヤーの信頼を失うことにつながるので要注意したい。

まずは`/home/user/minecraft/backups`を作っておく。

次に、作業用PCでシェルスクリプトを記述する。

```shell:backup.sh
#!/bin/bash

# バックアップ先のディレクトリを確認して、存在しない場合は作成
BACKUP_DIR="/home/user/minecraft/backups"
[ ! -d "$BACKUP_DIR" ] && mkdir -p "$BACKUP_DIR"

# Minecraftディレクトリのバックアップを作成
cp -r /home/user/minecraft $BACKUP_DIR

# 日付付きでzipに圧縮
DATE=$(date "+%Y%m%d_%H%M")
zip -r "$BACKUP_DIR/minecraft-${DATE}.zip" "$BACKUP_DIR/minecraft"

# 圧縮後の元ディレクトリを削除
rm -rf "$BACKUP_DIR/minecraft"
```

本記事の通りにサーバーを構築している場合はこのシェルスクリプトをそのまま使っても問題ないが、ディレクトリ名や構造が異なる場合には各自の環境に合わせて書き換えてほしい。

こちらのスクリプトを`/home/user/minecraft/script/`に入れ、自動再起動スクリプトと同様に、Cronに登録する。

一番下に、`30 4 * * * cd /home/user/minecraft/script: ./backup.sh`を追加。

```shell:cron設定
#
#
#
#
#
:
# m h  dom mon dow   command

0 4 * * * cd /home/user/minecraft/script: ./restart.sh
30 4 * * * cd /home/user/minecraft/script: ./backup.sh
```

再起動と重なると不具合が起こる可能性があるため、30分ずらしてバックアップを行う。

```shell
$ sudo service crontab restart
```

設定が終わったらCronを再起動して設定を反映。

# 5. BungeeCord編

Minecraftサーバーを複数に分散させたい場合はBungeeCordというソフトを使用する。
主にPVPサーバーや生活サーバー、ロビーサーバーなどを別々のサーバー機で運用したい場合に使う。

## 5-1. サーバーの構築

BungeeCordはポート25565で開くため、それぞれのMinecraftサーバーには別のポートを割り当てておく。ここからは、既にMinecraftサーバーがそれぞれ別のポートで2つ以上構築されていることを前提として解説を進めていく。
それぞれのサーバーを「Server1」「Server2」として構築し、「Server1」をメインサーバーとする。

サーバーで使用するポートはserver.propertiesのserver-port:で変更可能


## 5-2. BungeeCordのダウンロード

まずはBungeeCord本体をダウンロードする。


## 5-3. 専用ディレクトリの作成

BungeeCordを動かすための専用ディレクトリを作る。
ここでは/home/user/BungeeCordとしておく。

ここに先ほどダウンロードしたJarファイルを入れておく。

## 5-4. BungeeCordの起動

BungeeCordは、以下のコマンドで起動することができる。

```shell
$ java -Xmx512M -Xms512M -jar BungeeCord.jar
```

初回起動後、必要なファイルが/home/user/BungeeCordに生成される。

## 5-5. BungeeCord側の設定

自分のMCIDに権限を付与する必要がある。ディレクトリに生成されたファイルの中から、config.ymlを探し、`groups:のmd_5`を自身のMCIDに変更する。以下はNether2046に権限を渡す場合の例。

```shell:config.yml
groups:
  Nether2046:
  - admin
```

次にBungeeCordが認識するサーバーを設定する。
127.0.0.1はlocalhostと同じ。もし別々のサーバー機でサーバーを構築した場合はそのサーバーのIPアドレス:ポート番号に置き換える。

以下は1つのサーバー機の中でServer1がポート25566、Server2がポート25567で開かれている場合の設定例。

```shell:config.yml
servers:
  Server1: #サーバー名
    address: 127.0.0.1:25566 #サーバーIP:ポート
    restricted: false #権限がないプレイヤーがサーバーに入れるかどうか
    motd: 'A Minecraft Server' #基本的には使わないのでいじらない
  Server2:
    address: 127.0.0.1:25567
    restricted: false
    motd: 'A Minecraft Server'
```
さらに、プレイヤーのUUIDを正常に取得するため、ip_fowardをtrueに変えておく。
また、正規プレイヤー以外のログインを遮断するため、online_modeもtrueにしておく。

## 5-6. Spigot側の設定

次に、servers:に登録したサーバーのソフトウェアがSpigotである場合は、サーバーディレクトリにあるspigot.ymlの31行目付近、bungeecord:をtrueにしておく。

```shell:spigot.yml
bungeecord: true

次に、server.propertiesの23行目付近、online-modeをfalseにしておく。

server.properties

online-mode=false
```

## 5-7. 起動

設定が完了したら全てのファイルを上書きしたら、Screenを起動。

```shell
$ screen -S BungeeCord
```

BungeeCordを起動する。

```shell
$ java -Xmx512M -Xms512M -jar BungeeCord.jar
```

コンソールにendと実行すれば止めることができる。

## 5-8. サーバー間移動

サーバー間の移動にはMinecraft内で/server [Server名]を使用する。一般プレイヤーをサーバー移動させたい場合はNPCに埋め込むなどして実装しよう。看板を右クリックしてサーバー間を移動させることができるプラグインなども存在する。

## 5-9. プラグインの導入

BungeeCordにもプラグインを導入することができる。`/home/user/BungeeCord/plugins`にプラグイン本体を入れるだけ。ここに導入したプラグインはBungeeCordで繋がっている全てのサーバーで有効化される。LunaChatを導入すれば、BungeeCordで繋がっている異なるサーバー間でチャットを共有することができるほか、Votifierなどを導入すれば、投票特典の配布をサーバー間で共有することもできる。

# 更新履歴
|更新日|バージョン|変更内容|
|---|---|---|
|2025/04/19|V3.0|修正を行いました|
|2024/05/12|V2.0|修正および移転を行いました|
|2023/04/06|V1.1|一部修正を行いました|
|2021/07/11|V1.0|BungeeCord編を追加しました|
|2021/06/20|オリジナル|記事を公開しました|