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

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

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のUbuntu上に統合版マイクラサーバー構築時のギモン

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

M1・M2 Macに仮想環境(Ubuntu 22.04 LTS ARM64)を作って、その上で統合版マイクラサーバーを動かします。

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

ツッコミどころ

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

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

実は、統合版マイクラサーバーは、M1・M2 Macでも、Linux(リナックス)でも関係なく動きます。Javaで動作するNukkitサーバー(非公式)を使うからです。

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

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

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

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

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

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

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

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

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

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

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

M1・M2 MacにWindowsやLinuxの仮想環境をクリック数回(数分)で構築できるからです。

なんでLinux Ubuntu 22.04 LTS ARM64を使うのか?

Linuxはコマンド一発であらゆる環境を構築出来るからです。

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

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

Javaランタイム環境ならARM64プロセッサーなど関係なくどんなデバイス上でも鯖の起動が可能になります。ちなみに、公式サーバーよりもかなり軽快に動作するのでオススメです。

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

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

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

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

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

長々説明するのは後からにします。早速、サーバーを構築していきましょう。

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

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

バニラ鯖シンボル マイクラ 草ブロック
マイクラ 草ブロック

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

鯖を建てる流れ

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

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

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

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

しかし、ほとんど人は・ローカル環境からのサーバー接続・外部からのサーバー接続の違いや意図を理解できていません。

結果が「サーバー接続」のため、その違いが分かりづらいからかも知れません。

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

サイバーリンク PowerDVD

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

Parallels®︎ Desktop 18 for Macで仮想環境を構築するのはめちゃくちゃ簡単です。

クリックだけでM1・M2 Mac上でLinuxは起動します。

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

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

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

Ubuntuでターミナル(端末)を使う

Ubuntuでターミナルを起動しましょう。

検索欄から“terminal”と入力すればターミナルが表示されます。

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

UbuntuなどのLinuxではターミナル(端末)上でのプログラムの操作が基本です。

フォルダを”右クリック”でもターミナル(端末)が起動する!

PowerShellを開くならフォルダを“右クリック”⇒”ターミナルで開く”で時短

cdコマンドでフォルダを移動できますが面倒です。

フォルダから“右クリック”⇒”端末で開く”でターミナル(端末)をそのフォルダ直下で開くことできます。

"右クリック"⇒"端末で開く"でターミナルがフォルダ直下から開始する
“右クリック”⇒”端末で開く”でターミナルがフォルダ直下から開始する

ターミナルを“右クリック”⇒”端末で開く”で起動すれば、かなり時短になるのでオススメです。

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

Adobe

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

① Ubuntu環境設定

マインクラフト エンダードラゴン

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

Linuxを初めて使う人にとっては良い勉強になるので、最初は真似するだけで良いので、この通りになぞってみて下さい。

環境設定の流れ

  • ① Ubuntu パッケージ管理システムの更新
  • ② OpenJDK(Javaランタイム環境)
  • ③ ローカルIPアドレス(iproute2
  • ④ Git

念の為、作業前はUbuntu パッケージ管理システム(apt)の更新をしておきましょう。順々にやっていきます。

準備①:Ubuntu パッケージ管理システムの更新

$ sudo apt update && sudo apt upgrade

準備②:OpenJDK(Javaランタイム環境)をインストール

$ sudo apt install default-jre

上のコマンドで OpenJDK(Java)がインストールされます。

OpenJDKを詳しく知りたい方は下の記事が参考になります。

jreをインストールしたら、きちんと入ってるかの確認も含めてjreのバージョンを表示してみましょう。

$ java -version 
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode)

javaアプリケーションは、x86、ARM64などあらゆる環境で実行可能です。

なので、統合版の公式サーバーはM1・M2 Mac向けに配布されていませんが、例えば、Javaで動作するNukkitサーバーを使えばM1・M2 Macでもサーバーを起動させることができます。

準備③:ローカルIPアドレスを確認するip a

$ ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.10.103/24 metric 100 brd 192.168.10.255 scope global dynamic enp0s5
    inet6 240b:250:89e0:d200:21c:42ff:fecd:281f/64 scope global dynamic mngtmpaddr noprefixroute 
    inet6 fe80::21c:42ff:fecd:281f/64 scope link 

IPアドレスを調べるには、iproute2のipを使います。ip a | grep inetinetを抜き出すと分かりやすいです。

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

ip aコマンド
$ 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 192.168.10.103/24 metric 100 brd 192.168.10.255 scope global dynamic enp0s5
       valid_lft 85448sec preferred_lft 85448sec
    inet6 240b:250:89e0:d200:21c:42ff:fecd:281f/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 269sec preferred_lft 269sec
    inet6 fe80::21c:42ff:fecd:281f/64 scope link 
       valid_lft forever preferred_lft forever

IPアドレスを調べるには、iproute2のipを使います。

$ ip a
$ ip addr
$ ip address show
$ ip address

ipコマンドは下のどれでも構いません。

$ sudo apt install iproute2

iproute2はデフォルトで入っていると思います。無ければ上のコマンドでiproute2をインストールできます。

余談:ifconfigとの違い

まぁ好みですが、以前はnet-toolsに含まれるifconfigを使っていましたでした。net-toolsパッケージは更新されておらず古くセキュリティ的に懸念があるため、現在はiproute2が主流みたいです。

$ sudo apt install net-tools

ifconfigを使いたいならnet-toolsをインストールすると良いです。

準備④:Gitをインストール

$ sudo apt install git

gitをインストールしておきましょう。

Nukkitサーバーのダウンロードにgitコマンドを使うからです。



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

gitでNukkitサーバーをダウンロードしてきます。

マイクラのサーバーを構築するだけで、gitも使って実用的な技術がてんこ盛りです。

~ $ git clone https://github.com/CloudburstMC/Nukkit
~ $ cd Nukkit
~/Nukkit $ git submodule update --init
~/Nukkit $ chmod +x mvnw
~/Nukkit $ ./mvnw clean package

上から順に実行してみてください。

正常に終了すると下記のように「BUILD SUCCESS」と表示されます。

[INFO] Dependency-reduced POM written at: 
[INFO] Dependency-reduced POM written at: 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  
[INFO] Finished at: 
[INFO] ------------------------------------------------------------------------


②’ Nukkitサーバーを直接ダウンロードしても良い!

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をダウンロードすればオッケーです。赤枠リンクからダウンロードできます。

③ Nukkitサーバーを起動させる【Ubuntu】

ネットワークの設定は後でやるとして、先ずは”とりあえず”サーバーを起動させてみましょう。

サーバー起動でつまづくと、後ろの方でやるネットワークの設定などしても意味がないからです。

これは実験のお作法でもあります。

物事は先ず最小構成から成功させていくことで、後々幸せになれる確率が高くなります。

~/Nukkit $ mkdir -p ~/minecraft
~/Nukkit $ cp target/nukkit-1.0-SNAPSHOT.jar ~/minecraft/
~/Nukkit $ cd ~/minecraft/

と言うことで、上のコマンドをそのまま貼り付けて実行してみてください。

作業用に「minecraft」ディレクトリを作ることで、ダウンロードしたNukkitサーバーの元データを汚さずにサーバー構築ができます。

上のコマンドは

  • 作業用に「minecraft」ディレクトリを作成
  • 作成した「minecraft」ディレクトリにNukkitサーバーの複製データをコピー
  • 最後に「minecraft」ディレクトリに移動

万が一、サーバー構築に失敗したら「minecraft」ディレクトリをスクラップにして、あらためて同じ作業をすれば良いだけです。

~/minecraft $ java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar

今度はマイクラではお馴染みのサーバー起動コマンドです。

これだけでサーバーが起動します。

~/minecraft $ java -Xms1G -Xmx4G -jar nukkit-1.0-SNAPSHOT.jar
19:30:15 [INFO ] Welcome! Please choose a language first!
19:30:15 [INFO ] eng => English
19:30:15 [INFO ] chs => 中文(简体)
19:30:15 [INFO ] cht => 中文(繁體)
19:30:15 [INFO ] jpn => 日本語
19:30:15 [INFO ] rus => Pyccĸий
19:30:15 [INFO ] spa => Español
19:30:15 [INFO ] pol => Polish
19:30:15 [INFO ] bra => Português-Brasil
19:30:15 [INFO ] kor => 한국어
19:30:15 [INFO ] ukr => Українська
19:30:15 [INFO ] deu => Deutsch
19:30:15 [INFO ] ltu => Lietuviškai
19:30:15 [INFO ] idn => Indonesia
19:30:15 [INFO ] cze => Czech
19:30:15 [INFO ] tur => Turkish
19:30:15 [INFO ] fin => Suomi
19:30:15 [INFO ] ara => العربيه
> jpn

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

jpnを打ちEnterで次に進みます。

サーバー起動例

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

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

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

19:33:30 [INFO ] 0.0.0.0:19132上でサーバーを開始しています

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

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



5%OFF特別クーポンコード:2GAME5

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アドレス:上記以外

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

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

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

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

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

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

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

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

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

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

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

どう対応するか?

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

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

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

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

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

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

Wondershare

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

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

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

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

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

再度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 192.168.10.103/24 metric 100 brd 192.168.10.255 scope global dynamic enp0s5
       valid_lft 86398sec preferred_lft 86398sec
    inet6 fe80::21c:42ff:fecd:281f/64 scope link 
       valid_lft forever preferred_lft forever

IPアドレスはinet 192.168.10.103です。

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

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

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

●補足:サーバーのポートを確認する

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

先ずはサーバーが使用するポートを確認しましょう。

上の起動時のプロンプトから確認できます。

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

上の表示からポートは19132で起動しているのが分かります。

他にはserver.propertiesファイルからでもポートを確認できます。

server.propertiesserver-port=19132が、サーバーのポート設定値です。

この値を編集すれば任意のポートで、マイクラのサーバーを起動することできます。

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

④ Ubuntu【統合版】19132/udpポート開放

$ sudo ufw enable
$ sudo ufw allow 19132/udp
$ sudo ufw reload

Ubuntuのファイアウォールはデフォルトだとufwです

UFW(Uncomplicated Firewall)は、ファイアウォールを簡単にコマンド操作できるよう設計されたLinux(リナックス)のファイアウォール管理プログラムです。

ufwは初期では無効なのでsudo ufw enableでファイアーウォールを有効にします。

19132/udpsudo ufw allow 19132/udpで開放します。

sudo ufw reloadで設定を反映します。

設定が反映されているかsudo ufw status verboseコマンドで確認してみます。

$ sudo ufw status verbose
状態: アクティブ
ロギング: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
新しいプロファイル: skip

To                         Action      From
--                         ------      ----
19132/udp                  ALLOW IN    Anywhere                  
19132/udp (v6)             ALLOW IN    Anywhere (v6)             

sudo ufw status verboseを実行した画面が上です。

19132/udp ALLOW IN Anywhereが表示されているので19132/udpの開放に成功です。

これでローカル上へのサーバー公開が完了です。

確認も踏まえて、ローカル上の端末からサーバーにアクセスしてみましょう。


5%OFF特別クーポンコード:2GAME5

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

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

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

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

ローカル接続テスト手順

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

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

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

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

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

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

2)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 192.168.10.103/24 metric 100 brd 192.168.10.255 scope global dynamic enp0s5
       valid_lft 86398sec preferred_lft 86398sec
    inet6 fe80::21c:42ff:fecd:281f/64 scope link 
       valid_lft forever preferred_lft forever

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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本体の設定を疑う
  • グローバルのアクセスで問題が出たら、ルーター設定を疑う

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

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

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

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

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

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

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

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

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

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

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

Adobe



○良い:統合版マイクラ「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 用ポートを“開放しなくて良い”が正解です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ファイヤーウォール

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

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

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

Wondershare

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

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」よくあるご質問も読んで見て下さい。

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

コメント

コメントする

目次