マインクラフトの自宅サーバーをたててみたい!
はじめに
前々から余ってるPCをどうにか活用する方法としてマイクラサーバーをたてることを考えていました.なぜマイクラサーバーなのかというと単純に私がゲームが好きでなおかつ割と軽そうなゲームでサーバーがたてられるものだからです.暇な時があればちょこっと調べて壁にぶちあたっては中断してを繰り返していましたが今回,私の周りの人たちがマイクラをしたいと言い始めたのでいい機会だと思い,最後までやりきることにしました.
サーバーをたてたりポート開放をしたりするのは今回が初めてなので船長@七色くらふたーさんの以下の記事を主軸に参考しながら進めていきます.
今回使用しているUbuntuのバージョンは24.04.3 LTSです.
参考にさせていただいている記事のほうではUbuntuのインストールから始まるのですが,私の場合はすでに別の用事でUbuntuはインストール済みだったこととUbuntuインストールの手順については調べると無限に出てくると思いますのでインストールの行程は割愛させていただきます.
今回はJava版マインクラフトで友達が私のサーバーにアクセスして遊べるようになることを目標とします.
目標達成までの大まかな流れは以下のとおりです.
Ubuntuのインストール(省略)
JDKインストール
ポート開放
Minecraftサーバーのインストール
インターネットに公開
それではやっていきましょう!
JDKのインストール
UbuntuがインストールされたPCにJava版のマインクラフトを動かすためのJDKをインストールする必要があります.ここで注意しなければいけないのがインストールするJDKのバージョンがたてたいマイクラサーバーのバージョンによって異なることです.今回たてるサーバーではMinecraft1.20.5以降の最新のものですのでJava21をインストールします.
お約束?のコマンド
$ sudo apt-get update
↑ https://qiita.com/pensuke628/items/1555cad4904327117982 によるとパッケージリストの更新を行っているらしい
$ java -version
これで現在Javaがインストールされているかを確認できます.
今回必要なのは先程も述べた通りJava21ですので
$ sudo apt install openjdk-21-jdk-headless
このコマンドでGUI無しのJDK21を導入できます.
$ java -version
これでちゃんと導入できたかを確認しましょう.
ポート開放
外部と通信するために一度ポートを解放する必要があります.セキュリティ対策として一度使っていないポート以外はすべて閉じます.それから必要なポートのみを開放します.
現在の状態を確認
$ sudo ufw status
すべてのポートを閉じる
$ sudo ufw default deny
すべて閉じたらポートをマイクラで使うポートを開放します.Java版マインクラフトではTCP25565を使用します.
$ sudo ufw allow 25565/tcp
$ sudo ufw enable
そして今回の目標は友人と遊べるようになることであるためルーター側のポート開放もする必要があります.ルーター側のポート開放はセキュリティリスクを伴いますので自己責任でお願いします.ルーター側のポート開放をしてインターネットに公開するのは後々記述します.
Minecraftサーバーのインストール
次にサーバー本体をインストールします.
その前にマイクラの管理者用ユーザーを作成します.
今回はユーザー名を参考にさせていただいている記事の通りmcとします.
$sudo adduser mc
ユーザのパスワードやフルネームや電話番号を聞かれるのでそれらの設定をしたあとに「以上でよろしいですか?」と聞かれるのでEnterをおします.これで管理者用のユーザーができました.
次にサーバーファイルをお出迎えするためのディレクトリを作成し,そのディレクトリを先程作成したマイクラ管理者用ユーザーの所有物に指定します.
ディレクトリ作成
$ sudo mkdir /opt/minecraft
所有者指定
$ sudo chown mc:mc /opt/minecraft
それではついにマインクラフトのサーバーをダウンロードします.
まず,ユーザーとカレントディレクトリを先程作った物に変えます.
$ su - mc
$ cd /opt/minecraft
参考にさせていただいている記事の方では1.17.1をダウンロードされていますが今回は現行最新のバージョンでサーバーを建てるので https://www.minecraft.net/ja-jp/download/server
にあるダウンロードリンクダウンロードします.
$ wget https://piston-data.mojang.com/v1/objects/95495a7f485eedd84ce928cef5e223b757d2f764/server.jar
ダウンロードできたかをlsコマンドで確認します.
$ ls /opt/minecraft
server.jarなどのそれらしきファイルがあればOKです.server.jarのままではどのバージョンなのかわかりにくいのでバージョンが分かる名前に変更します.
$ mv server.jar server_1.21.10.jar
それではサーバーファイルもダウンロードできたということで実行してみましょう!
先程のサーバーファイルのダウンロードリンクがあるリンクにあったコマンドを使います.
ただし,先程ファイル名を変更したのでコマンド内のファイルを指定する部分を少し修正して...
$ java -Xmx1024M -Xms1024M -jar server_1.21.10.jar nogui
一度目の実行ではコマンドの実行とともにダウンロードされたファイルの1つのEULAに同意ができていないのでエラーが出るようです.同意するためにファイルの中身をいじります.
$ nano eula.txt
十字キーで移動,Ctrl+Sで保存,Ctrl+Xで終了できます
eura=falseをeura=trueに変更して保存して終了しましょう.
もう一度さっきのコマンドを実行して...
$ java -Xmx1024M -Xms1024M -jar server_1.21.10.jar nogui
それでは一度別マシンからサーバーにローカルIPアドレスでアクセスしてみます!

インターネットに公開
それではこのサーバーをインターネットに公開したいと思います.
次にルーターのポート開放をします.
我が家ではSoftBank光を契約しているため以下のような画面から設定します.
設定画面に入って静的IPマスカレードの設定をすれば完了です.
具体的には変換対象プロトコルをTCP,変換対象プロトコルを25565,宛先IPv4アドレスをサーバーのIPv4アドレスに指定,宛先ポートを25565にします.静的IPマスカレードエントリの設定が完了したらルーターでの作業は終わりです.
次にインターネット側から我が家のネットワークにアクセスする方法を今回はドメインを使ったものにします.サーバーたての設定を参考にさせていただいた船長@七色くらふたーさんの記事ではDDNSnowを使用していたのでそちらで登録をして現在のルーターのグローバルIPアドレスを入力したらマルチプレイができるようになりました!
今後このサーバーに対して行いたいこと
ddclientを使ってドメインを取得してマイクラサーバーにアクセスできるようにする
ゲームとしての設定変更(難易度など)
ワールドデータの定期自動バックアップ
ホワイトリストを作成してアクセスできる人を制限
セキュリティについて調べてできそうなことを実装
リモートからでも設定できるようにする(難しそう...)
ぱっと思いつくだけでも色々ありますね...
最後に
今回サーバーをたてることができた後に考えると意外と簡単なことで今まで詰まっていたんだと感じました.行動することって大事ですね.でもセキュリティほとんど何もできてない気がしてすぐポートを閉じたり,めっちゃAIに大丈夫か聞いたりしましたがおかげで前よりも理解度が上がった気がします.
参考文献
今回,サーバーをたてる間に読ませていただいた記事です!
https://note.com/sencho0802_flg/n/n6670e82d04ff
https://www.sejuku.net/blog/82556
https://nekspress-blog.netlify.app/ddns-minecraft-home-server/
https://hikicomoron.net/minecraft_server_properties
https://note.com/prescott_2m/n/nb4d12a571132



