防砂林メモ

自分用のメモを書くだけ

Java版Minecraft自宅サーバーの建て方(ngrokで公開)

はじめに

Windows向けの説明です。

ポートフォワーディングということをするので、セキュリティーが低下することになります。まあ、普通にやればどうってことないと思いますが、一応。とにかく、自己責任ってことでよろしくお願いします。

Minecraft脆弱性への対策について、注意すべき項目が2点あります。確実に設定しましょう。 www.minecraft.net

この方法では、仲間内での利用程度にとどめておくことを推奨します。不特定多数のプレイヤーを入れるような用途には不向きです。

目次

準備

  1. 適当なところにフォルダを作ります。名前は何でもいいです。ここでは「鯖」とします。

  2. 拡張子の表示をオンにしてください。 pc-karuma.net

  3. JDKをインストールします。「鯖」の中に「jdk-x.x.x」を配置してください。 www.javadrive.jp

  4. フォルダ名を「jdk-x.x.x」から「jdk」に変更します。

この時点でフォルダ構成はこのようになっています。

鯖フォルダ
 └ jdk
   ├ bin
   └ など

サーバーを作る

  1. 「鯖」の中に新しいフォルダを作ります。名前は何でもいいです。ここでは「新しいフォルダー」とします。

  2. Minecraftランチャーを起動します。「起動構成」「新規作成」をクリックします。

  3. 任意のバージョンを指定して「サーバー」をクリックします。

  4. ダウンロードされたファイル「server.jar」を「新しいフォルダー」に移動します。

  5. 重要項目1/2 Minecraftのバージョン1.7~1.16.5を使う場合、次のサイトにアクセスして、バージョンに対応するファイルをダウンロードする必要があります。ファイルは「新しいフォルダー」に配置します。
    www.minecraft.net ※ダウンロードするファイルがブラウザ上で開かれる場合は、Ctrl+Sで保存します。

  6. メモ帳を起動します。 pc-karuma.net

  7. 重要項目2/2 Minecraftのバージョンに応じたコマンドをコピペします。
    1.18.1以上、1.7未満
    ..\jdk\bin\java.exe -Xmx2G -Xms2G -jar server.jar --nogui
    1.17~1.18
    ..\jdk\bin\java.exe -Xmx2G -Xms2G -Dlog4j2.formatMsgNoLookups=true -jar server.jar --nogui
    1.12~1.16.5
    ..\jdk\bin\java.exe -Xmx2G -Xms2G -Dlog4j.configurationFile=log4j2_112-116.xml -jar server.jar --nogui
    1.7~1.11.2
    ..\jdk\bin\java.exe -Xmx2G -Xms2G -Dlog4j.configurationFile=log4j2_17-111.xml -jar server.jar --nogui

  8. 「起動.bat」の名前で、「新しいフォルダー」に保存します。

  9. 「起動.bat」をダブルクリックします。黒い画面が現れ、数秒経つと消えます。このとき「新しいフォルダー」内にいくつかファイル・フォルダーが追加されます。

  10. 追加された「eula.txt」を開きます。ファイル末尾の「false」を「true」に書き換え、上書き保存します。

この時点でフォルダ構成はこの様になっています。

鯖フォルダ
 ├ 新しいフォルダー
 │ ├ eula.txt
 │ ├ server.jar
 │ ├ server.properties
 │ ├ 起動.bat
 │ └ など
 └ jdk

サーバーの運用

サーバーの起動~停止

「起動.bat」をダブルクリックすると、黒い画面が現れます。これがサーバーです。

しばらくして、サーバーの起動が完了したら画面上に「Done」と表示されます。Minecraftからサーバーに接続してみましょう。アドレスは「localhost」です。

localhost」は特殊なアドレスで、サーバーを動作させているコンピュータでのみ機能します。他のプレーヤーに関しては、まだサーバーを公開していないため、サーバーにアクセスすることができません。

サーバーに接続できることが確認できたら、サーバーを停止しましょう。黒い画面にはコマンドを入力することができます。stopと入力してエンターキーを押します。ワールドが保存され、黒い画面は消えます。

※「このアプリの機能のいくつかが Windows Defender ファイアウォールでブロックされています」というダイアログが出ることがありますが、「キャンセル」で問題ありません。

コマンドについて

サーバーを停止する際stopと入力するように、コマンドによってサーバーを管理することができます。

よく使うコマンド 説明
difficulty (難易度) easy hard normal peaceful
gamemode (ゲームモード) (プレイヤー名) survival creative adventure spectator
help コマンドの一覧を表示
kick (プレイヤー名) プレイヤーを追い出す
op (プレイヤー名) オペレータ権限を与える deopで剥奪
stop サーバーを停止する
time set 0 時刻を朝にする
tp @a (プレイヤー名) 指定したプレイヤーのいるところに全員集合
weather clear 天気を晴れにする

コマンドについて詳細はこちら。 minecraft.fandom.com

サーバー設定について

フォルダ内の「server.properties」ファイルを編集することで、サーバーの設定を変えることができます。サーバー起動中に変更した場合、再起動するまで適用されません。

よく使う設定項目 設定値
difficulty easy hard normal peaceful
gamemode survival creative adventure spectator
hardcore true(有効) false(無効)
max-players サーバーの定員
motd サーバーの説明(半角英数字のみ)
pvp true(有効) false(無効)

difficultyやgamemodeに関してはコマンドで設定することもできますが、「server.properties」には保存されないため、再起動すると設定が元に戻ります。

サーバー設定について詳細はこちら。 minecraft.fandom.com

ホワイトリストについて

これからサーバーを公開する上で、ホワイトリストを有効にすることを推奨します。ホワイトリストを有効にすることで、指定したプレイヤー以外サーバーに接続できないようになります。

  1. 「server.properties」の項目「white-list」を「true」に設定して保存します。

  2. サーバーを起動します。

  3. サーバーに接続できないようになっているか確認します。
    ※オペレータ権限のあるプレイヤーはホワイトリストに登録されていなくても、サーバーに接続できるようです。

  4. コマンドwhitelist add (プレイヤー名)を入力します。

ワールドを変更する

サーバーは「world」と名前のつけられたフォルダを読み込む事になっています。

シングルプレイで使っていたワールドや配布ワールドを使いたいときは、元からある「world」フォルダを削除などした上で、使いたいワールドフォルダを配置し「world」に改名することで、置き換えます。

シングルプレイのワールドデータは、エクスプローラーのアドレスバーに「%appdata%\.minecraft\saves」と入力することで見ることができます。

サーバーを複数作る

用途によってワールドや設定を使い分けたい場合は、上記の手順を繰り返して、サーバーを複数作ると良いでしょう。

フォルダの分け方の例です。

鯖フォルダ
 ├ サバイバル用
 │ ├ world
 │ ├ server.jar ※1.19.3
 │ ├ server.properties ※サバイバル、ノーマル
 │ ├ whitelist.json ※自分、Aさん、Bさん
 │ ├ 起動.bat
 │ └ など
 ├ PVP用
 │ ├ world ※配布ワールド
 │ ├ server.jar ※1.16.5
 │ ├ server.properties ※アドベンチャー、ピースフル
 │ ├ whitelist.json ※自分、Cさん、Dさん
 │ ├ 起動.bat
 │ └ など
 └ jdk

※現在の設定では、サーバーを複数同時起動することはできません

サーバーの公開

ngrok(エングロック)というサービスを利用してサーバーの公開をします。

  1. 次のサイトにアクセスして「Sign up for free」をクリックします。 ngrok.com

  2. 画面に従い、アカウントを作成します。

  3. ログイン後のページの「Download for Windows」をクリックします。

  4. ダウンロードされたデータを展開し、中身の「ngrok.exe」を「鯖」に配置します。

  5. ログイン後のページの「2. Connect your account」に記載されているコマンドをコピーします。
    ※ユーザーごとに違う内容になっています。

  6. メモ帳を開き、コマンドを貼り付け、「公開.bat」の名前で「鯖」に保存します。

  7. 「公開.bat」をダブルクリックします。一瞬黒い画面が表示されます。

  8. 「公開.bat」を右クリックして、「編集」をクリックします。メモ帳が開きます。

  9. 内容を次のコマンドに書き換えて、上書き保存します。
    ngrok tcp 25565 --region jp

以上で公開の準備が完了です。「公開.bat」をダブルクリックすることで、黒い画面が現れます。これと、サーバーの黒い画面の両方が起動している状態で、サーバーが公開されます。

画面上のアドレス「0.tcp.jp.ngrok.io:xxxxx」を他のプレイヤーに教えましょう。自分がサーバーに接続するときは、変わらず「localhost」でOKです。
※黒い画面でテキストをコピーする場合は、ドラッグで選択して、右クリックするだけでコピーされます。

上記の通り、ホワイトリストの設定をすることをお勧めします。忘れずにどうぞ。

この黒い画面を消すには、Ctrl+Cを押します。

この時点でフォルダ構成はこの様になっています。

鯖フォルダ
 ├ jdk
 ├ 新しいフォルダー
 ├ ngrok.exe
 └ 公開.bat

おわりに

統合版使えばいいよ。