【無料】M1・M2 MacにParallels+Windowsで統合版マイクラサーバーを立てる!

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

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で統合版マイクラ鯖を立てる際に知っておくこと

今回は、M1・M2 Mac(ARM64)環境下に統合版マイクラ鯖(Bedrock版)を構築します。

M1・M2 Macを汚したくないので仮想環境(Windows11)を作って、その上で統合版マイクラサーバーを動かします。

少々無理があるんじゃないかとツッコミがあると思います。

ツッコミどころ

  • M1・M2 Mac
    • M1・M2 Macで動くマイクラBE鯖はないはず?
    • BE鯖はARM64プロセッサー上で動かないはず?
       
  • Parallels Desktop 18 for Mac
    • なんでParallels Desktop 18 for Macの仮想環境を使うのか?
       
  • 仮想環境はWindows11
    • なんでWindowsを使うのか?
       
  • Nukkitサーバー
    • なんで公式サーバーではなくNukkitサーバーを使うのか?
       
  • Parallels®︎ Desktop 18 for Mac仮想環境のネットワーク設定
    • 仮想環境へのサーバー接続ってどうやるのか?
       
  • ポート開放ツールを使わない
    • なんでポート開放ツールを使わないのか?

とツッコんで欲しいくらいです。

実は、M1・M2 Macでも関係なく統合版マイクラサーバーは動きます。

Javaで動作するNukkitサーバー(非公式)を使うからです。

その他にもきちんとした理由があります。

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

M1・M2 Macで動作する統合版マイクラ鯖はありません。

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

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

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

※ITは楽できるなら楽に済ませるのが良いからです。

なんで仮想環境を使うのか?

仮想環境を使う理由は、メインPCの環境を汚さないからです。

仮想環境なら簡単にスクラップ&ビルドできるので色々実験できます。

なんでParallels®︎ Desktop 18 for Macを使うのか?

M1・M2 Macに仮想環境を簡単に構築できるからです。Parallelsを使えば、誰でもクリック数回、数分で構築できます。

なんでWindows11を使うのか?

M1・M2 MacでもWindowsゲームがしたくなるからです。

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

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

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

仮想環境のネットワーク設定

下で詳しく解説しますが、ネットワークアダプタに設定してLAN上で単一マシンとして認識されるようにします。

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

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

本記事では仮想環境にネットワーク接続するので、ネットワークの理解が深まるのがポイントです。

長々説明するのは後からにします。

早速、サーバーを構築していきましょう。

無料でNukkit統合版マイクラサーバーを建てる!流れ

「無料で統合版マイクラサーバーを建てる!」流れは下の通りです。

鯖を建てる流れ

  • OS準備: Windows11仮想環境を構築
    • 「Parallels®︎ Desktop 18 for Mac」でWindows11を構築する
       
  • ① Windows環境設定
    • システム更新
    • OpenJDK(javaランタイム)
    • IPアドレス
       
  • ② マイクラサーバーをダウンロード
      
  • ③ マイクラサーバーを起動する
     
  • Parallels補足:仮想環境のネットワークを設定する
     
  • ④ ポート開放
      
  • ⑤ 接続テスト1:ローカル環境からサーバーに接続する
     
  • ⑥ ルーターを設定して、サーバーを外部に公開する
     
  • ⑦ 接続テスト2:グローバル環境からサーバーに接続する
     

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

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

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

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

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

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

OS準備:Windows11仮想環境を構築

M1・M2 Macに仮想環境を構築するには「Parallels®︎ Desktop 18 for Mac」を使います。

「Parallels®︎ Desktop 18 for Mac」なら、M1・M2 MacにWindows11をクリックだけでインストールできます。

もし作業で上手くいかなかったら、スクラップにして(削除して)もう一度クリックからやり直せば良い訳です。

ガチャをリセマラするよりも、Windows11をスクラップ&ビルドする方が簡単です。

WindowsでPowerShellを使う

Windowsで検索欄にPowerShellと入力する
Windowsで検索欄にPowerShellと入力する

Windows なら検索欄から“PowerShel”と入力すればPowerShell が表示されます。

そのまま“Enter”を押せば、PowerShell が起動します。

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

PowerShellを任意のフォルダ直下で起動させる

PowerShellの起動に"ターミナルで開く"を使えば時短になる
PowerShellの起動に“ターミナルで開く”を使えば時短になる

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

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

PowerShellを任意のフォルダ直下で起動させるには“右クリック”⇒”ターミナルで開く”を使えば楽です。

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

PowerShellでマイクラのサーバーフォルダを右クリックで直接開く
PowerShellでマイクラのサーバーフォルダを右クリックで直接開く

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

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

注①: 最新のPowerShell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\ユーザー名> 

WindowsデフォルトのPowerShell 5.1 を起動すると上のように新機能と改善のために最新の PowerShell をインストールしてください!と表示されるかも知れません。

マイクラのサーバー起動でPowerShellを使う程度ならわざわざ最新にする必要はありませんが、どうしても気になる方は最新のPowerShell 7.2 にすると良いでしょう。

注②:PowerShell の「文字化け」

Windowsのターミナル「PowerShell」 のデフォルトの文字コードはshift_jisです。

shift_jisだと日本語が文字化けします。

そんな時は、文字コードをUTF-8にすれば改善します。

① Windows 環境設定

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

環境設定の流れ

  • ① Windowsシステム更新
  • ② OpenJDK(javaランタイム)
  • ③ IPアドレス

Windowsシステム更新は念の為です。順々にやっていきます。

準備①:Windowsシステム更新

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

  • OpenJDK の Microsoft ビルドをダウンロードする
    • https://docs.microsoft.com/ja-jp/java/openjdk/download

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

ただ、いちいちサイトに訪問するのも面倒なので、Windowsのパッケージマネージャーwingetを使ってOpenJDK 17(2022/9/1最新)をダウンロードします。

PS C:\Windows\system32> winget install Microsoft.OpenJDK.17
見つかりました Microsoft Build of OpenJDK with Hotspot 17 [Microsoft.OpenJDK.17] バージョン 17.0.4.101
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://aka.ms/download-jdk/microsoft-jdk-17.0.4.1-windows-aarch64.msi#winget
 ██████████████████████████████  150 MB / 150 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

PS C:\Windows\system32> 

winget installコマンド一発でMicrosoft OpenJDK 17(2022/9/1最新)がインストールされます。

wingetを使っていれば、Linuxなどにも慣れるので積極的に使っていきましょう。

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

準備③:WindowsでローカルIPアドレスを調べる

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Windows\system32> ipconfig

Windows IP 構成


イーサネット アダプター イーサネット:

   接続固有の DNS サフィックス . . . . .:
   IPv6 アドレス . . . . . . . . . . . .: 240b:250:89e0:d200:d8ed:c36c:e2fa:112c
   一時 IPv6 アドレス. . . . . . . . . .: 240b:250:89e0:d200:85a4:c346:84:5b4f
   リンクローカル IPv6 アドレス. . . . .: fe80::d8ed:c36c:e2fa:112c%10
   IPv4 アドレス . . . . . . . . . . . .: 192.168.10.103
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: fe80::8222:a7ff:fe0e:b368%10
                                          192.168.10.1
PS C:\Windows\system32>

WindowsでIPアドレスを調べるコマンドはipconfigです。

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

② Nukkitサーバーをダウンロード【Windows】

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ファイルをダウンロードできます。

※面倒臭いですがwingetでNukkitサーバーを構築する方法もあります。

③ Nukkitサーバーを起動する

PS C:\Nukkit> java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar

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

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Nukkit> java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
2022-09-04 04:07:36,675 main WARN Disabling terminal, you're running in an unsupported environment.
04:07:36 [INFO ] Welcome! Please choose a language first!
04:07:36 [INFO ] eng => English
04:07:36 [INFO ] chs => 中文(?体)
04:07:36 [INFO ] cht => 中文(繁體)
04:07:36 [INFO ] jpn => 日本語
04:07:36 [INFO ] rus => Pycc?ий
04:07:36 [INFO ] spa => Espa?ol
04:07:36 [INFO ] pol => Polish
04:07:36 [INFO ] bra => Portugu?s-Brasil
04:07:36 [INFO ] kor => ???
04:07:36 [INFO ] ukr => Укра?нська
04:07:36 [INFO ] deu => Deutsch
04:07:36 [INFO ] ltu => Lietuvi?kai
04:07:36 [INFO ] idn => Indonesia
04:07:36 [INFO ] cze => Czech
04:07:36 [INFO ] tur => Turkish
04:07:36 [INFO ] fin => Suomi
04:07:36 [INFO ] ara => ???????
jpn

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

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

サーバー起動例

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Nukkit> java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
2022-09-04 03:23:29,583 main WARN Disabling terminal, you're running in an unsupported environment.
03:23:29 [INFO ] Loading nukkit.yml ...
03:23:29 [INFO ] Loading server.properties ...
03:23:29 [INFO ] 日本語 (jpn) を言語に選択しました
03:23:29 [INFO ] Minecraft: BEサーバー(v1.19.21に対応)を起動しています
03:23:29 [INFO ] Selected Zlib Provider: 2 (cn.nukkit.utils.ZlibThreadLocal)
03:23:29 [INFO ] 0.0.0.0:19132上でサーバーを開始しています
03:23:29 [INFO ] このサーバーはNukkitのバージョンgit-40701a1「」(API 1.0.14)で動作しています
03:23:29 [INFO ] NukkitはGPLライセンスに基づき配布されています
03:23:29 [INFO ] Loading runtime items...
03:23:30 [INFO ] Loading recipes...
03:23:30 [INFO ] Loaded 1509 recipes.
03:23:30 [INFO ] Successfully loaded 0 resource packs
03:23:30 [INFO ] ワールド "world" を読み込んでいます
03:23:30 [INFO ] Preparing start region for level "world"
03:23:30 [INFO ] ワールド "nether" を読み込んでいます
03:23:30 [INFO ] Preparing start region for level "nether"
03:23:30 [INFO ] GS4ステータス リスナーを開始
03:23:30 [INFO ] クエリポートを設定: 19132
03:23:30 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
03:23:30 [INFO ] デフォルトゲームタイプ: サバイバルモード
03:23:30 [INFO ] 起動完了(0.891秒)! "help"または"?"でヘルプを表示

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

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

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

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

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

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

Parallels補足①:仮想環境のサーバーに接続できない問題

さて、サーバーが起動したので、あとは手元の統合版マイクラから接続してみましょう。

ただ、残念ながらサーバーには接続できません。

焦らないで下さい。

サーバーに接続するために必要なもの

  • IPアドレス
  • ポートの開放
  • ポート転送(外部に公開する場合)

ついに登場したIPアドレス、ポート開放です。

そして、ポート転送という用語です。ネットワークに関するIT用語は末尾に「用語解説」を載せています。

先ずはIPアドレスを確認します。

~/minecraft $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:1c:42:cd:28:1f brd ff:ff:ff:ff:ff:ff
    inet 10.211.55.6/24 metric 100 brd 10.211.55.255 scope global dynamic enp0s5
       valid_lft 1485sec preferred_lft 1485sec
    inet6 fdb2:2c26:f4e4:0:21c:42ff:fecd:281f/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591882sec preferred_lft 604682sec
    inet6 fe80::21c:42ff:fecd:281f/64 scope link 
       valid_lft forever preferred_lft forever

inet 10.211.55.6が、IPアドレスです。

このIPアドレスを見て不思議に思って下さい。なんとグローバルIPアドレスです。

IPアドレスには書式があって、それをみてグローバルIP=WAN接続か、ローカルIP=LAN接続かで切り分けます。

IPアドレスの書式

  • ローカルIPアドレス:192.168.XX.XXなどの形式です。
  • グローバルIPアドレス:上記以外

Parallels補足②:仮想環境のネットワークをローカルネットワークにする。その①

あえて大袈裟に問題としてピックアップしています。

“仮想環境のネットワークってなに?”と疑問に思ってもらいたいからです。

仮想環境のネットワークってどうなってんの?

仮想環境ソフトによってケースバイケースです。

Parallels®︎ Desktop 18 for Mac の仮想マシン(Ubuntu 22.04 LTS ARM64)のデフォルトは共有ネットワークになっています。

共有ネットワーク≒NATでホストOSと同じIPアドレスをシェアしてる状態です。

あえて、ネットワーク用語に馴染むように意味不明な専門用語を使ってます。

IPアドレスが、グローバルIPアドレスなので何かしらの設定が必要です。

ここをきちんと説明していないと絶対つまづくからです。

どう対応するか?

  • 方法①:共有ネットワークとして仮想環境のサーバーに接続する。
  • 方法②:ローカルのネットワークに設定し直して、ローカル環境のサーバーとして扱う。

この記事では方法②を採用します。

仮想環境のマシンのネットワークをローカル環境に設定しなおせば、いつも通りのサーバー環境として設定できるからです。

「いつも通りのサーバー環境」というのは、ルーター配下にローカルマシンがぶら下がって見える状態のことです。

自宅のPCのネットワークは、ルーター配下にマシン・サーバーがぶら下がる状態でネットワークを構築しています。

仮想環境のPCも、現物のPCのようにルーターにぶら下げます。※設定は簡単です。

Parallels補足③:仮想環境のネットワークをローカルネットワークにする。その②

長ったらしい説明をしてきましたが、仮想環境のネットワークをローカルネットワークにするにはクリック一回で設定できます。

上の画像の通り、構成画面から「デフォルトのアダプタ」を選択するだけです。

仮想環境を再起動しなくても、選択した瞬間からネットワークに設定が反映されます。

再度IPアドレスを確認してみましょう。

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Windows\system32> ipconfig

Windows IP 構成


イーサネット アダプター イーサネット:

   接続固有の DNS サフィックス . . . . .:
   IPv6 アドレス . . . . . . . . . . . .: 240b:250:89e0:d200:d8ed:c36c:e2fa:112c
   一時 IPv6 アドレス. . . . . . . . . .: 240b:250:89e0:d200:85a4:c346:84:5b4f
   リンクローカル IPv6 アドレス. . . . .: fe80::d8ed:c36c:e2fa:112c%10
   IPv4 アドレス . . . . . . . . . . . .: 192.168.10.103
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: fe80::8222:a7ff:fe0e:b368%10
                                          192.168.10.1
PS C:\Windows\system32>

IPアドレスはinet 192.168.10.103です。

プライベートアドレスに変更されています。

つまりこれで仮想環境のマシンを現物のローカルマシンとして扱えるようになったわけです。

④ ローカルマシン(Windows)のポート開放:Windows Defenderの場合

Windows DefenderのOpenJDK ポート開放画面
Windows DefenderのOpenJDK ポート開放画面

「Windows Defender」は、Windowsデフォルトのセキュリティソフトです。

McAfeeなど他社のセキュリティソフトを入れていない人は、この「Windows Defender」の場合でのポート開放になります。

と言っても、ポート開放はクリック一つで完了します。

Javaサーバーをはじめて起動するとWindows Defenderの画面が表示されます(上の画像)。

この画面の「アクセスを許可する」を押すだけで、ローカルマシン(Windowsマシン)のポート開放は完了です。

ちなみにこの画面はJava(OpenJDK)のポートアクセス許可を承諾する画面です。

赤枠のパブリック(WAN)か、プライベート(LAN)のどちらの設定か?という話ですが、外部に公開するサーバーを立てるのでパプリック、プライベートの両方に✔︎をつけましょう。

※ちなみにパプリックにチェックをつけると、Windowsマシンのセキュリティは弱くなります。

Windows Defenderでのポート開放のため、McAfeeなど他のセキュリティソフトを使用している場合は、そのセキュリティソフトの設定画面からポート開放する必要があります。

McAfeeでのポート開放のやり方

記事を作成中

McAfee(その他のセキュリティソフト)を使ってるなら、そのセキュリティソフトだけポート設定をすれば十分です。

なので、McAfee(その他のセキュリティソフト)を使っているなら、Windows Defenderの設定は不要です。

ポート設定がきちんと反映されているか、Windows Defenderの設定を確認しておきましょう。

Windows DefenderのOpenJDKのUDPポート設定を確認する※見るだけ

Windows DefenderでOpenJDKプログラムのポート開放を確認しておきましょう。

ポート開放の設定を見るだけです(既に上でポートを開放したからです。)。

Windows Defenderは検索欄から”defender”と入力すれば表示されます。

「Windows Defender ファイアーウォール」をクリックしましょう。

赤枠「詳細設定」を開きます。

Microsoft Defender ファイアウォール OpenJDK UDPポート
Microsoft Defender ファイアウォール OpenJDK UDPポート

確認するのは「受信の規則」です。ちなみに「送信の規則」には「OpenJDK」の設定欄はないはずです。

「受信の規則」を開くと、小さいですが「OpenJDK」の欄がTCP・UDPで二行があります。

Java版マイクラサーバーで確認するのはUDPの欄です。

理由は、統合版マイクラサーバーで受け付けるポート:19132TCPだからです。

OpenJDKの受信規則で何を確認するか?

  • TCP or UDP
  • ポートは何を設定しているか?
  • パブリック or プライベートネットワーク?

パブリック or プライベートネットワークってなに?と思うかも知れません。

外部(グローバル・パブリックとも言う)か、内部(ローカル・プライベートとも言う)か、の違いです。

さて、OpenJDK(UDP)の行を選んで、右の赤枠「プロパティ」を開きます。

OpenJDKプログラムのアクセス許可に関する設定画面です。

ふーんという程度に眺めておきましょう。

Microsoft Defender ファイアウォール OpenJDK UDPポート プロパティ
Microsoft Defender ファイアウォール OpenJDK UDPポート プロパティ

さて、この画面は受信ポートのプロトコルがUDPで、受付ポートはすべてということです。

つまり、OpenJDKを使うプログラムはポート:19132/UDPに限らず、すべてのUDPポートを受け付けるということです。

例えば、思いつきでサーバーをポート:64553/TCPで受け付けても、他のプログラムのポートと衝突しなければ即受付されます。

ネットワークのスコープも設定できます。

サーバーを外部に公開しないならプライベートネットワークのみの設定にすると良いでしょう。

どうでしょう?

自分でポート開放の設定を見たら腑に落ちませんか?

自動でポート開放された設定値をそのままにせず、次回に活かすために確認しておくと良いでしょう。

ローカルマシン(Windowsマシン)のネットワーク設定は「パブリック」

この設定も念の為に確認しておいて下さい。

ローカルマシン(Windowsマシン)そのものは「パブリック」に設定されていると思います。

ちなみに、パブリックの方がセキュリティ的には厳しい設定になります。

ネットワーク設定の違い

  • パブリック:外部のネットワークに繋ぐため、リモート接続などのポート閉じる。
  • プライベート:内部のネットワークで使用するため、リモート接続などのポートを開く。

頭が混乱するかも知れませんが、こちらはPC本体の設定です。

上のOpenJDKをパブリック設定にすると、セキュリティが甘くなる話とは違います。

ネットワーク設定の画面を開くなら

デスクトップ右下のアンテナを右クリックすれば開くことができます。

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

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

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

ローカル接続テスト手順

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

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

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

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

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Nukkit> java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
2022-09-04 03:23:29,583 main WARN Disabling terminal, you're running in an unsupported environment.
03:23:29 [INFO ] Loading nukkit.yml ...
03:23:29 [INFO ] Loading server.properties ...
03:23:29 [INFO ] 日本語 (jpn) を言語に選択しました
03:23:29 [INFO ] Minecraft: BEサーバー(v1.19.21に対応)を起動しています
03:23:29 [INFO ] Selected Zlib Provider: 2 (cn.nukkit.utils.ZlibThreadLocal)
03:23:29 [INFO ] 0.0.0.0:19132上でサーバーを開始しています
03:23:29 [INFO ] このサーバーはNukkitのバージョンgit-40701a1「」(API 1.0.14)で動作しています
03:23:29 [INFO ] NukkitはGPLライセンスに基づき配布されています
03:23:29 [INFO ] Loading runtime items...
03:23:30 [INFO ] Loading recipes...
03:23:30 [INFO ] Loaded 1509 recipes.
03:23:30 [INFO ] Successfully loaded 0 resource packs
03:23:30 [INFO ] ワールド "world" を読み込んでいます
03:23:30 [INFO ] Preparing start region for level "world"
03:23:30 [INFO ] ワールド "nether" を読み込んでいます
03:23:30 [INFO ] Preparing start region for level "nether"
03:23:30 [INFO ] GS4ステータス リスナーを開始
03:23:30 [INFO ] クエリポートを設定: 19132
03:23:30 [INFO ] クエリーは 0.0.0.0:19132 で動作しています
03:23:30 [INFO ] デフォルトゲームタイプ: サバイバルモード
03:23:30 [INFO ] 起動完了(0.891秒)! "help"または"?"でヘルプを表示

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

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

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

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

PS C:\Windows\system32> ipconfig

Windows IP 構成


イーサネット アダプター イーサネット:

   接続固有の DNS サフィックス . . . . .:
   IPv6 アドレス . . . . . . . . . . . .: 240b:250:89e0:d200:d8ed:c36c:e2fa:112c
   一時 IPv6 アドレス. . . . . . . . . .: 240b:250:89e0:d200:85a4:c346:84:5b4f
   リンクローカル IPv6 アドレス. . . . .: fe80::d8ed:c36c:e2fa:112c%10
   IPv4 アドレス . . . . . . . . . . . .: 192.168.10.103
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: fe80::8222:a7ff:fe0e:b368%10
                                          192.168.10.1
PS C:\Windows\system32>

WindowsでIPアドレスを調べるコマンドはipconfigです。

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

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

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

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

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

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

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

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

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

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

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

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

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

Parallels Ubuntu 22.04 LTS ARM64のNukkitサーバーにローカル接続!
Parallels Windows11のNukkitサーバーにローカル接続!

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

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

Windows11の統合版マイクラサーバー(Nukkitサーバー)に、“nyandaisensei”でログインできてるのが分かると思います。

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

07:39:31 [INFO ] nyandaisensei[/192.168.10.101:51228] がエンティティID 1 として (world, 121.5522, 66.0, 135.9729)にログインしました

nyandaisensei[/192.168.10.101:51228]

このアドレスは、グローバル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値が表示されていれば、外部から統合版マイクラサーバーが“見えている状態”です。

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

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

ParallelsのUbuntu 22.04 LTS ARM64で起動した Nukkitサーバーにグローバル接続!
ParallelsのUbuntu 22.04 LTS ARM64で起動した
Nukkitサーバーにグローバル接続!

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

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

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

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

17:25:05 [INFO ] nyandaisensei[/126.236.176.10:33429] がエンティティID 1 として (world, 121.5522, 66.0, 135.9729)にログインしました

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

IPアドレスの違い

  • グローバルIPアドレス:nyandaisensei[/126.236.176.10:33429]
  • ローカルIPアドレス :nyandaisensei[/192.168.10.101:51228]

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

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

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

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

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

マイクラ鯖立てトラブルシューティング集

Java版

統合版

○良い:統合版マイクラ「Nukkit」では、Xbox Live 用ポートを”開放しなくて良い”

統合版マイクラサーバー
必要となるXbox Live 用ポート開放
UDP
88、500、3544、4500、60209(推奨)
 
TCP
80
 
UDP・TCP両方
53、3074
 
Teredo有効化
netsh interface Teredo set state client clientport=60209(上記推奨と同じ値)
 

Xbox Live ポートに関する参考

  • Xbox コンソールの Xbox ネットワークで使用されるネットワーク ポート
    • https://support.xbox.com/ja-JP/help/hardware-network/connect-network/network-ports-used-xbox-live
       
  • NAT エラーとマルチプレイヤー ゲームの問題のトラブルシューティング
    • https://support.xbox.com/ja-JP/help/hardware-network/connect-network/xbox-one-nat-error

まず結論ですが、今回使った非公式の統合版マイクラサーバー(Nukkit)にXbox Live 用ポートの開放は「不要」です。

これはJavaで動作してるからだと思います。

これに対して、公式の統合版マイクラサーバーだとXbox Live 用ポートの開放が「必要」なはずです。

ちなみに公式の統合版マイクラサーバーはJavaで動作していません。

同じ統合版マイクラサーバーですが根本的に動作原理が違うわけです。

統合版マイクラサーバーNukkitでは、Xbox Live 用ポートを“開放しなくて良い”が正解です。

マイクラ自宅サーバーのセキュリティ面で気を付けること

先ず言いたいことは、ポート開放はセキュリティを下げます。

セキュリティ上で注意すべきことは基本2つです。

セキュリティ危険度ひとこと

IPアドレスを知られること。ただし、ポート番号知られていない。
 
IPアドレスは調べれば特定できます。が、知られないようにした方が良い。

IPアドレスも知られて、ポート番号も知られている。
 
危険部屋に鍵がかかって無いのと同じ状況なので、「友達の部屋」には強盗が入りたい放題です。

その部屋だけは何処からでも入りたい放題の状態です。

それ以外の部屋は鍵がかかってます。

これはサーバー運用上しょうがないリスクです。サーバーは、穴を開けてリスクを許容して運用します。

当然、対策はしますが。こういうものだと思ってください。

簡易な対策だと、ポート番号を定期的に変更したりします。

また、セキュリティリスクが本当に不安になったらポートを閉じましょう。

要するに、部屋に鍵をかけようということです。

ネットワーク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で開発するのは環境汚染です!

模範回答



【記事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で「ゲーム配信」をするのをオススメします。



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

Bizarreメンバー:くれいぱいぷ

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

コメント

コメントする

目次