- 無料と書いてある通りレンタルサーバーを使いません。
- 準備するものは、自宅のPCとインターネット回線だけです。
僕はプロのITエンジニアです。
そんな僕がマイクラ鯖を構築する記事を書く理由は、ほとんどの記事でマイクラ鯖を立てるのは無理だからです。ちなみにサーバーを外部に公開する方法は"ポート開放"ではありません。
"マイクラ サーバー構築"で検索してみて下さい。
出てくる記事のすべてが"ポート開放"の記事です。
外部に公開できない
- 外部公開≠ポート開放
- ポートを説明しても、素人解説で余計に「分からない」。
- 締め括りは「ConoHa WING」のアフィリエイト
ポート開放を解説している記事を読んでも、サーバーを外部に公開できません。
外部に公開する方法は"ポート転送"です。
本記事では僕自身がこの手順で鯖を構築したので確実に鯖を外部に公開できます。外部公開のエビデンスとして画像を見るだけでも分かると思います。じっくり読んでみてぜひ参考にしてみください。
PaperMCはプラグインサーバー!
- PaperMC
- 1.19.2、1.18.2、Velocity、Waterfall
- https://papermc.io/
上記URLからPaperMCの公式ホームページに行きます。
右上の「DOWNLOADS」からサーバーファイルの配布ページに移動できます。
本記事で立てる「PaperMCサーバー」の環境
サーバー環境
- M1・M2 Mac ※Intel Macでもオッケー
- PaperMC 1.18.2 サーバー
- Javaランタイム環境
- フォルダ場所は
C:\PaperMC
で作業 ※場所はどこでも良いです - ポート開放ツールを使わない
Windowsは10でも11でもなんでも構いません。Javaならどんな環境でも動作するからです。
その他、疑問点を以下にまとめたので読むと理解が深まると思います。
- 本記事のOSは?
-
OSはM1・M2 Macです。
Javaを使うので、Intelでも、arm64でもどちらでも動作します。
- なんでPaperMCを使うのか?
-
マイクラを拡張するプラグインを使えるからです。
- なんでPaperMCのバージョンは"1.18.2"を使うのか?
1.18.1以降のバージョンはLog4Shell対策でJVMの起動時に追加引数なしで対応しているからです。ただ、他のバージョンでも対策できるので、特にこだわりはありません。
使いたいModのバージョンに合わせて、鯖を立ててみて下さい。
- なんでポート開放ツールを使わないのか?
-
ポート開放ツールを使わない方がネットワークの理解に役立つからです。
- 公式サーバー(バニラ鯖)とPaperMCサーバーの違いは?
-
公式サーバー(バニラ鯖)ではプラグインが使えません。
M1・M2 Macに無料でMinecraftサーバーを建てる!流れ
M1・M2 Macに無料でマイクラサーバーを建てる!流れは下の通りです。
解説のために多少長ったらしい冗長な手順にしています。
なので、サーバーを外部に公開する仕組みが分かっている人は「ローカル環境からサーバーに接続する」という手順を省いてもらって構いません。
鯖を建てる流れ
- ① M1・M2 Mac環境設定
- Homebrew
- Java
- IPアドレスを調べる
- ② マイクラサーバーをダウンロード
- ③ マイクラサーバーを起動する
- ④ ポート開放
- ⑤ 接続テスト1:ローカル環境からサーバーに接続する
- ⑥ ルーターを設定して、サーバーを外部に公開する
- ⑦ 接続テスト2:グローバル環境からサーバーに接続する
上から順に作業を進めていきます。
サーバーを立てるポイント
- ローカル環境(内部)でのサーバー接続
- グローバル環境(外部)でのサーバー接続
ほとんどの人は・ローカル環境(内部)でのサーバー接続と・グローバル環境(外部)でのサーバー接続の違いを理解できていません。
結果が同じなので、その違いが分からないのかも知れません。
サーバーを建てる際は、必ずローカル環境とグローバル環境の違いを意識するようにしましょう。
M1・M2 Macでターミナルを使う
M1・M2 Macで検索欄から"ターミナル"と入力すればターミナルが表示されます。
そのまま"Enter"を押せばターミナルが起動します。
起動のやり方は他にもあります。
任意のフォルダ直下でターミナルを起動させる
ターミナルの起動には、任意のフォルダで"右クリック"⇒"ターミナルで開く"の方が時短になります。
ターミナル上でcdコマンド
を使ってフォルダを移動するのも良いですが面倒です。
例えば、ターミナルでマイクラのサーバーフォルダを直接開く
フォルダを"右クリック"⇒"ターミナルで開く"で開けば、わざわざマイクラサーバーの場所にcdコマンド
で移動する必要がありません。
任意のフォルダ直下で"右クリック"⇒"フォルダを新規ターミナル"でターミナルを起動する方が楽です。
① M1・M2 Mac環境設定
マイクラのサーバー構築に必要な環境を設定していきます。
環境設定の流れ
- ① Homebrew
- ② OpenJDK(javaランタイム)
- ③ ローカルIPアドレス
Homebrewはインストールとパッケージの更新をしておきます。順々にやっていきます。
前準備:Homebrew をインストールする
Homebrewをインストールしておきましょう。Homebrewは、Macユーザーなら100%インストールするパッケージマネージャーです。
※すでにHomebrewをインストールしている方は読み飛ばして下さい。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
上のコマンドでインストールできます。
.zprofile
にPATHを追加してくださいと表示されるので下のコマンドを実行します。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
brew -v
などして.zprofile
にPATHが追加されたのを確認すれば完了です。
Homebrewの基本的な使い方は下記を参考にして下さい。
準備②:OpenJDK(Java)のインストール
- OpenJDK
- https://openjdk.org/
上記URLからインストールファイルを一式ダウンロードできます。
ただ、いちいちサイトに訪問するのも面倒なのでbrew
を使ってOpenJDK 17(2022/9/1最新)
をダウンロードしていきます。
% 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
のコマンドは通りません。
% sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Password:
%
コマンドを打ってパスワードを入力すればシンボリックリンクの作成が完了します。
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アドレスであることを押さえておきましょう。
② PaperMCサーバーをダウンロード
- PaperMC
- 1.19.2、1.18.2、Velocity、Waterfall
- https://papermc.io/
この記事ではPaperMC 1.18.2 #387(一番上)のJava版マイクラサーバーを立てます。
使いたいPaperMCサーバーを選べば良いです。
③ PaperMCサーバーを起動する
PS C:\PaperMC> java -Xms1G -Xmx4G -jar paper-1.18.2-387.jar
PaperMCサーバーを起動させるコマンドです。
サーバー起動例
PowerShell 7.2.6
Copyright (c) Microsoft Corporation.
https://aka.ms/powershell
Type 'help' to get help.
PS C:\PaperMC> java -Xms1G -Xmx4G -jar paper-1.18.2-387.jar
Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads ***
System Info: Java 17 (OpenJDK 64-Bit Server VM 17.0.4.1+1-LTS) Host: Windows 11 10.0 (aarch64)
Loading libraries, please wait...
2022-09-11 04:02:58,706 ServerMain WARN Advanced terminal features are not available in this environment
[04:03:05 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[04:03:05 INFO]: Found new data pack file/bukkit, loading it automatically
[04:03:08 INFO]: Loaded 7 recipes
[04:03:12 INFO]: Starting minecraft server version 1.18.2
[04:03:12 INFO]: Loading properties
[04:03:12 INFO]: This server is running Paper version git-Paper-387 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: df630a2 on ver/1.18.2)
[04:03:13 INFO]: Server Ping Player Sample Count: 12
[04:03:13 INFO]: Using 4 threads for Netty based IO
[04:03:13 INFO]: Default game type: SURVIVAL
[04:03:13 INFO]: Generating keypair
[04:03:13 INFO]: Starting Minecraft server on *:25565
[04:03:14 INFO]: Using default channel type
[04:03:14 INFO]: Paper: Using Java 11 compression from Velocity.
[04:03:14 INFO]: Paper: Using Java cipher from Velocity.
[04:03:14 INFO]: Preparing level "world"
[04:03:34 INFO]: Preparing start region for dimension minecraft:overworld
[04:03:35 INFO]: Time elapsed: 902 ms
[04:03:35 INFO]: Preparing start region for dimension minecraft:the_nether
[04:03:36 INFO]: Time elapsed: 1132 ms
[04:03:36 INFO]: Preparing start region for dimension minecraft:the_end
[04:03:36 INFO]: Time elapsed: 268 ms
[04:03:36 INFO]: Running delayed init tasks
[04:03:36 INFO]: Done (24.450s)! For help, type "help"
[04:03:36 INFO]: Timings Reset
サーバーを起動するとポート番号などの設定値が表示されます。
起動時には表示を見る癖をつけると良いでしょう。
起動時の表示にサーバー情報が出る!
[04:03:13 INFO]: Starting Minecraft server on *:25565
PaperMCサーバーが起動できることを確認したら一旦閉じます。
Windowsのターミナル「PowerShell」 のデフォルトの文字コードはshift_jis
です。
shift_jis
だと日本語が文字化けします。
そんな時は、文字コードをUTF-8
にすれば改善します。
初回サーバー起動時はeula.txt
でこける
PowerShell 7.2.6
Copyright (c) Microsoft Corporation.
https://aka.ms/powershell
Type 'help' to get help.
PS C:\PaperMC> java -Xms1G -Xmx4G -jar paper-1.18.2-387.jar
Downloading mojang_1.18.2.jar
Applying patches
Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads ***
System Info: Java 17 (OpenJDK 64-Bit Server VM 17.0.4.1+1-LTS) Host: Windows 11 10.0 (aarch64)
Loading libraries, please wait...
2022-09-11 02:38:19,839 ServerMain WARN Advanced terminal features are not available in this environment
[02:38:23 ERROR]: Failed to load properties from file: server.properties
[02:38:23 WARN]: Failed to load eula.txt
[02:38:23 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
PS C:\PaperMC>
[02:38:23 WARN]: Failed to load eula.txt
[02:38:23 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
初回サーバー起動時はeula.txt
を設定する必要があります。
eula.txt
を開きます。eula=false
をeula=true
に書き換えます。#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#You also agree that tacos are tasty, and the best food in the world.
#Sun Sep 11 02:38:23 JST 2022
eula=false
eula=true
にしたら閉じます。#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#You also agree that tacos are tasty, and the best food in the world.
#Sun Sep 11 02:38:23 JST 2022
eula=true
eula.txt
の設定は以上です。
④ ローカルマシン(M1・M2 Mac)のポート開放
Mac(M1・M2含む)でポート開放をしましょう。
とは言え、Macはデフォルトでファイアーウォールがオフ(無効)になっています。
なので、マイクラのポート開放に関わらず、Macを買ったら必ずファイアウォールをオン(有効)にしてください。アプリでは必ずポートを利用する通信が発生しているからです。
ファイアウォールがオフ(無効)だと、セキュリティ的には"ガラ空き"で使っていることになります。
例:OpenJDK(Java)のポートを開放する
Mac(M1・M2含む)でOpenJDK(Java)ポートを解放しましょう。
ファイアウォールをオンにした状態で、マイクラサーバーを起動させてください(Javaを実行します。)。
マイクラサーバープログラムを実行すると自動でポート開放画面がポップアップ表示されます(上の画像)。
これを「許可」をすれば、ポート開放が完了します。
厳密には、Javaプログラムをネットワーク上で受信する許可です。
- Java版マイクラサーバー
受信ポート:25565/TCP
- 統合版マイクラサーバー
受信ポート:19132/UDP
つまり、Javaで実行されるプログラムすべてが受信許可される設定です。
Mac(M1・M2含む)のファイアウォールは個別に受信ポートを設定するわけではなく、プログラムごとで受信設定します。
⑤ 接続テスト1:ローカル環境からサーバーに接続する【Java版】
IPアドレスの確認、ローカルマシンのポート開放も済んだので、ローカル環境からサーバーに接続テストをしましょう(以下、ローカル接続テストと言います。)。
下記手順で進めましょう。
ローカル接続テスト手順
- 1)Java版マイクラサーバーを起動する。
- 2)IPアドレス・ポート番号を再度確認する。
- 3)マイクラランチャーをバージョン1.18.2にする。
- 4)自宅のパソコンからサーバーにアクセスする。
当然、IPアドレス、ポート番号が必要になるので、どこかにメモっておきましょう。
先ずはサーバーを起動しましょう。
1)Java版マイクラサーバー「PaperMC」を起動する。
PS C:\PaperMC> java -Xms1G -Xmx4G -jar paper-1.18.2-387.jar
PaperMCサーバーを起動させるコマンドです。
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アドレスであることを押さえておきましょう。
3)マイクラランチャーのバージョンを1.18.2にする。
起動構成を開いて「新規作成」を押します。
バージョン欄から「release 1.18.2」を選びます。そして「作成」を押します。
ちなみに「名前」は任意です。本記事では「PaperMC」にしました。
「PaperMC 1.18.2」を選んでからマイクラを起動します。
4)自宅のパソコン(ローカル環境)からサーバーにアクセスする。
ローカル環境からサーバーに接続する端末選びですが「自宅のネットに接続したパソコン」を使うと良いでしょう。
細かなことが分からなければ、とりあえず「自宅のネットに接続したパソコン」でサーバーに接続してみて下さい。
「自宅のネットに接続したパソコン」でMinecraftを起動します。
次に「マルチプレイ」を押します。
「サーバーを追加」を押します。
サーバーアドレスにIPアドレス:ポート
の組み合わせで入力します。
僕の環境では192.168.10.103:25565
です。
入力したら「完了」を押します。
サーバーを起動させているのでオンライン情報📶が表示されてます。
そのまま「サーバーに接続」を押します。
サーバー接続中の表示になるので暫く待ちます。
ログインできれば、ローカル接続テストは成功です。
WindowsのJava版マイクラサーバー(PaperMCサーバー)に、"アカウントA"でログインできてるのが分かると思います。
念の為、サーバーのプロンプトも確認しておきましょう。
特に、この表示に注目してください。
[05:31:01] [INFO]: アカウントA[/192.168.10.101:56526] logged in with entity id 135 at ([world]1.5, 64.0, -8.5)
アカウントA[/192.168.10.101:56526]
このアドレスは、グローバルIPアドレスか、ローカルIPアドレスか?どちらでしょうか?
答えはローカルIPアドレスです。
これはローカルサーバーの接続テストです。
まだ、外部にサーバーを公開していないので外の友達からはこのサーバーにはアクセスできません。
では、次にローカルサーバーを外部に公開していきましょう。
⑥ 外部に公開!ルーター「Aterm WG2600HS」でTCPポート転送の設定例
サーバーを外部に公開するのはここからが本番です。
サーバーを外部に公開するためには、ルーター側にポート転送設定を行います。
場合によってはパケットフィルタ設定(ルーター上のポート開放)も必要になるかも知れません(今回は不要です。)。
※「ルーター」「ポート転送」など「用語解説」は下にあります。
先ずはルーターの設定画面を開こう
ルーターのURLは、ローカルIPアドレスの最下段を"1"にしたアドレスです。
ローカルIPアドレスが192.168.10.101
なら、ルーターのURLは192.168.10.1
です。
僕の環境では、ルーターの設定画面を開くには、URL欄にhttps://192.168.10.1
でアクセスしました。
また、ログインに必要な「ユーザー名」などは注意書きされてます。
「ユーザー名」には「admin」と半角小文字で入力し、「パスワード」には、本商品本体のラベルに記載された数字6桁のパスワード(Web PW)を入力して、[ログイン]をクリックしてください。
機器によっては取扱説明書などにユーザー名などの初期設定値が記載されていたりもします。
他の機器も多少違いはあれど、ほとんど同じです。
ポートマッピングの設定画面を開く
ルーターにログインしたら、上記画面が表示されます。
中段右側に「ポートマッピング設定」という項目があるので、それをクリックします。
ちなみに、ルーターAterm WG2600HSではポート転送を"ポートマッピング"と呼んでいます。
BUFFALOなどのルーター機器だと"ポートフォワーディング"と表示されてるかも知れません。ポート転送=ポートマッピング=ポートフォワーディング、すべて同じ意味です。
※「ルーター」「ポート転送」など「用語解説」は下にあります。
ポートマッピングの設定をする
画像は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)
でサーバーにアクセスする。 - 中継地点のルーターは
ポート:36128
を192.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:グローバル環境からサーバーに接続する
ここまで来れば、あと一歩です。
今度はグローバル環境(外部)からサーバーに接続テストを行います(以下、グローバル接続テストと言います。)。
外部からの接続テストのために事前に準備するものは下の三つです。
準備するもの
ちなみに、グローバルIPアドレスの確認はCMANで手軽できます。
1)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(マイクラ)の違い
マインクラフトには、Java版と統合版があります。サーバー立てるならどちらが良いか考える必要があります。
大きな違いは"対応デバイス"です。
JAVA版と統合版の違い
JAVA版 | 統合版(Bedrock版) | |
---|---|---|
オススメ | ★★★★★ | ★★★★☆ |
対応デバイス | Windows、Mac、Linux | Windows 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用語解説
ネットワークで使う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
コメント