【無料】UbuntuでJava版マイクラサーバー「MohistMC」の立て方!

  • URLをコピーしました!
Java版マイクラ「MohistMC」で自宅サーバーを構築!
Java版マイクラ「MohistMC」で自宅サーバーを構築!

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

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

僕はプロのITエンジニアです。

そんな僕がマイクラ鯖を構築する記事を書く理由は、ほとんどの記事でマイクラ鯖を立てるのは無理だからです。ちなみにサーバーを外部に公開する方法は"ポート開放"ではありません。

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

出てくる記事のすべてが"ポート開放"の記事です。

外部に公開できない

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

ポート開放を解説している記事を読んでも、サーバーを外部に公開できません。

外部に公開する方法は"ポート転送"です。

本記事では僕自身がこの手順で鯖を構築したので確実に鯖を外部に公開できます。外部公開のエビデンスとして画像を見るだけでも分かると思います。じっくり読んでみてぜひ参考にしてみください。

この記事だけでサーバー構築の知識が完結するように、ネットワークに関する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サーバー」の環境

サーバー環境

  • Ubuntu 22.04 LTS ARM64 ※Intel、arm64どちらでもオッケー
  • MohistMCサーバー
  • Javaランタイム環境
  • フォルダ場所は~/MohistMCで作業 ※場所はどこでも良いです
  • ポート開放ツールを使わない

Ubuntuはなんでも構いません。Javaならx86・arm64どんな環境でも動作するからです。

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

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

使うのはUbuntu 22.04 LTS ARM64です。

ただ、Javaを使うのでどんなUbuntuでも動作します。

なんでMohistMCを使うのか?

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

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

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

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

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

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

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

公式サーバー(バニラ鯖)もJavaで動作しますが、Modとプラグインを使えません。

Ubuntuに無料でMinecraftサーバーを建てる!流れ

引用:マインクラフト

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

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

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

鯖を建てる流れ

  • ① Ubuntu環境設定
    • システム更新
    • iproute2
    • OpenJDK(javaランタイム)
    • Git
       
  • ② マイクラサーバーをダウンロード
     
  • ③ マイクラサーバーを起動する
     
  • ④ ポート開放
      
  • ⑤ 接続テスト1:ローカル環境からサーバーに接続する
     
  • ⑥ ルーターを設定して、サーバーを外部に公開する
     
  • ⑦ 接続テスト2:外部からサーバーに接続する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

① Ubuntu環境設定

【2日目後半】マイクラハードコア100日「チビゾン殺意高すぎ」【ゆっくり実況】
気分転換に御覧ください

マイクラのサーバー構築に必要な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などあらゆる環境で実行可能です。

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

準備③:ローカル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コマンドを使うからです。

② 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サーバーを起動する

~/MohistMC$ java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar

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

サーバー起動例

~/MohistMC$ java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar 


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


Welcome to Mohist ! - Mohist Developement Group
Checking libraries, please wait...
All libraries are nice :) !
Checking the installation, please wait.
Finished the install verification process !


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


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@333d4a8c
[00:35:27] [INFO]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 40.1.73, --fml.mcVersion, 1.18.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220404.173914]
:
:
:
[00:35:45] [INFO]: Default game type: SURVIVAL
[00:35:45] [INFO]: Generating keypair
[00:35:45] [INFO]: Starting Minecraft server on *:25565
[00:35:45] [INFO]: Using epoll channel type
:
:
:
[00:36:05] [INFO]: Time elapsed: 9917 ms
[00:36:05] [INFO]: Done (19.649s)! For help, type "help"
[00:36:05] [INFO]: Successfully initialized permission handler forge:default_handler
> 

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

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

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

[00:35:45] [INFO]: Starting Minecraft server on *:25565

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

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

MohistMC 初回起動時
~/MohistMC$ java -Xms1G -Xmx4G -jar mohist-1.18.2-90-server.jar


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

Welcome to Mohist ! - Mohist Developement Group
Checking libraries, please wait...
:
:
:
 __    __   ______   __  __   __   ______   ______  
/\ "-./  \ /\  __ \ /\ \_\ \ /\ \ /\  ___\ /\__  _\ 
\ \ \-./\ \\ \ \/\ \\ \  __ \\ \ \\ \___  \\/_/\ \/ 
 \ \_\ \ \_\\ \_____\\ \_\ \_\\ \_\\/\_____\  \ \_\ 
  \/_/  \/_/ \/_____/ \/_/\/_/ \/_/ \/_____/   \/_/ 
                                                    
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})
You need to accept the eula to launch your server. Type true to continue.
true

MohistMC 初回起動時の途中にYou need to accept the eula to launch your server. Type true to continue.と聞かれるのでtrueと入力してenterを押します。

④ Ubuntu【Java版】25565/tcpポート開放

$ sudo ufw enable
$ sudo ufw allow 25565/tcp
$ sudo ufw reload

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

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

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

25565/tcpsudo ufw allow 25565/tcpで開放します。

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

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

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

To                         Action      From
--                         ------      ----
25565/tcp                  ALLOW IN    Anywhere                  
25565/tcp (v6)             ALLOW IN    Anywhere (v6)             

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

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

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

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

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

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

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

ローカル接続テスト手順

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

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

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

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

Ubuntu 22.04 LTS ARM64でJava版マイクラ「MohistMC」自宅サーバーを起動
Ubuntu 22.04 LTS ARM64でJava版マイクラ「MohistMC」自宅サーバーを起動

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

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

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

ポートは上のサーバー起動の表示から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)にログイン!

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

Ubuntu MohistMCサーバー(マイクラ Java Edition)ログインプロンプト
Ubuntu MohistMCサーバー(マイクラ Java Edition)ログインプロンプト
~/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})
:
:
:
[00:36:05] [INFO]: Time elapsed: 9917 ms
[00:36:05] [INFO]: Done (19.649s)! For help, type "help"
[00:36:05] [INFO]: Successfully initialized permission handler forge:default_handler
[01:15:45] [INFO]: UUID of player アカウントA is 052f88f6-b100-449d-91ca-fe677962b5f6
[01:15:45] [INFO]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@5b9c4754
[01:15:45] [INFO]: アカウントA[/192.168.10.101:60224] logged in with entity id 82 at (26.5, 70.0, -10.5)
> 

UbuntuのJava版マイクラサーバー(MohistMCサーバー)に"アカウントA"でログインできてるのが分かると思います。

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

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

[01:15:45] [INFO]: アカウントA[/192.168.10.101:60224] logged in with entity id 82 at (26.5, 70.0, -10.5)

アカウントA[/192.168.10.101:60224]

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

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

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

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

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

⑥ 外部に公開!ルーター「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以外のあらゆるデバイスでプレイしたい時にオススメです。

ネットワークIT用語解説

【1日目】マイクラハードコア100日「地獄の始まり」【ゆっくり実況】
気分転換に御覧ください

ネットワークで使う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版

統合版

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

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

コメント

コメントする

目次