Minecraft ServerをCentOS8上に構築した際の手順を残しておきます。
コマンドの使い方やその他注意点なども併せて解説します。
前提条件
今回の構成は自宅サーバで構築しています。
Minecraft Serverなどの設定値はこちらにまとめておきます。
OS | CentOS 8 |
Minecraft Version(spigot) | 1.18.2 |
Xms | 1GB |
Xmx | 2GB |
Java | 17.0.2 |
ユーザー作成
作業用のユーザを作成しておきます。
また、後ほどサーバーを設置するためにディレクトリも用意しておきます。
1 2 3 |
# useradd mcuser # su - mcuser $ mkdir /home/mcuser/server |
Javaのインストール
OpenJDKのダウンロード
まずはJavaをインストールします。
本記事ではOpenJDKをダウンロードします。
ブラウザでURLをコピーして、SSHターミナルでペーストおよびファイルダウンロードを実行します。
詳しい流れは以下の通りです。
- OpenJDKのサイトからリンクをコピーする
- SSHターミナルで任意のフォルダにcurlでファイルをダウンロードする
- ダウンロードしたファイルを解凍する
- 環境変数を設定する
OpenJDKのリンクをコピーする
http://jdk.java.net/17/
こちらのページにブラウザでアクセスして、画像の赤枠左側部分をコピーしましょう。
※sha256はコピーしなくて良いです

SSHターミナルでcurlを使いファイルをダウンロードする
URLのコピーができたら、構築中のサーバにSSHでアクセスしましょう。
このサーバへファイルを直接ダウンロードさせるため、以下のコマンドを入力します。
1 2 3 4 5 6 7 |
$ cd /home/mcuser/server $ curl https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz -O $ ls -alh total 180M drwxr-xr-x 2 mcuser mcuser 4.0K Mar 21 18:13 . drwx------ 3 mcuser mcuser 4.0K Mar 21 18:13 .. -rw-r--r-- 1 mcuser mcuser 179M Mar 21 18:14 openjdk-17.0.2_linux-x64_bin.tar.gz |
ダウンロードしたファイルを解凍する
サーバー上に保存した圧縮ファイルを解凍していきます。
1 2 3 4 5 6 7 8 |
$ tar zxvf openjdk-17.0.2_linux-x64_bin.tar.gz - - - - - - - - - - - - - - - - - - - - - - - - - - - - <tarコマンドがない場合:root権限> # dnf install -y tar # su - mcuser $ cd /home/mcuser/server/ $ tar zxvf openjdk-17.0.2_linux-x64_bin.tar.gz |
環境変数を設定する
ダウンロードしたファイルを環境変数に設定するには以下を設定する必要があります。
1 |
# vi /etc/bashrc |
1 2 |
export JAVA_HOME=/home/mcuser/server/jdk-17.0.2 export PATH="$JAVA_HOME/bin:$PATH" |
1 2 3 4 5 6 7 8 |
# source /etc/bashrc # echo $JAVA_HOME /home/mcuser/server/jdk-17.0.2 # java --version openjdk 17.0.2 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-86) OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing) |
バージョンが無事に出てきたらJavaの準備は完了です!
BuildTools.jarのダウンロード
Spigotの配布元サイトからBuildTools.jarファイルをダウンロードします。
これもブラウザでURLをコピーして、SSHターミナルでペーストしcurlダウンロードしましょう。

1 2 |
$ cd /home/mcuser/server/ $ curl https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar -O |
Spigotのバージョンを指定してビルド
BuildTools.jarはビルド時にバージョンを指定してビルドを行います。
そのため、どのバージョンでサーバをビルドしたいか、明示的に指定する必要があります。
今回は1.18.2でサーバを構築したいので、そのように指定しましょう。
1 |
$ java -jar BuildTools.jar --rev 1.18.2 |
ビルドが完了したら、サーバーで待ち受けるポートを開放しておきます。
ファイアウォールでポート開放
CentOSのファイアウォールでポートを開ける場合、サーバーで使いたいポートを指定して設定するようにします。
なお、OSインストール後に何も設定を変更してない場合、CentOSの標準設定ではファイアウォールが無効になってます。
まずはどのポートを使いたいか考えて、通信遮断が起きないように気をつけて作業をしましょう。
今回Minecraft Serverでは25565/tcpを指定します。
この他にSSHのポートも開けておく必要があるので、SSHポートが22/tcpである前提でポート開放を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# systemctl status firewalld ○ firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) # systemctl start firewalld # systemctl enable firewalld Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service. Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service. # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: # firewall-cmd --add-port=22/tcp --permanent success # firewall-cmd --add-port=25565/tcp --permanent success # firewall-cmd --reload success # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: 22/tcp 25565/tcp protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
SSHポートとMinecraft Serverポートが追加されました。
minecraftサーバーの初回起動
1 |
$ java -Xms1GB -Xmx2GB -jar spigot-1.18.2.jar |
初期設定が一通り完了したら、Minecraft サーバーを起動してみましょう。
EULAに同意する必要があるため、初回だけは必ずサーバープログラムが自動停止します。
EULAに同意
初回だけEULAに同意するようeula.txtの内容を更新します。
私は対象となるファイルをわざわざ開くのが面倒なので、以下のコマンドで条件に一致する場所を自動で置換します。
1 |
$ sed -i -e 's/^eula=false/eula=true/g' /home/mcuser/server/eula.txt |
minecraftサーバー起動
もう一度Minecraft サーバーを起動して、正常に動作するかを確認します。
1 |
$ java -Xms1GB -Xmx2GB -jar spigot-1.18.2.jar |
このような表示が出ていれば、Minecraftサーバーの起動は完了です。
1 |
[Server thread/INFO]: Done (30.007s)! For help, type "help" |
minecraftクライアントから接続
サーバーが起動したら、Minecraftクライアントから接続をして確認を行います。
特に問題なければ、画像のようにアクセスができるはずです。
