鯖ドリル

※本記事にはアフィリエイト広告(PR)が含まれています

Minecraft

【月0円】マイクラJava版サーバーの立て方 2026年版|Oracle Cloud無料枠×PaperMCで24時間マルチ環境(Java 25対応)

Minecraft Java版のマルチサーバーを完全無料で24時間動かす方法を、2026年の最新環境(Minecraft 26.x・Java 25・PaperMC新API)で解説。古い記事のコマンドが動かなくなった理由と対処法、実測メモリ、つまずきポイントを実体験ベースで公開します。

#Minecraft#Java版#PaperMC#Oracle Cloud#無料#ARM#マルチプレイ#専用サーバー
目次

「友達とマイクラでマルチプレイしたい。でもRealmsの月額は払いたくないし、ホストが落ちるとみんな遊べなくなるのも嫌」

この記事では、Oracle Cloudの無料枠にMinecraft Java版の専用サーバー(PaperMC)を立てて、月0円で24時間動き続けるマルチ環境を作ります。

結論を先に言うと——

⚠️ 2026年、古いマイクラサーバー記事は動かない可能性がある

先に重要な注意です。

  1. Minecraft 26.x は Java 25 が必須になった 現在は「Java 17/21を入れる」では、サーバーが起動を拒否します(実際に拒否されました)
  2. PaperMCの旧ダウンロードAPI(api.papermc.io/v2)が2025年に廃止 現在のcurlコマンドはエラーJSONを返すだけです。新しい Fill API への書き換えが必要

本記事はすべて2026年7月時点の実機で検証済みです。

この記事で得られること

  • Oracle無料枠(2 OCPU/12GBでOK)にPaperMCサーバーを立てる全手順(コピペで動く)
  • Java 25・Fill API対応の最新版コマンド
  • systemd + tmux による常駐化(SSHを切っても動き続け、OS再起動でも自動復帰)
  • ホワイトリストによる荒らし対策
  • 実測データ: サーバーのメモリ使用は約2.8GB(初期)

前提

  • Oracle Cloudのアカウントと、Ubuntu 24.04のARMインスタンス(A1.Flex)が作成済みであること
  • SSHでサーバーに接続できること
  • クライアント(Minecraft: Java Edition)を持っていること
    • 買い切り版のほか、PC Game Passの対象状況も公式サイトで確認できます。料金やキャンペーンは変わるため、購入時の表示を確認してください

Step 1. Java 25 のインストール

まず、OCIからダウンロードした秘密鍵ファイルを自分のPCの~/.ssh/フォルダへ置きます。Windows PowerShellの~C:\Users\<ユーザー名>、Macの~/Users/<ユーザー名>を意味します。入力欄にはフォルダ名を含めず、鍵ファイル名だけを入力してください。

OracleのValheim記事で保存済みのキーファイル名・IPアドレスがあれば、ここへ自動で読み込まれます。初めて読む場合も、この欄へ入力してそのまま保存できます。

ssh -i ~/.ssh/{{key}} ubuntu@{{ip}}

接続できたら、以下を順に実行します。

sudo apt update
sudo apt install -y openjdk-25-jre-headless jq
java -version

openjdk version "25..." と出ればOKです。

注意: 最初にJava 21で起動したら Minecraft 26.1 and newer requires running the server with Java 25 or above. と一蹴されました。26.x世代はJava 25必須です。

Step 2. PaperMC のダウンロード(新Fill API対応)

PaperMCは、公式バニラサーバーを高速化しプラグインを使えるようにした定番サーバーです(世界の大規模サーバーの多くがこれ系)。

注意: 旧APIを叩くと今はこう返ってきます: {"ok":false,"error":"sunset","message":"This API version has been sunset..."} 2025年に旧v2 APIが廃止された様子です

新しいFill APIでの取得(バージョンはクライアントに合わせる。本記事執筆時は26.2):

mkdir -p ~/minecraft && cd ~/minecraft
VER=26.2
USER_AGENT='sabadrill-guide/1.0 (https://sabadrill.com/about/)'
BUILD_JSON=$(curl -fsSL -H "User-Agent: $USER_AGENT" "https://fill.papermc.io/v3/projects/paper/versions/$VER/builds/latest")
echo "$BUILD_JSON" | jq '{build: .id, channel: .channel, jar: .downloads["server:default"].name}'
URL=$(echo "$BUILD_JSON" | jq -r '.downloads["server:default"].url')
test -n "$URL" && test "$URL" != "null"
curl -fL -H "User-Agent: $USER_AGENT" -o server.jar "$URL"
ls -la server.jar    # 約60MBならOK

PaperMC公式は自動取得時に識別可能なUser-Agentを必須としています。上のコマンドはこの要件に対応済みです。

また、2026年7月15日時点のPaper 26.2はBETAです。上のchannel表示がBETAまたはALPHAなら開発版であり、PaperMC公式も安定運用には推奨していません。安定性を優先する場合はSTABLEビルドが出るまで待ってください。本記事はBETA build 60で接続確認しています。

※ サーバーとクライアントのバージョンは一致必須です。クライアントが更新されたら VER= を変えて再取得します。

Step 3. 初回起動とEULA同意

java -Xms1G -Xmx1G -jar server.jar --nogui

初回は「Mojang公式のバニラ本体をダウンロード→Paperのパッチを適用」という処理が走った後、

[WARN]: Failed to load eula.txt
[INFO]: You need to agree to the EULA in order to run the server.

停止します。これはエラーではなく仕様です。この瞬間に eula.txt が生成されるので、同意して次へ:

sed -i 's/eula=false/eula=true/' eula.txt

Step 4. サーバー設定

sed -i 's/^motd=.*/motd=My MC Server/' server.properties
sed -i 's/^max-players=.*/max-players=5/' server.properties
sed -i 's/^white-list=.*/white-list=true/' server.properties
sed -i 's/^view-distance=.*/view-distance=8/' server.properties
sed -i 's/^simulation-distance=.*/simulation-distance=6/' server.properties
  • white-list=true必須。サーバーのIPは世界中からスキャンされるので、許可制にしないと知らない人が入ってきます
  • view/simulation-distance は無料枠向けの負荷対策値です

Step 5. 起動スクリプト(Aikarフラグ)

Minecraftサーバーの定番GCチューニング「Aikar’s Flags」を入れた起動スクリプトを作ります:

cat > ~/minecraft/start.sh <<'EOF'
#!/bin/bash
cd ~/minecraft
java -Xms4G -Xmx4G \
  -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
  -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
  -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \
  -jar server.jar --nogui
EOF
chmod +x ~/minecraft/start.sh

メモリ割当(-Xms/-Xmx)は、12GBインスタンスで他に何も動かしていなければ4G、他のゲームサーバーと同居させるなら2〜3Gに。

Step 6. systemd + tmux で常駐化

SSHを切っても動き続け、OS再起動後も自動で立ち上がり、かつサーバーコンソールにも入れる構成です:

sudo apt install -y tmux
sudo tee /etc/systemd/system/minecraft.service > /dev/null <<'EOF'
[Unit]
Description=Minecraft Paper Server
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/minecraft
ExecStart=/usr/bin/tmux new-session -d -s mc '/home/ubuntu/minecraft/start.sh'
ExecStop=/bin/bash -c '/usr/bin/tmux send-keys -t mc "stop" Enter; for i in {1..120}; do /usr/bin/tmux has-session -t mc 2>/dev/null || exit 0; sleep 1; done; exit 1'
Type=forking
Restart=on-failure
TimeoutStopSec=130

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft

起動を見届けます(初回はワールド生成があるので1〜3分):

tmux attach -t mc

Done (18.918s)! For help, type "help" が出れば稼働開始です。

tmuxの操作: 抜けるときは Ctrl+b を押して離してから dCtrl+Cは絶対に押さない(サーバーが止まります)。 停止したいときは sudo systemctl stop minecraft(ワールドをセーブしてから終了してくれます)。

そのままコンソールで自分をホワイトリストに登録しておきます:

whitelist add あなたのMinecraft名

初回起動のDoneログと、whitelist addで登録が通った様子

Step 7. ファイアウォール開放(2層 — 最大のつまずきポイント)

Oracle Cloudはクラウド側とOS側の2層でポートを開ける必要があります。片方だけだとConnection timed out になります。 解説記事は前提記事を参照してください

7-1. クラウド側(セキュリティリスト)

OCIコンソール → ネットワーキング → 仮想クラウド・ネットワーク → 対象VCN → Default Security List → イングレス・ルールの追加:

項目
ソースCIDR0.0.0.0/0
IPプロトコルTCP
宛先ポート範囲25565

イングレス・ルールの追加。ソースCIDRは0.0.0.0/0、TCP、宛先ポート25565

ソースCIDRは自分のIPではなく 0.0.0.0/0(全許可)にします。 ここに自分のIPを入れると、自分以外のフレンドが誰も入れなくなります(ゲームの入口はホワイトリストで守るので大丈夫です)。

7-2. OS側(iptables)

sudo iptables -I INPUT 1 -p tcp --dport 25565 -j ACCEPT
sudo netfilter-persistent save

-I INPUT 1(先頭に挿入)がポイント。OracleのUbuntuはINPUTチェーンの途中に全拒否(REJECT)ルールがあり、後ろに追加すると無効化されます。

Step 8. 接続確認

クライアント(Minecraft: Java Edition)を起動します。サーバーのバージョン(Step 2の VER=)とクライアントのバージョンが一致していることを確認してください(画面左下に表示されます。ここでは26.2)。

Java版のタイトル画面。左下にバージョン26.2の表示

マルチプレイ → サーバーを追加(またはダイレクト接続)→ サーバーのIP:25565 を入力します。

ダイレクト接続画面。サーバーのIP:25565を入力して接続

接続してワールドに立てれば完成です。

接続成功。サーバー名が表示され、ワールドに降り立った

私の環境で1回だけ「ログインに失敗しました: 無効なセッションです」が出ましたが、これはGame Pass認証トークンの期限切れで、ランチャーを再起動したら直りました。サーバー側の問題ではないので、このエラーが出ても慌てず、まずランチャーの再起動を試してください。

「無効なセッションです」エラー。サーバーではなくクライアント側の認証切れが原因

実測データ(2 OCPU/12GBの無料枠でどれくらい余裕があるか)

項目実測値
サーバー起動時間約19秒(2回目以降)
メモリ使用(-Xmx4G設定・アイドル)約2.8GB
少人数プレイ快適(ARMネイティブなのでエミュレーションのオーバーヘッドなし)

systemctl statusの実測。Memory: 2.8G (peak: 2.8G)

JavaはARM64ネイティブで動くため、Valheimのようなbox64エミュレーションが不要です。無料枠と最も相性の良いゲームサーバーと言えます。

トラブルシューティング

症状原因と対処
requires running the server with Java 25 or aboveJavaが古い。Step 1でJava 25を導入
ダウンロードしたserver.jarが数百バイトしかない旧APIを叩いている。Step 2のFill APIコマンドを使う
Connection timed outファイアウォールの2層両方を確認(Step 7)。特にクラウド側の追加忘れ
You are not whitelistedコンソールで whitelist add 名前
起動直後に落ちるメモリ不足。-Xmxを下げる

まとめと次のステップ


質問・つまずきポイントはお問い合わせフォームからどうぞ。実際にハマった範囲なら大体答えられます。