M1・M2 MacにNukkitで無料の統合版マイクラサーバーを立てる

  • URLをコピーしました!
このエントリーをはてなブックマークに追加
マインクラフト統合版サーバーに「nyandaisensei」でログイン!
M1・M2 Macに構築したマインクラフト統合版サーバーに「nyandaisensei」でログイン!
マイクラサーバー構築記事一覧

Java版マイクラサーバー

Windows 11

Ubuntu

※Java版サーバーまとめ

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

Windows 11

M1・M2 Mac

Ubuntu

Parallels仮想環境

Docker

  • Nukkit
ふる
ふる

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

 

Twitterのフォロワーが10人しかいません!

どうかフォローください!

 

@na65125038

MOMOHUKU(ふる)

 

MOMOHUKU - にほんブログ村

 

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

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

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

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

現状検索してヒットする記事ではマイクラ鯖を外部に公開するのは無理だからです。サーバーを外部に公開したいのなら、やることは“ポート開放”ではありません。

誰が?サーバーを立てる方法を”ポート開放”と言い始めたのか?

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

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

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

外部に公開できないマイクラ記事

  • 外部公開≠ポート開放
  • ポートなど解説しても、素人解説で余計に「分からない」。
  • 締め括りは「ConoHa WING」のアフィリエイト

ポート開放を延々と間違って解説してい記事を読んでも外部にサーバーを公開できません。

“家の外にいる友達”とは一生遊べということです。統合版マイクラサーバーなら尚更です。“何かやり方が違う気がする”からです(気のせいですが。)。

この記事を読んでもらえれば確実に統合版マイクラサーバーを構築できます。

本記事の内容で外部から接続できるのは確認しています(エビデンスの画像も差し込んでいます。)。

内容的には、かなりてんこ盛りですが。

ポートについて確実に解説しているので、じっくり読んでみてぜひ参考にしてみください。

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

目次

M1・M2 MacではなくParallels仮想環境を使おう!※Macで作業するのはオススメできない

この記事は、M1・M2 Macに“直接”統合版マイクラサーバー(Nukkitサーバー)を構築する内容です

当然、M1・M2 MacでもNukkitサーバーは何ら問題なく起動します。

ただ、M1・M2 Macで直接作業するのをオススメしません。

理由はスクラップ&ビルドしづらいからです。それにM1・M2 Macでも必ずWindowsを使うので、それなら最初から仮想環境にマイクラ鯖を構築した方がいいと言うことです。

M1・M2 Mac上で作業するのはダメ

  • Macの環境が汚れる。
  • 安易にスクラップ&ビルドできない。
  • Windows仮想環境をどうせ使う。
  • 開発しづらい。

そういう訳で、Parallels®︎ Desktop 18 for Mac を使って、Windows 11か、Linuxかの仮想環境に統合版マイクラサーバーを構築するのが良いです(下の関連記事で紹介します。)。

Parallelsを使えば、Windowsでも、LinuxでもOS環境を数分で構築できます。

仮想環境でも普通にマイクラは動きますし外部にも公開できます。何より仮想環境でマイクラ鯖を構築するだけで、とても良いITの勉強になります。

それでも、M1・M2 Macに統合版マイクラサーバーを構築しようとする方は、本記事を参考にして下さい。

本記事で立てる統合版マイクラサーバー環境

サーバー環境

  • M1・M2 Mac ※arm64環境
  • Nukkitサーバー
  • Javaランタイム環境
  • フォルダ場所は~/Downloads/Nukkitで作業 ※場所はどこでも良いです
  • ポート開放ツールを使わない

この環境に疑問があるかも知れません。

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

M1・M2 Macのマイクラ鯖はないはず?

M1・M2 Macで動く公式のマイクラBE鯖はありません。

BE鯖はARM64プロセッサー上で動かないはず?

動きませんが、x86環境をエミュレートすればARM64環境でも動作します。

が、面倒なのでやりません。

※ITは楽できるなら楽に済ませるのが正義だからです。

なんでNukkitサーバーを使うのか?

Javaランタイム環境上で動作するからです。

Javaランタイム環境ならARM64プロセッサーなど関係なくどんなデバイス上でも鯖の起動が可能になります。

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

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

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 をbrew upgradeで更新する

Homebrew のパッケージマネージャーを更新しましょう。Homebrewはbrew upgradeで更新します。

Homebrewの更新コマンドにはbrew updatebrew upgradeがあります。brew upgradebrew updateを兼ねて実行します。

brew upgrade実行例

% brew upgrade          
Running `brew update --preinstall`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).

==> New Formulae
adamstark-audiofile                      mariadb@10.7
astro                                    markdown-toc
:
:
:
==> Upgrading git
  2.36.1 -> 2.37.2 

:
:
:
==> zsh-completions
To activate these completions, add the following to your .zshrc:

  if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

    autoload -Uz compinit
    compinit
  fi

You may also need to force rebuild `zcompdump`:

  rm -f ~/.zcompdump; compinit

Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting
to load these completions, you may need to run this:

  chmod -R go-w '/opt/homebrew/share/zsh'
==> git

The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.

zsh completions and functions have been installed to:
  /opt/homebrew/share/zsh/site-functions

brew upgradeを実行すると、一行目にRunning brew update --preinstall…が表示されてbrew updateされているのが分かります。

その後に==> New Formulaeが表示されて、Homebrewにインストールされているパッケージの更新が始まります。

ちなみに、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アドレスであることを押さえておきましょう。

② Nukkitサーバーをダウンロード【M1・M2 Mac】

Jenkins Branch masterから最新のNukkitをダウンロード
Jenkins Branch masterから最新のNukkitをダウンロード
  • Jenkins Cloudburst – Nukkit Branch master
    • 最新のnukkit-1.0-SNAPSHOT.jar
    • https://ci.opencollab.dev/job/NukkitX/job/Nukkit/job/master/

上記URLから最新のNukkitサーバーnukkit-1.0-SNAPSHOT.jarをダウンロードすればオッケーです。赤枠のリンクからjarファイルをダウンロードできます。

gitでNukkitサーバーを構築する方法もあります。

③ Nukkitサーバーを起動する【M1・M2 Mac】

Last login: Mon Sep  5 02:30:20 on ttys000
                                                                                
% java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
02:40:35 [INFO ] Loading nukkit.yml ...
02:40:35 [INFO ] Loading server.properties ...
02:40:35 [INFO ] 日本語 (jpn) を言語に選択しました
02:40:35 [INFO ] Minecraft: BEサーバー(v1.19.21に対応)を起動しています
02:40:35 [INFO ] Selected Zlib Provider: 2 (cn.nukkit.utils.ZlibThreadLocal)
02:40:35 [INFO ] 0.0.0.0:19132上でサーバーを開始しています
02:40:35 [INFO ] このサーバーはNukkitのバージョンgit-40701a1「」(API 1.0.14)で動作しています
02:40:35 [INFO ] NukkitはGPLライセンスに基づき配布されています
02:40:35 [INFO ] Loading runtime items...
02:40:36 [INFO ] Loading recipes...
02:40:36 [INFO ] Loaded 1509 recipes.
02:40:36 [INFO ] Successfully loaded 0 resource packs
02:40:36 [INFO ] ワールド "world" を読み込んでいます
02:40:36 [INFO ] Preparing start region for level "world"
02:40:36 [INFO ] ワールド "nether" を読み込んでいます
02:40:36 [INFO ] Preparing start region for level "nether"
02:40:36 [INFO ] GS4ステータス リスナーを開始
02:40:36 [INFO ] クエリポートを設定: 19132
02:40:36 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
02:40:36 [INFO ] デフォルトゲームタイプ: サバイバルモード
02:40:36 [INFO ] 起動完了(0.571秒)! "help"または"?"でヘルプを表示
> 

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

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

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

02:40:36 [INFO ] クエリーは 0.0.0.0:19132 で動作しています

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

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

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

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

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

ローカル接続テスト手順

  • 1)統合版マイクラサーバーを起動する。
  • 2)IPアドレス・ポート番号を再度確認する。
  • 3)Wifiスマホで統合版サーバーにアクセスする。

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

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

1)統合版マイクラサーバーを起動する。

Last login: Mon Sep  5 02:30:20 on ttys000
                                                                                
% java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
02:40:35 [INFO ] Loading nukkit.yml ...
02:40:35 [INFO ] Loading server.properties ...
02:40:35 [INFO ] 日本語 (jpn) を言語に選択しました
02:40:35 [INFO ] Minecraft: BEサーバー(v1.19.21に対応)を起動しています
02:40:35 [INFO ] Selected Zlib Provider: 2 (cn.nukkit.utils.ZlibThreadLocal)
02:40:35 [INFO ] 0.0.0.0:19132上でサーバーを開始しています
02:40:35 [INFO ] このサーバーはNukkitのバージョンgit-40701a1「」(API 1.0.14)で動作しています
02:40:35 [INFO ] NukkitはGPLライセンスに基づき配布されています
02:40:35 [INFO ] Loading runtime items...
02:40:36 [INFO ] Loading recipes...
02:40:36 [INFO ] Loaded 1509 recipes.
02:40:36 [INFO ] Successfully loaded 0 resource packs
02:40:36 [INFO ] ワールド "world" を読み込んでいます
02:40:36 [INFO ] Preparing start region for level "world"
02:40:36 [INFO ] ワールド "nether" を読み込んでいます
02:40:36 [INFO ] Preparing start region for level "nether"
02:40:36 [INFO ] GS4ステータス リスナーを開始
02:40:36 [INFO ] クエリポートを設定: 19132
02:40:36 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
02:40:36 [INFO ] デフォルトゲームタイプ: サバイバルモード
02:40:36 [INFO ] 起動完了(0.571秒)! "help"または"?"でヘルプを表示
> 

サーバーを起動させるコマンドはjava -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.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アドレスであることを押さえておきましょう。

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

3)Wifiスマホで統合版サーバーにアクセスする。

ローカル環境からサーバーに接続する端末選びですが「自宅のWifiに接続したスマホ」を使うと良いでしょう。

細かなことが分からなければ、とりあえず「自宅のWifiに接続したスマホ」でサーバーに接続してみて下さい。

「自宅のWifiに接続したスマホ」を準備したら、Minecraftのアプリを起動します。

次に「遊ぶ」を押します。

次に上部の「サーバー」から「サーバーを追加」を押します。

サーバー情報の入力が出るので、調べておいたローカルIPアドレス、ポートを入力します。

最後に「保存」を押して次に進みます。

サーバーが追加されたので、サーバーを選択して「サーバーに参加」を押せば、起動しているローカルサーバーに接続します。

何やら注意事項が表示されるので確認して「続行」を押します。

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

M1・M2 MacでNukkitサーバーにローカル接続!
M1・M2 MacでNukkitサーバーにローカル接続!

サーバーにログインできたら、ローカル接続テストは成功です。

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

「nyandaisensei」からUbuntu 22.04 LTS ARM64仮想環境に建てた統合版マイクラサーバー(Nukkitサーバー)にログインできてるのが分かると思います。

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

Last login: Mon Sep  5 04:13:34 on ttys001
% java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
04:15:50 [INFO ] Loading nukkit.yml ...
:
:
:
04:15:51 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
04:15:51 [INFO ] デフォルトゲームタイプ: サバイバルモード
04:15:51 [INFO ] 起動完了(0.564秒)! "help"または"?"でヘルプを表示
04:18:29 [INFO ] nyandaisensei[/192.168.10.102:60434] がエンティティID 1 として (world, 128.0, 66.0, 128.0)にログインしました
04:18:30 [INFO ] nyandaisensei がゲームに参加しました
> 

04:18:29 [INFO ] nyandaisensei[/192.168.10.102:60434] がエンティティID 1 として (world, 128.0, 66.0, 128.0)にログインしました

nyandaisensei[/192.168.10.102:60434]

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

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

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

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

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

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

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

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

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

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

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

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マイクラサーバー外部公開時のポート転送の設定例

ポート転送のUDPポート設定例
ポート転送のUDPポート設定例

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

ネットワーク環境

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

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

ちなみに、この方がセキュリティ的には、はるかに強くなります。

というか、WAN側ポートを変えるというのは、セキュリティを上げるテクニックです。

理由は、Java版マイクラ鯖は19132/UDPと誰もが知っているからです。これはグローバルIPアドレスを知られるとグローバルIPアドレス:19132で好き放題にアクセスされる状態で危険なんです。

ルーターは中継地点

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

サーバー接続の流れ

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

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

WAN側ポート19744/UDP
LAN側ポート192.168.10.103:19132/UDPに転送する。

WAN側ポート19744/UDPをLAN側ポート192.168.10.103:19132/UDPにポート転送する設定をします。

ポート転送

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

どうでしょう、簡単じゃないですか?これでマイクラサーバーを外部に公開できます。

ただし、必ず外部から接続テストをして確認してください。

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

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

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

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

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

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

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

準備するもの

  • 1)グローバルIPアドレス
  • 2)4G(5G)回線に繋がったスマホ(Wifiをオフにしたスマホ)

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

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

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

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

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

2)4G(5G)回線に繋がったスマホ(Wifiをオフにしたスマホ)

この作業は4G(5G)回線に繋がったスマホ(wifiをオフにしたスマホ)でやっていきます。

マインクラフトのアプリの「サーバーを追加」から、確認したグローバルIPアドレスでサーバーを追加します。

サーバーアドレス欄にグローバルIPアドレス(黒塗り)を入力しています。

外部からアクセスするポートは「19744」なので注意してください。

ルーターの設定等が上手くいっていれば、上記のようにPing値が表示されます。

このPing値が表示されていれば、外部から統合版マイクラサーバーが“見えている状態”です。

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

サーバーに接続中の画面になります。

M1・M2 Macで起動したNukkitサーバーにグローバル接続!
M1・M2 Macで起動したNukkitサーバーにグローバル接続!

見た目は同じですが、外部から統合版マイクラサーバー(Nukkitサーバー)に接続しています。

これで友達の家(外部)からでも、自分の家の統合版マイクラサーバーに入れるようになります。

Last login: Mon Sep  5 04:15:29 on ttys001
% java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
04:34:37 [INFO ] Loading nukkit.yml ...
04:34:37 [INFO ] Loading server.properties ...
04:34:37 [INFO ] 日本語 (jpn) を言語に選択しました
04:34:37 [INFO ] Minecraft: BEサーバー(v1.19.21に対応)を起動しています
04:34:37 [INFO ] Selected Zlib Provider: 2 (cn.nukkit.utils.ZlibThreadLocal)
04:34:37 [INFO ] 0.0.0.0:19132上でサーバーを開始しています
04:34:37 [INFO ] このサーバーはNukkitのバージョンgit-40701a1「」(API 1.0.14)で動作しています
04:34:37 [INFO ] NukkitはGPLライセンスに基づき配布されています
04:34:37 [INFO ] Loading runtime items...
04:34:37 [INFO ] Loading recipes...
04:34:37 [INFO ] Loaded 1509 recipes.
04:34:37 [INFO ] Successfully loaded 0 resource packs
04:34:37 [INFO ] ワールド "world" を読み込んでいます
04:34:37 [INFO ] Preparing start region for level "world"
04:34:37 [INFO ] ワールド "nether" を読み込んでいます
04:34:37 [INFO ] Preparing start region for level "nether"
04:34:37 [INFO ] GS4ステータス リスナーを開始
04:34:37 [INFO ] クエリポートを設定: 19132
04:34:37 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
04:34:37 [INFO ] デフォルトゲームタイプ: サバイバルモード
04:34:37 [INFO ] 起動完了(0.592秒)! "help"または"?"でヘルプを表示
04:35:27 [INFO ] nyandaisensei[/126.236.133.67:1048] がエンティティID 1 として (world, 128.0, 66.0, 128.0)にログインしました
04:35:27 [INFO ] nyandaisensei がゲームに参加しました
> 

統合版マイクラサーバーにログインしたので、プロンプトを確認してみましょう。

特に注目してもらいたいのは、ログイン箇所の表示です。

04:35:27 [INFO ] nyandaisensei[/126.236.133.67:1048] がエンティティID 1 として (world, 128.0, 66.0, 128.0)にログインしました

グローバル接続とローカル接続では、ログインしているユーザーのアドレスが違います。

IPアドレスの違い

  • グローバルIPアドレス:nyandaisensei[/126.236.133.67:1048]
  • ローカルIPアドレス :nyandaisensei[/192.168.10.102:60434]

アドレスを識別できると、どの段階でシステムがこけてるかを切り分けができるようになります。

また、必ず小から大に発展させるように取り組む癖をつけましょう。

つまりLANからWANに拡張させるということです。

  • ローカルのアクセスで問題が出たら、LAN内のPC本体の設定を疑う
  • グローバルのアクセスで問題が出たら、ルーター設定を疑う

など、問題の切り分けが容易になるからです。

トラブルシューティング:統合版マイクラサーバー「ネットワークに接続できないようです。」

統合版マイクラサーバーの接続エラー 「ネットワークに接続できないようです。ネットワーク接続を確認してください。」
統合版マイクラサーバーの接続エラー
「ネットワークに接続できないようです。ネットワーク接続を確認してください。」

統合版マイクラサーバーを建てて、いざ外部からサーバーに接続テストをすると

「ネットワークに接続できないようです。」

というエラーが表示されます。

このエラーはおそらく統合版マイクラサーバー構築で一番表示されるエラーだと思います。

このトラブルを解決するのはとても簡単です。

統合版マイクラサーバーの接続エラー 「ネットワークに接続できないようです。」は「モバイルデータを使用」をオンで解決!
統合版マイクラサーバーの接続エラー
「ネットワークに接続できないようです。」は「モバイルデータを使用」をオンで解決!

解決策は、大抵は「モバイルデータを使用」をオンにすることで解決します。

詳しくは下の記事を参考にしてみてください。

ネットワーク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に入るには、必ず中継地点(ルーター)の案内が必要になるわけです。

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

ファイヤーウォール

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

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

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

【記事PR】M1・M2 MacをゲーミングPC化する!Apexでゲーム配信しよう!

M1・M2 MacでもGeForce NOWならApexが起動する!
M1・M2 MacでもGeForce NOWならApexが起動する!

M1・M2 Macでゲーム配信しないのは「勿体ない」です。

M1・M2 Macは思っている以上に何でもできるハイスペックマシンだからです。

しかし、ほとんどのFPSゲームには、必ず「WindowsゲーミングPC」が必要になります。

ただ、これからはM1・M2 Macでゲームするのが普通です。

なぜなら、今後、ゲーミングPCは「クラウドGPUの時代」だからです。

GeForce NOWには無料のフリープランがあるので、とりあえず、試しにM1・M2 MacをWindowsゲーミングPC化できます。

今後、ますます「ゲーム配信」が活発になります。

GeForce NOWを使えば、母艦(M1・M2 Mac)のスペックなんか関係ないからです。

GeForce NOWなら「高額で巨大グラボ」が無くても、Windowsゲームが出来るわけです。

M1・M2 Macで「ゲーム配信」をするのをオススメします。

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

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

Bizarreメンバー:リンドウ

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

コメント

コメントする

目次