Cloudflare Tunnel 仕組み

全体像

  1. サーバーに専用ソフト(cloudflared)を導入する
  2. ソフトが内側からCloudflareへ接続を開始する
  3. 外からのポート開放なしで通信路(トンネル)ができる
  4. 作成されたトンネルと公開用ドメインを紐づける
  5. ユーザーがそのドメインにアクセスする
  6. Cloudflareがトンネルを通してサーバーへデータを届ける

内側から接続を開始する詳細な仕組み

  1. cloudflaredが起動すると、まずCloudflareのAnycast IP(最寄りのデータセンター)へ接続を試みる
  2. 標準的なHTTPS(443番ポート)やQUICを用いて、通常のWebブラウジングと同じ「外向き」のリクエストを送る
  3. Cloudflareのネットワーク側で認証が行われ、正当なコネクタであると認識される
  4. 認証後、サーバーとCloudflareの間に「常時接続された通信路」が確立される
  5. この接続は一度確立されると維持され続け、サーバー側から定期的に生存確認(キープアライブ)が行われる
  6. cloudflaredはCloudflareからの「ユーザーのリクエストが来た」という通知をこの通信路で待ち受ける