Cloudflare Tunnel設定後にやるべき最重要テスト|公開URLからアプリまで確認する

Cloudflare Tunnelの設定が終わって、公開URLから画面も開けた!
これで経路は正しく設定できたと思っていいのかな?

最後に、公開URLからアプリ固有の応答まで届くか確認しよう!
これならDNS、HTTPS、Tunnel、NAS上のアプリまでをまとめてテストできるよ。
この記事のポイント
情報
- Cloudflare Tunnel設定後に最優先で確認したいテスト
- トップページの表示だけでは不十分な理由
- Immichのping APIを使った確認方法
- Home AssistantのWebSocketを使った確認方法
- 実際のサブドメインを記事やSNSに載せるときの注意点
最重要なのは「アプリ固有の応答」まで確認すること
Cloudflare Tunnelを設定した後、どうテストすればよいか纏めておきます。
ブラウザで画面が表示されることも大切です。ただし、それだけでは「Cloudflareのエラーページではないか」「別のサービスへ転送されていないか」まで明確に判定できません。
そこで行いたいのが、公開URLからアプリ固有の確認用エンドポイントへアクセスするテストです。
Cloudflare TunnelのPublished applicationは、公開ホスト名とローカルサービスを対応付けて通信を転送します。
アプリ固有の応答まで返れば、次の経路を一度に確認できます。
- 公開ホスト名のDNS
- ブラウザやcurlからCloudflareまでのHTTPS
- Cloudflareから
cloudflaredまでのTunnel接続 cloudflaredからローカルサービスまでの接続- NAS上で動くアプリ自体の応答
テストしている経路の全体像
今回確認したいのは、単にcloudflaredコンテナが起動しているかではなく、利用者と同じ公開URLからリクエストを送り、NAS上のアプリから正しい応答が戻ることを確認します。
1234567利用者
↓ HTTPS
Cloudflare
↓ Cloudflare Tunnel(cloudflaredが確立した外向き接続)
NAS上のcloudflared
↓ ローカルHTTP
Immich / Home Assistantこのテストに成功すれば、途中のどこか一箇所だけではなく、公開経路全体がつながっていると判断できます。
Immichはping APIで確認する
Immichにはサーバーが応答できるか確認するためのGET /server/pingがあります。
公開ホスト名は記事やコマンド履歴に残しても問題ないテスト用の値に置き換えて説明します。
12345PUBLIC_HOST="service.example.com"
curl -sS \
-w '\nHTTP %{http_code}\n' \
"https://${PUBLIC_HOST}/api/server/ping"正常な場合は、次のように返ります。
12{"res":"pong"}
HTTP 200この結果から、公開URLが単に何らかのWebページを返しただけではなく、ImmichのAPIまで届いたことが分かります。
Immichの合格条件
HTTP 200と{"res":"pong"}の両方が返れば合格です。
Home AssistantはWebSocketで確認する
Home Assistantは画面のリアルタイム更新にWebSocketを利用します。
そのため、トップページの表示だけでなく、WebSocket接続がCloudflare Tunnelを通過できるか確認するのが重要です。
Home AssistantのWebSocket APIは/api/websocketで提供されています。
123456789101112PUBLIC_HOST="service.example.com"
curl -sS \
--http1.1 \
-i \
-N \
--max-time 3 \
-H 'Connection: Upgrade' \
-H 'Upgrade: websocket' \
-H 'Sec-WebSocket-Version: 13' \
-H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \
"https://${PUBLIC_HOST}/api/websocket"正常な場合は、最初にWebSocketへの切り替えを示す応答が返ります。
1HTTP/1.1 101 Switching Protocols続いて、Home Assistant固有の認証要求が返ります。
123{
"type": "auth_required"
}--max-time 3を指定しているため、約3秒後にcurlが終了します。WebSocketは接続を維持する仕組みなので、テストを短時間で終わらせるための指定です。
Home Assistantの合格条件
101 Switching Protocolsとauth_requiredの両方が確認できれば合格です。
結果から問題の場所を切り分ける
テスト結果は、次のように判断できます。
| 結果 | 状態 |
|---|---|
| アプリ固有の正常応答が返る | 公開URLからアプリまでの経路は正常 |
| DNSエラーになる | 公開ホスト名やDNSレコードを確認する |
| TLS・証明書エラーになる | Cloudflareの証明書やProxy設定を確認する |
502やオリジン接続エラーになる | TunnelのService URL、ポート、コンテナネットワークを確認する |
| 想定と違うアプリが返る | Published applicationのホスト名とServiceの対応を確認する |
エラーになった場合は、続けてcloudflaredのログを確認します。
1docker compose logs --tail=200 cloudflared外部からのテストとTunnelログを組み合わせると、「Cloudflareまで届いていないのか」「Tunnelからアプリへ届いていないのか」を切り分けやすくなります。
まとめ
Cloudflare Tunnel設定後の最重要テストは、公開URLからアプリ固有の応答まで届くか確認することです。
- Immichは
/api/server/pingからpongが返ることを確認する - Home Assistantは
/api/websocketが101 Switching Protocolsになり、auth_requiredが返ることを確認する - 成功すれば、DNS、HTTPS、Tunnel、ローカルネットワーク、アプリまでの経路をまとめて確認できる
コンテナの起動状態だけで安心せず、利用者と同じ公開URLから最後までリクエストを通して確認するのがポイントです。
ぜひトンネルの設定後は上記テストしてみてくださいね😗
Thanks for reading!
最後まで読んでくれてありがとう🔥



