Cloudflare Tunnel で自宅サーバー公開

自宅サーバーを安全かつ簡単に公開する方法として、Cloudflare Tunnel を使ってみた。

(1)独自ドメインを取得しておく。僕は Namecheap で取得した。

(2)Cloudflare のアカウントを作成。

Cloudflare - The Web Performance & Security Company | Cloudflare
https://www.cloudflare.com/

(3)Cloudflare の「Dashboard>Websites>Add site」をクリック。1で作成したドメインを追加する。

Free Plan を選択。Nameserver 情報などが表示される。

(4)ドメインレジストラで3の Nameserver を設定する。

Nameserver が有効になったらメールが届く。24 時間程度かかる場合があると書かれているが、10 分ぐらいで届いた。

(5)Cloudflare の「Dashboard>Zero Trust>Access>Tunnels>Complete Setup」をクリック。

画面に従って設定をする。Free Plan を選ぶ。

Free Plan では以下が含まれる。

・50 user limit
・Zero Trust controls
・DNS filtering for up to 50 locations
・Layer 7 (HTTP) filtering rules
・Roaming user support via WARP
・24 hours of log retention

Free Plan は無料だが、決済情報を登録する必要がある。Paypal を登録した。0円で決済を完了する。

(6)再び「Dashboard>Zero Trust>Access>Tunnels」をクリック。「Create a tunnel」をクリック。

トンネル名を最初に設定するが、適当でいい。

「Save」をクリックするとインストール手順が表示される。

(7)自宅の端末に cloudflared をインストールする必要がある。今回は Raspberry Pi(bullseye 32-bit)を使う。

「Debian>arm32-bit」の手順に従いインストール。

「Next」をクリック。

(8)自宅のサービスとの紐付け設定をする。例えば Plex メディアサーバーと紐付けてみよう。

「Public Hostname」で最低限以下のように設定する。

・Public hostname:plex.{ドメイン名}(plex の部分は適当に命名)
・Service:http://192.168.1.5:32400

「Save {トンネル名} tunnel」をクリック。

これで plex.{ドメイン名} で自宅の Plex にアクセスできるようんある。4G から試してもちゃんとアクセスできた。そして HTTPS 接続になっている。ポートの開放もしなくていい。

常時 HTTPS 接続にするには以下に従う。

Always Use HTTPS · Cloudflare SSL/TLS docs
https://developers.cloudflare.com/ssl/edge-certificates/additional-options/always-use-https/

お気付きの通り、cloudflared をインストールしていない別のサーバーも公開できる。今回も Raspberry Pi ではない、Mac にインストールした Plex を公開している。

他にも SSH 接続などができたりするので可能性が広がる。

cloudflared は Raspberry Pi にインストールしたが、Mac に Docker でインストールすることもできた。Raspberry Pi にインストールするよりも手軽だ。

さらに Cloudflare は複数のドメインを登録できるので、この方法で複数ドメインの運用も可能だ。

参考:
Set Up a Cloudflare Tunnel to Expose Local Servers to the Internet
https://www.makeuseof.com/use-cloudflare-tunnel-expose-local-servers-internet/

CloudFlare Tunnelで自宅サーバーを公開する(FreeプランOK)
https://zenn.dev/yakumo/articles/b1f0e1115cb5b6


この記事が気に入ったらサポートをしてみませんか?