0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MinecraftサーバをCloudflare Tunnelを使って外部公開してみた

Last updated at Posted at 2025-12-02

本記事は、めんどい太郎の Advent Calendar 2025 3日目の記事です。

はじめに

皆さんはMinecraftやってますか?

私は友人とMinecraftを遊ぶことがあるのですが、その時にサーバを建てないといけません。

そして、サーバを建てても接続してもらうための設定も必要です。

...正直めんどくさいですよね?

ですが、Cloudflare Tunnelを使えばかなり楽にサーバの運用ができます。

特に、ポート開放しなくていいのがすごくいいです。

構成

簡単にどのような構成かを図に示します。

今までプロキシサーバとHaproxyの間で通信するために、ポート開放してIPアドレス調べて...としていたのをCloudflare Tunnelに置き換えることでポート開放も不要で楽々にやっていきたいと思います。

やり方

さっそくやり方を紹介します。

(Cloudflareのアカウントは作成しており、ドメインを管理している前提です。)

Tunnelを作る

Cloudflareのダッシュボードにログインし、メニューにあるZero Trustを開きます。

image.png

Cloudflare Oneのダッシュボードに移動したら、ネットワークにあるコネクタを開きます。

image.png

トンネルを作成を押してトンネルを作ります。

Cloudflaredの方を選択します。

image.png

わかりやすい名前を付けます。

image.png

cloudflaredというアプリケーションのインストールと設定を求められるので、Minecraftサーバが動いてるサーバで指示の通りに実行します。

image.png

するとConnectorsに表示されるはずです。表示されれば正しく設定できています。

image.png

接続先などの設定をします。

ホスト名は自由に設定してください。

サービスはタイプをTCPに、URLをlocalhost:25565にします。

25565はポート番号ですので、自身の環境に合わせて変更してください。

画像に例を示しておきます。

image.png

セットアップを完了するを押せばトンネルが作成されます!

Tunnelの出口の準備

次に、Cloudflare Tunnelの出口を準備します。

本来、Cloudflare TunnelでTCPのサービスを使うにはクライアント側でも出口の設定が必要です。

ここでは、Haproxyが動いているサーバがクライアントに該当します。

(Minecraftクライアント側でいちいち設定しなくていいので楽になります。)

Haproxyサーバが動いているサーバに、cloudflaredをインストールします。

インストールは公式サイトを参照してください。(確実なので)

インストールできたら、次のコマンドを実行します。

cloudflared access tcp --hostname {ホスト名} --url localhost:{出口とするポート}

{ホスト名}は先ほどCloudflare Tunnelで設定したホスト名を指定します。

{出口とするポート}はCloudflare Tunnelの出口用ポートなので25565とかではないものをお勧めします。

というのも、この出口用ポートにHaproxyを挟むからです。

Haproxyの設定を変更

あとはHaproxyのserverlocalhost:{出口とするポート}に変更するだけです。

先ほど25565はお勧めしないと言った理由はHaproxyで受け付けるポートを25565にするだろうという推測からです。

もうちょっと詳しい図

最終的に出来上がった構成を図にしてみます。

ポート番号とcloudflared In/Outという表現を使ってみました。

伝わります...?

感想

めっちゃ楽。

Cloudflare側の設定は一度してしまえば、サーバPC側でコマンドを叩くだけなのでマジで楽です。

実はなぜか次のようなエラーが出てうまくいかないことが何度かありました。

ERR failed to connect to origin error="remote error: tls: handshake failure" originURL=https:*******

これに関してですが、実は原因がわかっていません()

サブドメインを変えて設定しなおすと動作するようになりました。

おそらくですが、何らかの原因で前の設定が残ってしまっていたのかもしれません。

終わりに

ポート開放をしなくていいので比較的安全にMinecraftサーバを公開でき、おうちのネットワークからサーバへのルーティングも不要なのでマジで楽です。

しかも、一度Cloudflareを通るので外部にIPをさらす必要もありません!ありがてぇ。

ただ、一度Cloudflareを経由する都合上pingが少し高くなりはします。まぁでもそんなに気にならない程度かなとは思います。

皆さんもCloudflare Tunnelで安全にサーバを公開してみませんか?

それでは!よいMinecraftライフを!

参考サイト

Cloudflare Tunnelを利用したMinecraftサーバーの公開 - Qiita

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?