Publishing a Minecraft Server Using Cloudflare Tunnel.
友人と Minecraft を一緒に遊びたかったのですが、自宅回線にグローバル IP アドレスが割り当てられておらず、サーバーへの接続方法に悩んでいました。 トンネリング サービスとして ngrok や playit.gg も利用しましたが、通信容量制限やラグの問題から、最終的に Cloudflare Tunnel を使って、外部からでも自宅の Minecraft サーバーにアクセスできるように構成しました。
その際に参考にしたサイトと詰まったポイントをまとめます。
環境(執筆当時)
Minecraft サーバー
- OS: Ubuntu
- Version: 22.04.5 LTS (Jammy Jellyfish)
クライアント
- OS: Microsoft Windows 11 Pro
- Version: 10.0.26100 N/A ビルド 26100
一言技術紹介
タイトルに登場した Cloudflare Tunnel について簡単に紹介します。
Cloudflare Tunnel って?
Cloudflare Tunnel は、パブリック IP アドレスを使用せずに、自宅にあるサーバーに、自宅の外からアクセスできるようになるサービスです。
構成手順
構成の大まかな流れは以下の通りです:
- Minecraft サーバー
- Cloudflare アカウントを作成
- ドメインを Cloudflare に追加
cloudflaredをインストール- Cloudflare Tunnel の作成とサービス登録
- クライアント
cloudflaredをインストール- Cloudflare Tunnel へアクセス
基本的に Cloudflare 公式ドキュメント Arbitrary TCP に従えば問題ありません。 日本語では Cloudflare Tunnelを利用したMinecraftサーバーの公開 で手順が丁寧にまとめられていました(私もお世話になりました)。
ハマったポイント
localhost を指定しても接続できない
上記手順で Cloudflare Tunnel を構成した後、クライアントの Minecraft アプリケーションからサーバー アドレスを localhost にして接続を試みましたが、Connection refused: no further information. のエラーが出力され、接続できませんでした。
これは推測となりますが、localhost が 127.0.0.1 と ::1 の両方に解決されますが、私の構築した Minecraft サーバーでは IPv6 でバインドされておらず、接続ができなかったようです。
私は localhost をすべて 127.0.0.1 に指定することで、接続可能となりました。
まとめ
簡単ではありましたが、Cloudflare Tunnel を使った Minecraft サーバー外部公開で参考にした手順とハマったポイントについてまとめました。 Cloudflare ではサポート契約がなくとも、Discord で相談ができるようでした。 詳細は Contacting Cloudflare Support にまとめられています。 もし皆さんも構築で困ることがあれば、こちらで相談してみても良いかもしれません。 ではまた。