自宅PCでマイクラ鯖

はじめに

ここでは自宅のPCでマイクラ鯖を立ち上げる手順を記載しています。
Windows PCを想定していますが、古いPCがある場合はOSが無料なUbuntuなどのLinux系OSでサーバー構築してしまうと良いでしょう。

要求スペック

ネットワークとPCについて
インターネット回線1Gbps以上
接続形態有線接続
ルーターポート転送機能あり
ネットワークについて
使用するアプリケーションDocker Desktop
OSWindows / Linux / Mac
BIOSAMD IOMMU または INTEL VT-d を有効にする
CPUAMD or INTEL 64-bit 4コア以上
RAM最低16GB以上。32GB以上推奨。
SSD256GB以上の空き容量
PCについて

Docker Desktop for Windows のインストール

行程を簡略化するため、ここでは Docker イメージを2つ(サーバーとバックアップ)使用します。
Docker イメージを使用するために、ここでは統合されたエコシステムとして Docker Desktop を使用します。

Docker Desktop は、個人利用であれば無償で利用できます。
以下のページの手順に沿ってインストールしましょう。

インストール手順:https://docs.docker.jp/desktop/install.html

色々書かれているけど、Docker Desktop Installer.exe を実行するだけです。

Docker Compose ファイルの作成

以下のzipをダウンロードして解凍し、env.txt を自分好みに編集してください。

env.txt

# OS
TZ: "Asia/Tokyo"
LANG: "ja_JP.UTF-8"
LANGUAGE: "ja_JP"

# JVM
MEMORY: 10G

# Server
EULA: "TRUE"
TYPE: "PAPER"
#VERSION: "1.20.1"
ENABLE_ROLLING_LOGS: "true"

# RCON
ENABLE_RCON: "true"
RCON_PASSWORD: "xxxxxxxxx"
RCON_PORT: 25575

# server.properties
OVERRIDE_SERVER_PROPERTIES: "TRUE"
SERVER_NAME: "My Server"
MOTD: "My World"
DIFFICULTY: "normal"
ENABLE_WHITELIST: "TRUE"
ENFORCE_WHITELIST: "TRUE"
MAX_PLAYERS: "100"
MAX_WORLD_SIZE: "29999984"
ALLOW_NETHER: "true"
ENABLE_COMMAND_BLOCK: "true"
FORCE_GAMEMODE: "true"
GENERATE_STRUCTURES: "true"
HARDCORE: "false"
SNOOPER_ENABLED: "false"
SPAWN_ANIMALS: "true"
SPAWN_MONSTERS: "true"
SPAWN_NPCS: "true"
SPAWN_PROTECTION: "0"
SEED: ""
MODE: "survival"
PVP: "true"
LEVEL: "world"
LEVEL_TYPE: "default"
ONLINE_MODE: "TRUE"
ALLOW_FLIGHT: "TRUE"
VIEW_DISTANCE: "12"
SIMULATION_DISTANCE: "8"
NETWORK_COMPRESSION_THRESHOLD: "-1"

# Backup
BACKUP_INTERVAL=24h

起動テスト

初回のみ

初回のみ、以下の事前設定をお願いします。
1)PowerShellを管理者モードで開く。


2)下記のコマンドを実行したら、ウィンドウを閉じて完了。

Set-ExecutionPolicy RemoteSigned -Force

上記のテキストをクリップボードにコピーして、PowerShell のウィンドウ上で右クリックするとペーストされるので、Returnキーを押して完了です。

スクリプト実行準備

拡張子 .ps1 をダブルクリックで実行させる方法

解凍したファイルの〇〇.ps1を、どれでもいいので、1つ選択してください。

ALT+ENTERを押してプロパティを開き、プログラムの変更ボタンを押してください。

「PCでアプリを選択する」を選んでください。

以下のテキストをコピーして、ファイル選択ダイアログのファイル名にペースト(CTRL+V)してください。

%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe

現れた「Windows PowerShell」を選択し、「既定値を設定する」ボタンを押してください。

以上で、ダブルクリックで直接実行されます。

start.ps1 を実行してください。内部的に以下のコマンドを実行しています。

docker compose up -d

終了する時は、stop.ps1 を実行してください。
内部的には以下のコマンドになっています。

docker compose down

停止と再起動であれば、Docker Desktop の GUI から操作する事も可能です。
コンテナの一覧に、mc と mc-backup がある事を確認しましょう。

ローカルでの接続テスト

自分自身に op 権限を付与しておきましょう。(mc のコンテナが起動している事)

docker exec mc rcon-cli op Muscle_p

Muscle_p は、プレイヤー名です。自分のプレイヤー名に変えましょう。

ホワイトリストに登録しておく場合は、以下のコマンドになります。

docker exec mc rcon-cli whitelist add Muscle_p

マイクラを起動し、Docker Desktop が動いているPCのIPアドレスに接続してください。


同じPC上で接続を試す場合は、localhost という名前で接続できますが、他のPCから接続する場合は、Docker Desktop が動いているPCのIPアドレスを直接指定してください。
IPアドレス(IPv4)を調べる方法は、「ネットワーク設定とインターネット設定」の接続プロパティの詳細情報を確認するか、ipconfig コマンドなどを利用してください。

ipconfig コマンド実行例

外部から接続してみる

ルーターに対し、ポート転送を設定しましょう。(ルーター毎に異なりますので、マニュアルを確認してください。)
インターネット側のTCPプロトコル「25565」番ポートへの接続を、Docker Desktopが動いているPCのプライベートIPアドレスの25565番に転送しましょう。

ポート転送のイメージ図

公開するサーバー名を決める

無料DDNSサービスの利用

無料DDNSサービス:https://ddns.kuku.lu/

このサイトで好きなサブドメインで新規登録し、その名前で接続できる様にしましょう。
グローバルIPアドレスは、ルーターの再起動やインターネットプロバイダーの都合でコロコロ変わります。
その度に、マインクラフトの接続するアドレスを設定するのは面倒なので、DDNSサービスを利用して自分のグローバルIPアドレスを、登録した名前で更新しましょう。
定期的に更新する方法は、サイトのマニュアルから好きな方法を選んでください。

注意:DDoS対策なし

グローバルIPアドレスの隠匿化を行っていないため、接続アドレスを公開すると、DDoS攻撃等が発生する可能性があります。発生した場合は、ルーターを再起動してグローバルIPを更新してください。
24時間ずっとオープン状態にする事もできますが、サーバーは見守れる範囲で起動する事をお勧めします。

プラグイン

plugins フォルダに、spigot や paper で使用できるプラグインのファイルを配置する事で、利用できます。
プラグインの設定ファイルは、初回起動時に作成されるので、1度起動させましょう。
場所は、data/plugins/<プラグイン>というフォルダの中に作成されます。
設定ファイルを編集したら、再起動しましょう。

統合版ユーザーを参加させるプラグインはこちら。>https://geysermc.org/

編集