【無料】M1・M2 MacでJavaマイクラサーバー MohistMCの立て方

  • URLをコピーしました!
このエントリーをはてなブックマークに追加
Java版マイクラ「MohistMC」で自宅サーバーを構築!
Java版マイクラ「MohistMC」で自宅サーバーを構築!
マイクラサーバー構築記事一覧

Java版マイクラサーバー

Windows 11

Ubuntu

※Java版サーバーまとめ

統合版マイクラサーバー(Nukkit)

Windows 11

M1・M2 Mac

Ubuntu

Parallels仮想環境

Docker

  • Nukkit
ふる
ふる

こんにちは!「ふる(プロフィール詳細)」です。 

 

記事は信頼性ある内容を心がけています。

  • IT専門
  • 宅建士、行政書士資格保有
  • 体組成計"プロアスリート"認定

@na65125038

MOMOHUKU(ふる)
 

MOMOHUKU - にほんブログ村

無料で外部に公開するサーバーを立てます。
つまり友達の家からでも接続できるサーバーを構築します。

  • 無料と書いてある通りレンタルサーバーを使いません。
  • 準備するものは、自宅のPCとインターネット回線だけです。

僕は企業でCTOをしており、プロのITエンジニアです。

そんな僕がどうしてマイクラサーバーの立て方を記事にしているのか?

現状検索してヒットする記事ではマイクラ鯖を外部に公開するのは無理だからです。

サーバーを外部に公開したいのなら、やることは"ポート開放"ではありません。誰が?サーバーを立てる方法を"ポート開放"と言い始めたのか?

驚くかもしれませんが、サーバーを外部に公開する方法は"ポート開放"ではありません(確かにポート開放をしますが。)。

"マイクラ サーバー構築"で検索してみて下さい。

出てくる記事のすべてが"外部にサーバーを公開できないマイクラ記事"です。

この記事では

  • 誰でもJava版マイクラサーバーを立てれるようにします。
  • ConoHa WINGなど課金サーバーを使いません。
  • 家のネットワーク環境をイジります。

ConoHa WING、Minecraft Realms(レルムズ)などの課金サーバーを使いません。

すべて無料でサーバーを外部に公開します。

※実際、この記事の通りに作業してサーバーを外部に公開できることは確認済みです。なので、時間を使ってじっくり読んでもらって大丈夫です。

この記事だけでサーバー構築の知識が完結するように、ネットワークに関するIT用語は末尾に「用語解説」を載せています。

目次

MohistMCサーバーはModとプラグイン両方動く!

MohistMC Webサイト
Minecraft MohistMC Webサイト
  • MohistMC
    • 1.7.10(非推奨)、1.12.2、1.16.5、1.18.2(testing)、1.19.2(Dev)
    • https://mohistmc.com/download


本記事で立てる「MohistMCサーバー」の環境

サーバー環境

  • M1・M2 Mac ※Intel Macでもオッケー
  • MohistMC 1.18.2 サーバー
  • Javaランタイム環境
  • フォルダ場所はC:\MohistMCで作業 ※場所はどこでも良いです
  • ポート開放ツールを使わない

Windowsは10でも11でもなんでも構いません。Javaならどんな環境でも動作するからです。

その他、疑問点を以下にまとめたので読むと理解が深まると思います。

本記事で対象とするWindowsは?

Windows 10・11などすべてのWindowsで動作します。

Javaを使うので、x64・arm64のどちらでも動作します。

なんでMohistMCを使うのか?

マイクラを拡張するプラグインに加えて、さらにModも使えるからです。

なんでMohistMCのバージョンで"1.18.2"を使うのか?

1.18.1以降のバージョンはLog4Shell対策でJVMの起動時に追加引数なしで対応しているからです。ただ、他のバージョンでも対策できるので、特にこだわりはありません。

使いたいModのバージョンに合わせて、鯖を立ててみて下さい。

なんでポート開放ツールを使わないのか?

ポート開放ツールを使わない方がネットワークの理解に役立つからです。

公式サーバー(バニラ鯖)とMohistMCサーバーの違いは?

公式サーバー(バニラ鯖)ではModとプラグインを使えません。



M1・M2 Macに無料でMinecraftサーバーを建てる!流れ

引用:マインクラフト

M1・M2 Macに無料でマイクラサーバーを建てる!流れは下の通りです。

解説のために多少長ったらしい冗長な手順にしています。

なので、サーバーを外部に公開する仕組みが分かっている人は「ローカル環境からサーバーに接続する」という手順を省いてもらって構いません。

鯖を建てる流れ

  • ① M1・M2 Mac環境設定
    • Homebrew
    • Java
    • IPアドレスを調べる
       
  • ② マイクラサーバーをダウンロード
     
  • ③ マイクラサーバーを起動する
     
  • ④ ポート開放
     
  • ⑤ 接続テスト1:ローカル環境からサーバーに接続する
     
  • ⑥ ルーターを設定して、サーバーを外部に公開する
     
  • ⑦ 接続テスト2:グローバル環境からサーバーに接続する

上から順に作業を進めていきます。

サーバーを立てるポイント

  • ローカル環境(内部)でのサーバー接続
  • グローバル環境(外部)でのサーバー接続

ほとんどの人はローカル環境(内部)でのサーバー接続グローバル環境(外部)でのサーバー接続の違いを理解できていません。

結果が同じなので、その違いが分からないのかも知れません。

サーバーを建てる際は、必ずローカル環境とグローバル環境の違いを意識するようにしましょう。



M1・M2 Macでターミナルを使う

M1・M2 Macで検索欄にターミナルと入力する
M1・M2 Macで検索欄にターミナルと入力する

M1・M2 Macで検索欄から"ターミナル"と入力すればターミナルが表示されます。

そのまま"Enter"を押せばターミナルが起動します。

起動のやり方は他にもあります。

任意のフォルダ直下でターミナルを起動させる

M1・M2 Macのターミナルの起動に"フォルダに新規ターミナル"を使えば時短になる
M1・M2 Macのターミナルの起動に"フォルダに新規ターミナル"を使えば時短になる

ターミナルの起動には、任意のフォルダで"右クリック"⇒"ターミナルで開く"の方が時短になります。

ターミナル上でcdコマンドを使ってフォルダを移動するのも良いですが面倒です。

例えば、ターミナルでマイクラのサーバーフォルダを直接開く

M1・M2 Macのターミナルをフォルダから直接起動
M1・M2 Macのターミナルをフォルダから直接起動

フォルダを"右クリック"⇒"ターミナルで開く"で開けば、わざわざマイクラサーバーの場所にcdコマンドで移動する必要がありません。

任意のフォルダ直下で"右クリック"⇒"フォルダを新規ターミナル"でターミナルを起動する方が楽です。



① M1・M2 Mac環境設定

マイクラのサーバー構築に必要な環境を設定していきます。

環境設定の流れ

  • ① Homebrew
  • ② OpenJDK(javaランタイム)
  • ③ ローカルIPアドレス

Homebrewはインストールとパッケージの更新をしておきます。順々にやっていきます。

前準備:Homebrew をインストールする

引用:Homebrew
引用:Homebrew

Homebrewをインストールしておきましょう。Homebrewは、Macユーザーなら100%インストールするパッケージマネージャーです。

※すでにHomebrewをインストールしている方は読み飛ばして下さい。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

上のコマンドでインストールできます。

.zprofileにPATHを追加してくださいと表示されるので下のコマンドを実行します。

==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

brew -vなどして.zprofileにPATHが追加されたのを確認すれば完了です。

Homebrewの基本的な使い方は下記を参考にして下さい。

準備②:OpenJDK(Java)のインストール

  • OpenJDK
    • https://openjdk.org/

上記URLからインストールファイルを一式ダウンロードできます。

ただ、いちいちサイトに訪問するのも面倒なのでbrewを使ってOpenJDK 17(2022/9/1最新)をダウンロードしていきます。

① OpenJDKインストール
% brew install openjdk@17
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
distrobox    echidna      kubesess     libff        libplacebo   popeye
==> New Casks
orka-vm-tools                            reflect

You have 2 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.

==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/17/manifests/17.0.4.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/17/blobs/sha256:ef9bebe
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Pouring openjdk@17--17.0.4.1.arm64_monterey.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
  sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.

If you need to have openjdk@17 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@17 you may need to set:
  export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"

==> Summary
🍺  /opt/homebrew/Cellar/openjdk@17/17.0.4.1: 640 files, 306.6MB
==> Running `brew cleanup openjdk@17`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

brew install openjdk@17で、openjdk@17をインストールしました。

では、試しにjavaのコマンドを打ってみましょう。

% java -version
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

% 

上にも書きましたが、シンボリックリンク、openjdk@17のパスを追加していないので、当然にjavaのコマンドは通りません。

② OpenJDKのシンボリックリンク作成
% sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Password:

% 

コマンドを打ってパスワードを入力すればシンボリックリンクの作成が完了します。

③ OpenJDK のパスを通す
If you need to have openjdk@17 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@17 you may need to set:
  export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"

インストール時のプロンプトに上記が表示されます。

OpenJDKのパスを追加して下さい。とのことです。

実行例

% echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
                                                                                
% export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
                                                                                
%

パス追加のスクリプトを打っても、何も表示されません(これでパスは追加されています。)。

java -versionで確認する
% java -version 
openjdk version "17.0.4.1" 2022-08-12
OpenJDK Runtime Environment Homebrew (build 17.0.4.1+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.4.1+0, mixed mode, sharing)

$ 

Javaのパスが通っているか確認のために、試しにjava -versionを打ってみます。

openjdk version "17.0.4.1"が入っており、無事にJavaのパスが通ってると分かります。

OpenJDKを詳しく知りたい方はこちら

準備③:M1・M2 MacでローカルIPアドレスを調べる

% ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 3c:a6:f6:39:80:31 
	inet6 fe80::a0:9cb4:a1ea:7f44%en0 prefixlen 64 secured scopeid 0xb 
	inet 192.168.10.103 netmask 0xffffff00 broadcast 192.168.10.255
	inet6 240b:250:89e0:d200:1c6c:b923:d997:677d prefixlen 64 autoconf secured 
	inet6 240b:250:89e0:d200:7c09:806b:dd61:651c prefixlen 64 autoconf temporary 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active

M1・M2 MacでIPアドレスを調べるコマンドはifconfig en0です。

僕のローカル環境のIPアドレスは192.168.10.103です。192.168.10.103はあくまでローカルIPアドレスであることを押さえておきましょう。

Amazon 最新ランキング(プライムビデオ)

② MohistMC 1.18.2をダウンロード

MohistMC 1.18.2をダウンロード
MohistMC 1.18.2をダウンロード
  • MohistMC
    • 1.7.10(非推奨)、1.12.2、1.16.5、1.18.2(testing)、1.19.2(Dev)
    • https://mohistmc.com/download

上記URLから最新のMohistMCサーバーmohist-1.18.2-90-server.jarをダウンロードすればオッケーです。

特にこだわりがない場合は、Latest(最新)のリンクからダウンロードすれば良いです。





③ MohistMCサーバーを起動する

PS C:\MohistMC> java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar

上がMohistMCサーバーを起動させるコマンドです。

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

初回起動時に使用する言語を聞かれます。

jpnと打ってEnterで次に進みます。

サーバー起動例

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

PS C:\MohistMC> java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar

サーバーを起動するコマンドはjava -Xms1G -Xmx4G -jar mohistMC-1.0-SNAPSHOT.jarです。

サーバー起動時にはポート番号などの設定値が表示されます。

起動時の表示にサーバー情報が出る!

03:23:29 [INFO ] 0.0.0.0:25565上でサーバーを開始しています

起動時の表示を見れば、調べなくてもサーバー情報が色々分かります。

起動時には表示を見る癖をつけると良いでしょう。

Amazon 最新ランキング(ゲーム)

④ ローカルマシン(M1・M2 Mac)のポート開放

なんとMac(M1・M2含む)ではファイアーウォールがデフォルトで無効
なんとMac(M1・M2含む)ではファイアーウォールがデフォルトで無効

Mac(M1・M2含む)でポート開放をしましょう。

とは言え、Macはデフォルトでファイアーウォールがオフ(無効)になっています。

なので、マイクラのポート開放に関わらず、Macを買ったら必ずファイアウォールをオン(有効)にしてください。アプリでは必ずポートを利用する通信が発生しているからです。

ファイアウォールがオフ(無効)だと、セキュリティ的には"ガラ空き"で使っていることになります。

例:OpenJDK(Java)のポートを開放する

M1・M2 Macでポップアップ表示されるポート開放画面(OpenJDKの場合)
M1・M2 Macでポップアップ表示されるポート開放画面(Nukkitサーバーの場合)

Mac(M1・M2含む)でOpenJDK(Java)ポートを解放しましょう。

ファイアウォールをオンにした状態で、マイクラサーバーを起動させてください(Javaを実行します。)。

マイクラサーバープログラムを実行すると自動でポート開放画面がポップアップ表示されます(上の画像)。

これを「許可」をすれば、ポート開放が完了します。

厳密には、Javaプログラムをネットワーク上で受信する許可です。

  • Java版マイクラサーバー受信ポート:25565/TCP
  • 統合版マイクラサーバー受信ポート:19132/UDP

つまり、Javaで実行されるプログラムすべてが受信許可される設定です。

Mac(M1・M2含む)のファイアウォールは個別に受信ポートを設定するわけではなく、プログラムごとで受信設定します。

⑤ 接続テスト1:ローカル環境からサーバーに接続する【Java版】

IPアドレスの確認、ローカルマシンのポート開放も済んだので、ローカル環境からサーバーに接続テストをしましょう(以下、ローカル接続テストと言います。)。

下記手順で進めましょう。

ローカル接続テスト手順

  • 1)Java版マイクラサーバーを起動する。
  • 2)IPアドレス・ポート番号を再度確認する。
  • 3)マイクラランチャーをバージョン1.18.2にする。
  • 4)自宅のパソコンからサーバーにアクセスする。

当然、IPアドレス、ポート番号が必要になるので、どこかにメモっておきましょう。

先ずはサーバーを起動しましょう。

1)Java版マイクラサーバー「MohistMC」を起動する。

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

PS C:\MohistMC> java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar


 __    __   ______   __  __   __   ______   ______
/\ "-./  \ /\  __ \ /\ \_\ \ /\ \ /\  ___\ /\__  _\
\ \ \-./\ \\ \ \/\ \\ \  __ \\ \ \\ \___  \\/_/\ \/
 \ \_\ \ \_\\ \_____\\ \_\ \_\\ \_\\/\_____\  \ \_\
  \/_/  \/_/ \/_____/ \/_/\/_/ \/_/ \/_____/   \/_/


Welcome to Mohist ! - Mohist Developement Group
Update in check...
If you don't want to enable update check, set check_update in mohist-config/mohist.yml to false
No update found, latest version: (1.18.2-90-1.18.2-90) current version: (1.18.2-90-{2})
cpw.mods.cl.ModuleClassLoader@12c7a01b
2022-09-09 06:15:06,744 main WARN Advanced terminal features are not available in this environment
[06:15:06] [INFO]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 40.1.73, --fml.mcVersion, 1.18.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220404.173914]
[06:15:06] [INFO]: ModLauncher 9.1.3+9.1.3+main.9b69c82a starting: java version 17.0.4.1 by Microsoft
:
:
:
[06:15:29] [INFO]: Starting minecraft server version 1.18.2
[06:15:29] [INFO]: Loading properties
[06:15:29] [INFO]: Default game type: SURVIVAL
[06:15:29] [INFO]: Generating keypair
[06:15:30] [INFO]: Starting Minecraft server on *:25565
[06:15:30] [INFO]: Using default channel type
[06:15:30] [INFO]: This server is running Mohist version 1.18.2 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT, Forge version 40.1.73)
[06:15:30] [INFO]: Forge Injected Bukkit!
[06:15:31] [INFO]: Debug logging is enabled
[06:15:31] [INFO]: Server Ping Player Sample Count: 12
[06:15:31] [INFO]: Using 4 threads for Netty based IO
[06:15:31] [INFO]: Preparing level "world"
[06:15:31] [INFO]: Server permissions file permissions.yml is empty, ignoring it
[06:15:31] [INFO]: Preparing start region for dimension minecraft:overworld
:
:
:
[06:15:45] [INFO]: Time elapsed: 13680 ms
[06:15:45] [INFO]: Done (14.450s)! For help, type "help"
[06:15:45] [INFO]: Successfully initialized permission handler forge:default_handler

サーバーを起動させるコマンドはjava -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jarです。

2)IPアドレス・ポート番号を再度確認する。

% ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 3c:a6:f6:39:80:31 
	inet6 fe80::a0:9cb4:a1ea:7f44%en0 prefixlen 64 secured scopeid 0xb 
	inet 192.168.10.103 netmask 0xffffff00 broadcast 192.168.10.255
	inet6 240b:250:89e0:d200:1c6c:b923:d997:677d prefixlen 64 autoconf secured 
	inet6 240b:250:89e0:d200:7c09:806b:dd61:651c prefixlen 64 autoconf temporary 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active

M1・M2 MacでIPアドレスを調べるコマンドはifconfig en0です。

僕のローカル環境のIPアドレスは192.168.10.103です。192.168.10.103はあくまでローカルIPアドレスであることを押さえておきましょう。

ポートは上のサーバー起動の表示から25565/TCPだと分かります。

3)マイクラランチャーをバージョン1.18.2にする。

起動構成を開いて「新規作成」を押します。

バージョン欄から「release 1.18.2」を選びます。そして「作成」を押します。

ちなみに「名前」は任意です。本記事では「MohistMC」にしました。

「MohistMC 1.18.2」を選んでからマイクラを起動します。

4)自宅のパソコン(ローカル環境)からサーバーにアクセスする。

ローカル環境からサーバーに接続する端末選びですが「自宅のネットに接続したパソコン」を使うと良いでしょう。

細かなことが分からなければ、とりあえず「自宅のネットに接続したパソコン」でサーバーに接続してみて下さい。

M1・M2 Macで自宅サーバー(マイクラ Java Edition)にローカル接続テスト!
M1・M2 Macで自宅サーバー(マイクラ Java Edition)にローカル接続テスト!

「自宅のネットに接続したパソコン」でMinecraftを起動します。

次に「マルチプレイ」を押します。

「サーバーを追加」を押します。

Java版マイクラ自宅サーバーのアドレス(ローカル)を追加
Java版マイクラ自宅サーバーのアドレス(ローカル)を追加

サーバーアドレスにIPアドレス:ポートの組み合わせで入力します。

僕の環境では192.168.10.103:25565です。

入力したら「完了」を押します。

Java版Minecraftサーバーにローカルから接続テスト
Java版Minecraftサーバーにローカルから接続テスト

サーバーを起動させているのでオンライン情報📶が表示されてます。

そのまま「サーバーに接続」を押します。

Java版マイクラ自宅サーバーに接続中
Java版マイクラ自宅サーバーに接続中

サーバー接続中の表示になるので暫く待ちます。

M1・M2 MacでMohistMCサーバー(マイクラ Java Edition)にログイン!
M1・M2 MacでMohistMCサーバー(マイクラ Java Edition)にログイン!

ログインできれば、ローカル接続テストは成功です。

MohistMCサーバー(マイクラ Java Edition)プロンプト
PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

PS C:\MohistMC> java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar


 __    __   ______   __  __   __   ______   ______
/\ "-./  \ /\  __ \ /\ \_\ \ /\ \ /\  ___\ /\__  _\
\ \ \-./\ \\ \ \/\ \\ \  __ \\ \ \\ \___  \\/_/\ \/
 \ \_\ \ \_\\ \_____\\ \_\ \_\\ \_\\/\_____\  \ \_\
  \/_/  \/_/ \/_____/ \/_/\/_/ \/_/ \/_____/   \/_/


Welcome to Mohist ! - Mohist Developement Group
Update in check...
If you don't want to enable update check, set check_update in mohist-config/mohist.yml to false
No update found, latest version: (1.18.2-90-1.18.2-90) current version: (1.18.2-90-{2})
cpw.mods.cl.ModuleClassLoader@4df5bcb4
:
:
:
[06:37:36] [INFO]: Starting minecraft server version 1.18.2
[06:37:36] [INFO]: Loading properties
[06:37:36] [INFO]: Default game type: SURVIVAL
[06:37:36] [INFO]: Generating keypair
[06:37:36] [INFO]: Starting Minecraft server on *:25565
[06:37:36] [INFO]: Using default channel type
:
:
:
[06:37:47] [INFO]: Disconnecting Player (server is still starting): Server is still starting! Please wait before reconnecting.
[06:37:47] [INFO]: Disconnecting Player (server is still starting): Server is still starting! Please wait before reconnecting.
[06:37:48] [INFO]: Time elapsed: 9747 ms
[06:37:48] [INFO]: Done (10.547s)! For help, type "help"
[06:37:48] [INFO]: Disconnecting Player (server is still starting): Server is still starting! Please wait before reconnecting.
[06:37:48] [INFO]: Successfully initialized permission handler forge:default_handler
[06:37:59] [INFO]: UUID of player nyandaisensei is 052f88f6-b100-449d-91ca-fe677962b5f6
[06:37:59] [INFO]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@4e9858e5
[06:37:59] [INFO]: nyandaisensei[/192.168.10.101:59056] logged in with entity id 100 at (64.68709352732022, 163.0, 18.025209227284595)

WindowsのJava版マイクラサーバー(MohistMCサーバー)に"nyandaisensei"でログインできてるのが分かると思います。

念の為、サーバーのプロンプトも確認しておきましょう。

特に、この表示に注目してください。

[06:37:59] [INFO]: nyandaisensei[/192.168.10.101:59056] logged in with entity id 100 at (64.68709352732022, 163.0, 18.025209227284595)

nyandaisensei[/192.168.10.101:59056]

このアドレスは、グローバルIPアドレスか、ローカルIPアドレスか?どちらでしょうか?

答えはローカルIPアドレスです。

これはローカルサーバーの接続テストです。

まだ、外部にサーバーを公開していないので外の友達からはこのサーバーにはアクセスできません。

では、次にローカルサーバーを外部に公開していきましょう。

Amazon 最新ランキング(フィギュア)

⑥ 外部に公開!ルーター「Aterm WG2600HS」でTCPポート転送の設定例

サーバーを外部に公開するのはここからが本番です。

サーバーを外部に公開するためには、ルーター側にポート転送設定を行います。

場合によってはパケットフィルタ設定(ルーター上のポート開放)も必要になるかも知れません(今回は不要です。)。

※「ルーター」「ポート転送」など「用語解説」は下にあります。

先ずはルーターの設定画面を開こう

NEC製ルーター「Aterm WG2600HS」の設定画面

ルーターのURLは、ローカルIPアドレスの最下段を"1"にしたアドレスです。

ローカルIPアドレス192.168.10.101なら、ルーターのURLは192.168.10.1です。

僕の環境では、ルーターの設定画面を開くには、URL欄にhttps://192.168.10.1でアクセスしました。

また、ログインに必要な「ユーザー名」などは注意書きされてます。

「ユーザー名」には「admin」と半角小文字で入力し、「パスワード」には、本商品本体のラベルに記載された数字6桁のパスワード(Web PW)を入力して、[ログイン]をクリックしてください。

機器によっては取扱説明書などにユーザー名などの初期設定値が記載されていたりもします。

他の機器も多少違いはあれど、ほとんど同じです。

ポートマッピングの設定画面を開く

NEC製ルーター「Aterm WG2600HS」のトップ画面

ルーターにログインしたら、上記画面が表示されます。

中段右側に「ポートマッピング設定」という項目があるので、それをクリックします。

ちなみに、ルーターAterm WG2600HSではポート転送を"ポートマッピング"と呼んでいます。

BUFFALOなどのルーター機器だと"ポートフォワーディング"と表示されてるかも知れません。ポート転送=ポートマッピング=ポートフォワーディング、すべて同じ意味です。

※「ルーター」「ポート転送」など「用語解説」は下にあります。

ポートマッピングの設定をする

NEC製ルーター「Aterm WG2600HS」でポートマッピング(ポート転送)するための設定画面
NEC製ルーター「Aterm WG2600HS」でポートマッピング(ポート転送)するための設定画面

画像はAterm WG2600HSのポート転送設定の画面です。

上段から

  • 利用可能ポート:変換対象ポートで利用可能なポート
  • NATエントリ追加:ここにポート転送設定を入力します。

以下でマイクラサーバーを外部に公開するためのポート転送の設定例を解説していきます。

Java版マイクラサーバーを外部に公開:ポート転送の設定例

ポート転送の設定例

今回の例ではJava版マイクラサーバーを想定して下記のネットワーク環境で解説します。自分の環境に読み替えて設定して下さい。

ネットワーク環境

  • WAN側(外部):グローバルIPアドレス:ポート(36128/TCP)
  • LAN内サーバー(内部):192.168.10.103:25565/TCP

ポートは内部と外部ともに25565/TCPで統一した方が分かりやすいですが、ルーターで設定できる「利用可能ポート」の範囲外なのでWAN側ポートは36128/TCPとしました。

ちなみに、WAN側ポートとLAN側ポートを違う番号にしてアクセスさせた方が、セキュリティ的にははるかに強くなります。

WAN側ポートを規定値から変えるのは、セキュリティを上げる重要なテクニックです。

理由は、Java版マイクラ鯖は25565/TCPと誰もが知っているからです。

これはグローバルIPアドレスを知られるとグローバルIPアドレス:25565で好き放題にアクセスされる状態で危険なんです。

ルーターは中継地点

中継地点となるルーターは、WAN側ポート36128のアクセスをLAN内サーバー192.168.10.103:25565道案内する役割です。これをポート転送と言います。

サーバー接続の流れ

  • 外部からはグローバルIPアドレス:ポート(36128/TCP)でサーバーにアクセスする。
  • 中継地点のルーターはポート:36128192.168.10.103:25565/TCPにポート転送する。
  • その結果、マイクラサーバー192.168.10.103:25565/TCPが接続に応答する。

さて、上記の内容で、ルーターに実際に設定してみましょう。

WAN側ポート36128/TCP
LAN側ポート192.168.10.103:25565/TCPに転送する。

WAN側ポート36128/TCPをLAN側ポート192.168.10.103:25565/TCPにポート転送する設定をします。

ポート転送

  • LAN側ホスト:マイクラサーバー192.168.10.103
  • プロトコル:TCP
  • 変換対象ポート番号:WAN側ポート(今回は36128/TCP
  • 宛先ポート番号:LAN側ポート(今回は25565/TCP

どうでしょう、簡単じゃないですか?

これでマイクラサーバーが外部に公開されます。

ただ、必ず外部から接続テストをしてください(確認する癖をつけましょう。)。

注意:「利用可能ポート」で設定する

機器にもよりますが、変換対象ポート(WAN側ポート)は「利用可能ポート」の範囲内で設定しましょう。

「利用可能ポート」の制限が無いなら、WAN側ポートにどんなポート番号を設定しても構いません。



⑦ 接続テスト2:グローバル環境からサーバーに接続する

マインクラフト"Java Edition"はM1・M2 Macでも起動する!
マインクラフト"Java Edition"はM1・M2 Macでも起動する!

ここまで来れば、あと一歩です。

今度はグローバル環境(外部)からサーバーに接続テストを行います(以下、グローバル接続テストと言います。)。

外部からの接続テストのために事前に準備するものは下の三つです。

準備するもの

  • 1)CMANグローバルIPアドレスを確認する
  • 2)CMANでPortチェックテスト
  • 3)用意できるなら:友達の家のPCから接続テスト

ちなみに、グローバルIPアドレスの確認はCMANで手軽できます。

1)CMANでグローバルIPアドレスを確認する

CMANでグローバルIPアドレスを確認する(黒塗り)

上はCMANでグローバルIPアドレスを調べた画面です。

画像の黒塗り箇所にグローバルIPアドレスが表示されています。

2)CMANでPortチェックテスト

赤枠の箇所を入力します。

ホスト名はグローバルIPアドレス、チェックポート番号にはWAN側ポート:36128を入力します。

赤枠の箇所を入力したら「Portチェック実行」を押します。

外部から接続が成功するとポート:36128にアクセスできました」と表示されます。

ただし、ここのテストに失敗しても、マイクラのサーバーに接続できることがあるので注意してください。

ポートチェックテストに失敗するケース

  • Pingに応答しないサーバー
  • UDPでのポートチェック
  • 上のポート転送設定を間違えている

UDPでのポートチェック」については、Java版マイクラではTCPポートを使用するので気にしなくて大丈夫です。統合版マイクラサーバーは、UDPポートでのポートチェックになるので注意が必要です。

CMANのポートチェックが失敗しても、友達の家からサーバーに接続できる可能性も20%くらいの確率であります。

ちなみに、この「2)CMANでPortチェックテスト」でアクセスできましたが表示されたら、下の3)は飛ばしても良いです。すでに外部にサーバーは公開されてるので友達と一緒に遊べます。

3)用意できるなら:友達の家のPCから接続テスト

外部からの接続テストに、友達の家のPCを利用できるなら、友達に接続テストを頼むのもアリです。

ちなみに、この接続テスト2(グローバル接続テスト)の場合、家の外にあるPCを使わないとテストにならないので注意してください。

サーバーがある家の中から、同じネット環境下でグローバルIPアドレスを使ってテストしても100%失敗します。

家の中はローカルエリアネットワーク(LAN)なので、ローカルIPアドレス(192.168.xx.xx)を使えばサーバーにアクセスできます。

グローバル(外部)とローカル(内部)の違いをきちんと理解した上で、接続テストをしましょう。

Java版と統合版(Bedrock版)のMinecraft(マイクラ)の違い

引用:Minecraft

マインクラフトには、Java版と統合版があります。サーバー立てるならどちらが良いか考える必要があります。

大きな違いは"対応デバイス"です。

JAVA版と統合版の違い

JAVA版統合版(Bedrock版)
オススメ★★★★★★★★★☆
対応デバイスWindows、Mac、LinuxWindows 10、スマホ(iOS・Android)、Xbox Series X|S、Xbox One、Nintendo Switch、PlayStation 4、Kindle Fire、Fire TV、Oculus Rift
注意:Mac、Linuxは非対応
MOD・Plugin両方○プラグインのみ
サーバー構築立て易いNukkitサーバーは立て易い
ひとことJAVA版はModが使える。スマホ・Nintendo Switch勢とクロスプレイ出来るのはデカい。

統合版のマイクラサーバーは、スマホとNintendo Switchをカバーします。

統合版マイクラはMac、Linux以外のあらゆるデバイスでプレイしたい時にオススメです。

Amazon 最新ランキング(プライムビデオ)

Amazon最新ランキング(コミック)

ネットワークIT用語解説

ネットワークで使うIT用語を解説していきます。

「ポート」や「ポート開放」「ファイヤーウォール」などの用語をセットで覚えましょう。

IPアドレス

IPアドレスには2種類あります。

グローバルIPアドレス、ローカルIPアドレス

ローカルIPアドレスの呼び方

  • ローカルIPアドレス
  • プライベートIPアドレス

ポート

ポートのイメージはサービスを受け付ける個々の料金所です。

インターネット上では、パケット車がたくさん走っています。すべてのパケット車が料金所を通れるわけではなく、開放されているポート(料金所)のみ通過できます。

WAN側ポート、LAN側ポートと使用するデバイスごとにポートを設定する必要があります。

ポートはプログラム(Webサービス)ごとに使用しています。

デフォルトで開放されているポートを「Well Known Port(ウェルノウンポート)」と言います。例えば、http通信は80番ポートを使っています。

実はみんな自らポートを開閉させている!

実は知らない内に自らポートを開閉させています。

プログラムのインストール時に「プログラムを許可しますか?」に承諾することで、みんな自分のコンピューターのポートを開放しています。

Well Known Port 以外のポートはデフォルトで閉じられているからです。

ポート転送

ポート転送は、WAN側に来たアクセス(パケット)をLAN側の機器に転送する設定です。

ちなみに、今回のNEC製ルーターでは、ポート転送とは呼び方が違う「ポートマッピング設定」という表記です。

ポート転送の呼び方

  • ポート転送
  • ポートマッピング
  • ポートフォワーディング
  • ポートフォワード

上のようにルーター機器によって、同じ意味でも表記が様々です。

ルーター

ルーターは高速道路と一般道の中継地点のイメージです。

高速道と一般道の流れが変わる中継地点に各料金所(ポート)があって、車両を一台一台丁寧に検閲していきます。

ちょうどWAN(グローバル)が高速道で、LAN(ローカル)が一般道みたいなイメージです。

WANからLANに入るには、必ず中継地点(ルーター)の案内が必要になるわけです。

高速道のまま突っ走っても、どこに行けば良いのか分からないので中継地点(ルーター)で目的地を教えてもらったりします。それがポート転送(目的地の案内)です。

ファイヤーウォール

「ファイヤーウォール」は、コンピュータネットワークにおいて、コンピュータセキュリティの保護、その他の目的のため、通信を制御・阻止(パケットフィルタリング)する機能を言います。

「ファイヤーウォール」は、パソコン、スマホ、ルーターなどすべてのデバイスに搭載されている機能と理解しておいてください。

高速道路の料金所で「許可された車だけを通す仕組み(機能)」です。

Java版Minecraft にセキュリティ上の脆弱性【Log4Shell】

参考:https://www.minecraft.net/ja-jp/article/important-message--security-vulnerability-java-edition-jp



M1・M2 Mac でITスキル向上「とりあえず、マイクラ鯖を立てよう」!

マインクラフト統合版サーバーに「nyandaisensei」でログイン!
マインクラフト統合版サーバーに「nyandaisensei」でログイン!

M1・M2 Mac でマイクラ鯖を構築すれば簡単にITスキルが向上します。マイクラ鯖を構築するだけでネットワークどころか会社で使える実用技術を芋づる式で獲得できます。

しかも、"Parallels"の仮想環境で作業するので"買いたてホヤホヤ"の新品Macの環境を一切汚しません。

M1・M2 Macを使う人はWindows仮想環境を構築するはずなので、どちらにしろ"Parallels"を必ず使うと思います。

Parallelsでマイクラ鯖

  • Ubuntu 22.04 LTS ARM64のLinux仮想環境
  • Linuxコマンド
  • Git
  • 仮想環境のネットワーク知識
  • 仮想環境はDockerにも応用

仮想環境なので何度でもスクラップできるのがメリットです。

特に、エンジニアの方にオススメです。

M1・M2 Macでの開発はParallels仮想環境でやりましょう!メインPCで開発するのは環境汚染です!

模範回答

Amazon 最新ランキング(フィギュア)

「Bizarre」ゲームストリーミングチーム!

Bizarreメンバー:リンドウ

「Bizarre」への参加・脱退は「Twitterのブロック解除」なみに簡単です。
「Bizarre」よくあるご質問も読んで見て下さい。

コメント

コメントする

目次