メインコンテンツへスキップ
Cloudflare Tunnel設定後にやるべき最重要テスト|公開URLからアプリまで確認する

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

2026年07月18日
2026年07月18日
3 分
テック Cloudflare NAS スマートホーム
617 文字

Tailwind CSS chat bubble component

Cloudflare Tunnelの設定が終わって、公開URLから画面も開けた!

これで経路は正しく設定できたと思っていいのかな?

Tailwind CSS chat bubble component

最後に、公開URLからアプリ固有の応答まで届くか確認しよう!

これならDNS、HTTPS、Tunnel、NAS上のアプリまでをまとめてテストできるよ。

この記事のポイント#

情報

  • Cloudflare Tunnel設定後に最優先で確認したいテスト
  • トップページの表示だけでは不十分な理由
  • Immichのping APIを使った確認方法
  • Home AssistantのWebSocketを使った確認方法
  • 実際のサブドメインを記事やSNSに載せるときの注意点

最重要なのは「アプリ固有の応答」まで確認すること#

ぽん助がパソコンでCloudflare Tunnelの経路を確認しているイラスト
ぽん助がパソコンでCloudflare Tunnelの経路を確認しているイラスト

Cloudflare Tunnelを設定した後、どうテストすればよいか纏めておきます。

ブラウザで画面が表示されることも大切です。ただし、それだけでは「Cloudflareのエラーページではないか」「別のサービスへ転送されていないか」まで明確に判定できません。

そこで行いたいのが、公開URLからアプリ固有の確認用エンドポイントへアクセスするテストです。

Cloudflare TunnelのPublished applicationは、公開ホスト名とローカルサービスを対応付けて通信を転送します。

アプリ固有の応答まで返れば、次の経路を一度に確認できます。

  • 公開ホスト名のDNS
  • ブラウザやcurlからCloudflareまでのHTTPS
  • CloudflareからcloudflaredまでのTunnel接続
  • cloudflaredからローカルサービスまでの接続
  • NAS上で動くアプリ自体の応答

テストしている経路の全体像#

利用者からCloudflare Edge、cloudflared、NAS上のアプリへ到達し応答が戻る構成図
利用者からCloudflare Edge、cloudflared、NAS上のアプリへ到達し応答が戻る構成図

今回確認したいのは、単にcloudflaredコンテナが起動しているかではなく、利用者と同じ公開URLからリクエストを送り、NAS上のアプリから正しい応答が戻ることを確認します。

1
2
3
4
5
6
7
利用者
  ↓ HTTPS
Cloudflare
  ↓ Cloudflare Tunnel(cloudflaredが確立した外向き接続)
NAS上のcloudflared
  ↓ ローカルHTTP
Immich / Home Assistant

このテストに成功すれば、途中のどこか一箇所だけではなく、公開経路全体がつながっていると判断できます。

Immichはping APIで確認する#

service.example.comを使ったImmich ping APIテストとHTTP 200、pongの合格条件
service.example.comを使ったImmich ping APIテストとHTTP 200、pongの合格条件

Immichにはサーバーが応答できるか確認するためのGET /server/pingがあります。

公開ホスト名は記事やコマンド履歴に残しても問題ないテスト用の値に置き換えて説明します。

BASH
1
2
3
4
5
PUBLIC_HOST="service.example.com"

curl -sS \
  -w '\nHTTP %{http_code}\n' \
  "https://${PUBLIC_HOST}/api/server/ping"

正常な場合は、次のように返ります。

1
2
{"res":"pong"}
HTTP 200

この結果から、公開URLが単に何らかのWebページを返しただけではなく、ImmichのAPIまで届いたことが分かります。

Immichの合格条件

HTTP 200{"res":"pong"}の両方が返れば合格です。

Home AssistantはWebSocketで確認する#

Home Assistant WebSocketで101 Switching Protocolsとauth_requiredを確認する図
Home Assistant WebSocketで101 Switching Protocolsとauth_requiredを確認する図

Home Assistantは画面のリアルタイム更新にWebSocketを利用します。

そのため、トップページの表示だけでなく、WebSocket接続がCloudflare Tunnelを通過できるか確認するのが重要です。

Home AssistantのWebSocket APIは/api/websocketで提供されています。

BASH
1
2
3
4
5
6
7
8
9
10
11
12
PUBLIC_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への切り替えを示す応答が返ります。

1
HTTP/1.1 101 Switching Protocols

続いて、Home Assistant固有の認証要求が返ります。

JSON
1
2
3
{
  "type": "auth_required"
}

--max-time 3を指定しているため、約3秒後にcurlが終了します。WebSocketは接続を維持する仕組みなので、テストを短時間で終わらせるための指定です。

Home Assistantの合格条件

101 Switching Protocolsauth_requiredの両方が確認できれば合格です。

結果から問題の場所を切り分ける#

テスト結果は、次のように判断できます。

結果状態
アプリ固有の正常応答が返る公開URLからアプリまでの経路は正常
DNSエラーになる公開ホスト名やDNSレコードを確認する
TLS・証明書エラーになるCloudflareの証明書やProxy設定を確認する
502やオリジン接続エラーになるTunnelのService URL、ポート、コンテナネットワークを確認する
想定と違うアプリが返るPublished applicationのホスト名とServiceの対応を確認する

エラーになった場合は、続けてcloudflaredのログを確認します。

BASH
1
docker compose logs --tail=200 cloudflared

外部からのテストとTunnelログを組み合わせると、「Cloudflareまで届いていないのか」「Tunnelからアプリへ届いていないのか」を切り分けやすくなります。

まとめ#

Cloudflare Tunnel設定後の最重要テストは、公開URLからアプリ固有の応答まで届くか確認することです。

  • Immichは/api/server/pingからpongが返ることを確認する
  • Home Assistantは/api/websocket101 Switching Protocolsになり、auth_requiredが返ることを確認する
  • 成功すれば、DNS、HTTPS、Tunnel、ローカルネットワーク、アプリまでの経路をまとめて確認できる

コンテナの起動状態だけで安心せず、利用者と同じ公開URLから最後までリクエストを通して確認するのがポイントです。

ぜひトンネルの設定後は上記テストしてみてくださいね😗

Thanks for reading!

最後まで読んでくれてありがとう🔥


関連記事