Cloudflare Tunnel を作成し、最初のアプリケーションを 5 分以内に公開します。
- Cloudflare アカウント ↗
- Cloudflare 上のドメイン(アプリケーションの公開に必要)
cloudflaredをインストールする、インターネット接続のあるサーバーまたは VM
新しい Cloudflare Tunnel を作成します。
-
Cloudflare ダッシュボード ↗ で Networking > Tunnels を開きます。
Tunnels を開く ↗ -
Create Tunnel を選択します。
-
トンネル名を入力します(例:
production-webまたはstaging-api)。 -
Create Tunnel を選択します。
-
Setup Environment で、サーバーの OS とアーキテクチャを選択します。
-
Install and Run に表示されたインストールコマンドをコピーし、サーバーのターミナルで実行します。
-
トンネルが接続したら、Continue を選択します。
トンネルは Tunnels ページに Healthy ステータス で表示されます。
-
次の権限で API トークンを作成 します。
種類 項目 権限 Account Cloudflare Tunnel Edit Zone DNS Edit -
トンネルを作成します。
At least one of the following token permissions is required:Required API token permissions
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Create a Cloudflare Tunnelbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "api-tunnel", "config_src": "cloudflare" }' -
レスポンスから
idとtokenの値をコピーします。トンネルの設定と実行に使います。
アプリケーションをインターネットから利用できるようにするには、トンネルに公開アプリケーションルートを追加します。トンネルルートは、公開ホスト名をローカルサービスへ対応付けます。
オリジンがすでに HTTPS を提供している、または HTTP を HTTPS へリダイレクトしている場合は、HTTPS オリジンのトラブルシューティング を参照し、Service URL とオリジン設定を選びます。
-
Cloudflare ダッシュボード ↗ で Networking > Tunnels を開き、トンネルを選択します。 Tunnels を開く ↗
-
Routes で Add route を選択します。
-
Published application を選択します。
-
Hostname でサブドメインを入力し、ドロップダウンからドメインを選択します。
-
Service URL に、アプリケーションのローカルアドレスとポートを入力します。
例: Web サーバーが
cloudflaredと同じマシンで動いている場合:- ポート
80の HTTP:http://localhost:80 - ポート
443の HTTPS:https://localhost:443
Web サーバーが別マシンの場合:
http://192.0.2.1:80オリジン証明書がサービスアドレスではなく公開ホスト名をカバーしている場合は、Origin Server Name に証明書のホスト名を設定し、Disable TLS certificate verification はオフのままにします。設定の全体は HTTPS オリジンのトラブルシューティング を参照してください。
- ポート
-
Add route を選択します。
-
トンネルの ingress ルールを設定します。
At least one of the following token permissions is required:Required API token permissions
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Update Tunnel configurationbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations" \ --request PUT \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "config": { "ingress": [ { "hostname": "app.example.com", "service": "http://localhost:80", "originRequest": {} }, { "service": "http_status:404" } ] } }'ingress ルールの末尾には、キャッチオールルールが必要です。この例では、リクエストがどのホスト名にも一致しないとき、
cloudflaredは 404 ステータスコードで応答します。 -
アプリケーションの DNS レコードを作成します。
At least one of the following token permissions is required:Required API token permissions
DNS Write
Create DNS Recordbash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "type": "CNAME", "proxied": true, "name": "app.example.com", "content": "<TUNNEL_ID>.cfargotunnel.com" }' -
サーバーに
cloudflaredをインストールし、トンネルを作成する で取得したtokenを使ってトンネルを実行します。-
cloudflaredを ダウンロードしてインストール ↗ します。 -
次のコマンドを実行します。
sudo cloudflared service install <TUNNEL_TOKEN>
-
cloudflaredを ダウンロードしてインストール します。 -
管理者としてコマンドプロンプトを開きます。
-
次のコマンドを実行します。
cloudflared.exe service install <TUNNEL_TOKEN>
-
cloudflaredを ダウンロードしてインストール します。 -
ターミナルを開き、次のコマンドを実行します。
sudo cloudflared service install <TUNNEL_TOKEN>
-
ターミナルを開きます。
-
次のコマンドを実行します。
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <TUNNEL_TOKEN>
-
設定したホスト名で、アプリケーションが公開されます。Cloudflare はネットワーク経由でトラフィックを自動プロキシし、CDN キャッシュ、WAF、DDoS 対策を適用します。
ローカル開発では、Cloudflare アカウントなしで localhost をすぐ公開できます。
cloudflared tunnel --url http://localhost:8080ランダムな trycloudflare.com サブドメインが生成され、ローカルサーバーへトラフィックをプロキシします。Quick tunnels はテスト専用です。同時リクエストは 200 件までで、Server-Sent Events(SSE)には対応しません。
本番では、トンネルを作成 してください。
- ルーティング — DNS レコード、ロードバランサー、プロトコル対応を設定します。
- 設定 — レプリカのデプロイ、トークン管理、パフォーマンス調整を行います。
- ガイド — Kubernetes、AWS、GCP、Terraform などへのデプロイです。
- トラブルシューティング — よくあるエラーと接続の問題を解消します。