CloudFlare Tunnel で自宅サーバーを公開する
Published on 2024/01/19 , Last updated 2024/02/08Tags
概要
CloudFlare Tunnel を使用して自宅のサーバーを公開します。
Tunnel を構築して自宅のサーバーを公開するその他の方法は こちら を参照してください。
前提条件
- CloudFlare のアカウントが必要です。
- Domain が必要です。今回は Google Domains で取得済みです。
- Docker, Docker Compose が使用できる必要があります。
手順
Google Domains にカスタムネームサーバーを登録
-
CloudFlare にログインします。
-
ホームの
始める
ボタンを押下します。 -
Domain を入力して
続行
ボタンを押下します。 -
プランを選択します。今回は
Free
を選択します。 -
DNS レコードを確認する
画面で続行
ボタンを押下します。 -
ネームサーバーを変更する
画面で CloudFlare のネームサーバーをコピーします。 -
Google Domains のドメイン管理画面から CloudFlare のネームサーバーを追加します。
-
ネームサーバーを変更する
画面の続行
ボタンを押下します。
Zero Trust の利用開始
-
CloudFlare にログインします。
-
サイドメニューから
Zero Trust
を選択します。 -
チーム名を入力して
Next
ボタンを押下します。- 1 アカウントに 1 つのチームドメインが紐付きます。
- チーム名は他のアカウントのチーム名と同一のものは設定することができません。
-
任意のプランの
Select plan
ボタンを押下します。今回は Free を選択します。 -
Proceed to payment
ボタンを押下して支払い画面に進みます。 -
支払い方法を追加して Zero Trust の利用を開始します。
トンネルの追加
-
CloudFlare にログインします。
-
サイドメニューから
Zero Trust
を選択します。 -
サイドメニューから
Zero Trust
>Access
>Tunnels
を選択します。 -
Add a tunnel
ボタンを押下して新しいトンネルを追加します。 -
トンネル名を入力して
Save tunnel
ボタンを押下します。 -
トンネルの追加が完了したら
Choose your environment
を選択します。今回はDocker
を選択します。 -
docker run コマンドと Token が表示されます。
自宅サーバーの公開
-
自宅サーバーと Tunnel の
docker-compose.yaml
を作成します。今回の自宅サーバーは nginx を使用します。
services
>tunnel
>environment
>TUNNEL_TOKEN
の値はトンネルを追加した画面に表示された Token に書き換えます。version: "3.7" services: # https://hub.docker.com/_/nginx home-sever: restart: unless-stopped image: nginx:latest ports: - "80:80" # https://hub.docker.com/r/cloudflare/cloudflared tunnel: restart: unless-stopped image: cloudflare/cloudflared:latest command: tunnel --no-autoupdate run environment: - TUNNEL_TOKEN=トンネルを追加した画面に表示された Token
-
自宅サーバーと Tunnel を起動します。
docker-compose up -d
停止する場合は次のコマンドを実行します。
docker-compose down
削除する場合は次のコマンドを実行します。
docker-compose rm
-
Tunnel が接続されると Connectors に Connectors ID が表示されるので、
Next
ボタンを押下します。 -
Public Hostname を入力し
Save hostname
を押下します。- Service > Type: HTTP
- Service > URL: home-sever:80
-
自宅サーバーにアクセスできることを確認します。