【#3】Minecraft BE(統合版) 自作サーバー構築奮闘記 ~ポート開放編~
2022.05.27
CATEGORY : Linux
あんみんどうふです。
前回に引き続きマイクラサーバーの備忘録です。今回が最終回です。
前回の投稿はこちら。
とりあえずサーバーはできたので、残る作業はポート開放です。
ここが一番の鬼門だと思います。
ポート開放について
前回、ufwでサーバー側のポート開放を行いましたが、離れた人とマルチで遊ぶにはルーター側のポート開放も行う必要があります。
この設定はルーターの機種や光回線のオプション等で大きく異なると思うので、参考にする際は十分に調べてから作業してください。
私の環境は以下の通りです。
光回線
|
HGW「PR-500MI」
|
ルーター「ASUS TUF-AX3000」
|
ハブ
|
サーバーとかPCとかゲームとか諸々
この環境下に基づいて解説します。
二重ルーター
まず、今の環境が「二重ルーター」であるかを確認します。
二重ルーターとはその名の通り、ルーターが二重に接続されていることです。この場合、基本的にポート開放はできません。
まず、サーバー側で「traceroute」をインストールします。
(ubuntuにはデフォルトで「traceroute6」がインストールされていますが、これはIPv6用なので使いません)
1 | $ sudo apt install traceroute -y |
インストール後、「traceroute (送信先アドレス)」の構文で実行することで通信経路を確認できます。
今回は試しに「8.8.8.8(Google DNS)」に送信します。
1 2 3 4 5 6 | $ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 _gateway (192.168.xxx.xxx) z.zzz ms z.zzz ms z.zzz ms 2 192.168.yyy.yyy (192.168.yyy.yyy) z.zzz ms z.zzz ms z.zzz ms # 二重ルーター 3 aaa.bbb.ccc.ddd (aaa.bbb.ccc.ddd) z.zzz ms z.zzz ms z.zzz ms ... |
「192.168」から始まるアドレスが2つ以上ある場合は二重ルーターの状態です。1つであれば問題ありません。
今回の環境では二重ルーターとなってしまいました。理由としては、HGWとして使っている「PR500-MI」にルーターとしての機能も備わっているためです。
二重ルーターの解消方法
おそらく「HGW側で通信して更にルーター側でも通信している」のが原因なので、どちらかの通信を切ることで解消します。
できれば設定が豊富なルーター側に通信を任せたい所・・・というわけで、HGW側の通信を切っちゃいましょう。
HGWのPPPoEを切る
まずHGW側のPPPoE接続を切断します。
HGWの設定画面に入り、接続先設定(IPv4 PPPoE)が開かれていることを確認します。
一覧の一番上の「メインセッション」が「接続中」になっていることを確認し、「切断」をクリックします。
切断したら、メインセッション左側の「接続可」のチェックを外して「設定」をクリックします。
IPv6 PPPoEも接続されている場合は、左メニューから「基本設定」→「接続先設定(IPv6 PPPoE)」を選択し、IPv4 PPPoEと同じように接続を切ります。
左メニューの「詳細設定」→「高度な設定」からPPPoEブリッジが有効になっていることを確認します。
チェックが外れていたらチェックを入れて「設定」をクリックします。
これによりHGW単体でPPPoE接続ができなくなりますが、送受信したパケットが通る「門」になることでHGWに接続した機器での通信が可能となります。
ルーター側でPPPoE接続
次にルーターの設定画面に入ります。
ASUSのルーターはIPアドレスを直で打つか「router.asus.com」にアクセスすることで設定画面に入れます。
ログイン後、左メニューの「WAN」を選択します。
次のポート開放で使うので、ついでにルーターのIPアドレスを控えておきます。
WAN設定を「PPPoE」に変更し、PPPoEアカウント名とパスワードを入力して保存します。
ここまでやったらサーバー側で再度tracerouteしてみます。
「192.168」から始まるアドレスが1つになっていればOKです。
1 2 3 4 5 | $ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 _gateway (192.168.xxx.xxx) z.zzz ms z.zzz ms z.zzz ms 2 aaa.bbb.ccc.ddd (aaa.bbb.ccc.ddd) z.zzz ms z.zzz ms z.zzz ms ... |
ポート開放
今回の本題です。
前回サーバーで設定したポート19132の通信を許可するために、HGWとルーターでポート開放を行います。
HGWのポート開放
HGWの設定画面にアクセスし、左メニューの「詳細設定」から「静的IPマスカレード設定」を選択します。
空いている行で「編集」をクリックします。
各種情報を入力します。
変換対象プロトコルは「UDP」を選択、
変換対象ポートは「19132」を入力、
宛先IPアドレスはルーターのIPアドレスを入力、
宛先ポートは「19132」を入力したら「設定」をクリックします。
一覧の画面に戻り、先程設定した行にチェックを入れて「設定」をクリックします。
これでHGWのポート開放が完了しました。
続いてルーターです。
ルーターのポート開放
ルーターの設定画面を開き、メニューから「WAN」を選択します。
ページ上部の「ポートフォワーディング」をクリックします。
「ポートフォワーディングを有効にする」をONに切り替え、「プロファイルの追加」をクリックします。
カスタム設定で各情報を入力します。
サービス名は何でもいいのでわかりやすいものにします。
プロトコルは統合版のMinecraftなので「UDP」を選択。
外部ポート、内部ポートは共に「19132」を入力。
内部IPアドレスはサーバーのIPアドレスを入力。
送信元IPは入力不要です。
すべて入力して「OK」をクリックすると、一覧に追加されます。
正しくポート開放できているか確認
マイクラサーバー起動後、PC側でMinecraftを起動し、「サーバー」→「サーバーを追加」を選択します。
名前は適当にわかりやすいものを入力、
アドレスには自身のグローバルIPアドレスを入力し、
ポートは「19132」を入力します。
グローバルIPはcman.jp様のサイトで確認するのが手っ取り早いです。
(アクセス情報【使用中のIPアドレス確認】)
「保存」→接続先を選んで「サーバーに参加」をクリックし、前回と同様にワールドに入れたら正しくポート開放されています。
※前回追加したローカル側と間違えないように注意!
できない場合
- IPアドレスを間違えている可能性があります。
特にグローバルIPは(プロバイダの契約内容にもよりますが)HGWやルーターを再起動する度に変わるのが殆どなので、その都度サーバーリストのアドレスを更新する必要があります。 - ポートを間違えている可能性があります。
デフォルトは「19132」です。
server.propertiesの「server-port」の値を変えているならそちらに合わせてください。 - サーバーで開放するポートを間違えている可能性があります。
「sudo ufw status」で確認してみましょう。
ufwが有効になっているかも要確認。 - ルーターのポートフォワーディング設定を間違えている可能性があります。
ASUSルーターはゲームのポート開放を簡単に行う機能があるのでそちらも設定してみるといいかもしれません。 - そもそもマイクラサーバーが動いていない可能性があります。
「LD_LIBRARY_PATH=. ./bedrock_server」でマイクラサーバーを起動してください。 - 困ったらとりあえず再起動すれば直ることもあります。
うまく設定が反映されていないことが結構ありがちなのでまず再起動してみましょう。
これにて公開可能なマイクラサーバーの完成です。
マルチで遊ぶ時は相手に「グローバルIPアドレス」と「ポート番号」を入力してもらうと参加できます。
正直このままだとセキュリティ面や荒らし対策は甘く、いろいろカスタマイズが必要だと思いますがとりあえず構築できたのでヨシ!ということで。
以上。