全体像
- サーバーに専用ソフト(cloudflared)を導入する
- ソフトが内側からCloudflareへ接続を開始する
- 外からのポート開放なしで通信路(トンネル)ができる
- 作成されたトンネルと公開用ドメインを紐づける
- ユーザーがそのドメインにアクセスする
- Cloudflareがトンネルを通してサーバーへデータを届ける
内側から接続を開始する詳細な仕組み
- cloudflaredが起動すると、まずCloudflareのAnycast IP(最寄りのデータセンター)へ接続を試みる
- 標準的なHTTPS(443番ポート)やQUICを用いて、通常のWebブラウジングと同じ「外向き」のリクエストを送る
- Cloudflareのネットワーク側で認証が行われ、正当なコネクタであると認識される
- 認証後、サーバーとCloudflareの間に「常時接続された通信路」が確立される
- この接続は一度確立されると維持され続け、サーバー側から定期的に生存確認(キープアライブ)が行われる
- cloudflaredはCloudflareからの「ユーザーのリクエストが来た」という通知をこの通信路で待ち受ける