cloudflared Quick Tunnel をメール認証つきで共有する(--allowed-mail)
cloudflared tunnel --url ... で作る使い捨ての Quick Tunnel に --allowed-mail を付けると、指定したメールアドレス(ドメイン)の人だけがワンタイム PIN で入れるようになる。共有する側・見る側どちらも Cloudflare アカウントは不要。
どんなときに使う?
- ローカルの開発サーバー、Webhook の受け口、デモを特定の人にだけ見せたい
- これまでは
trycloudflare.comの URL を知っている人なら誰でもアクセスできた。「自分しか使わない前提の甘いサービス」をトンネルで気軽に公開してしまう危険は、X の投稿でも何度も指摘されている(下の「背景」参照)
手順
cloudflared 2026.9.3 以降に更新してから:
bash
# 1人だけ許可
cloudflared tunnel --url http://localhost:8080 --allowed-mail [email protected]
# 複数人(フラグを繰り返す or カンマ区切り)
cloudflared tunnel --url http://localhost:8080 \
--allowed-mail [email protected] \
--allowed-mail [email protected]
cloudflared tunnel --url http://localhost:8080 --allowed-mail '[email protected],[email protected]'
# ドメイン単位(シェル展開を防ぐためクォートする)
cloudflared tunnel --url http://localhost:8080 --allowed-mail '*@example.com'訪問者は URL を開く → メールアドレスを入力 → 届いた PIN を入力、で入れる。
コーディングエージェントに守らせる
Cloudflare のブログでは、AGENTS.md などに次の 1 行を書いておく方法が紹介されている。
When you start a Quick Tunnel, always add --allowed-mail [email protected].エージェントが指示を守らないこともあるので、cloudflared の出力(メール認証が有効か、ルール数がいくつかを表示する。アドレス自体は出さない)で確認する。
注意点
- 許可する相手を変えるには
cloudflaredを止めて新しい Quick Tunnel を作り直す。プロセスを止めると全員のアクセスが終わる。 - ブラウザでの対話的な認証が前提なので、curl などの非対話クライアントは通れない。
- Quick Tunnel 自体の制約はそのまま: 稼働保証なし、同時リクエスト 200 まで(超えると 429)、SSE 非対応、毎回ホスト名が変わる。常用や本番には名前付きの Cloudflare Tunnel を使う。
--allowed-mailを付け忘れると従来どおり誰でもアクセスできる公開トンネルになる。
背景
- 「自分しか使わない前提の甘いサービスを Cloudflare Tunnel で気軽に公開すると危ない」: @yousukezan · 2026-06-26
- 社内ネットワークでブロックしていても勝手に外部公開できてしまう、という管理側の悩み: @xkabutomushi · 2026-06-11 / @nanashi_king_t · 2026-06-11