Emergency Disconnect を使うと、組織と管理者は Cloudflare のインフラから独立して、Cloudflare One Client(旧称 WARP)のフリートを切断および再接続できます。たとえば Cloudflare ネットワークの障害 時でも、Cloudflare のシステムが停止または到達不能な場合にデバイスを管理し続けられます。
次の 2 つの仕組みがあります。
- External Emergency Disconnect: Cloudflare One Client が、お客様ホストの HTTPS エンドポイントを定期的にポーリングして切断シグナルを取得します。エンドポイントへのネットワーク接続は必要ですが、Cloudflare のインフラに到達できない場合でも動作します。
- Local Emergency Disconnect: Cloudflare One Client が、デバイス上のローカル JSON ファイルを監視して切断シグナルを取得します。ネットワーク接続は不要で、Cloudflare と自社インフラの両方に到達できないディザスタリカバリの場面で役立ちます。
Emergency Disconnect は、ダッシュボード起点の Disconnect the Cloudflare One Client on all devices 設定と組み合わせても使えます。各仕組みは単独でも、多層の耐障害性のために併用しても使えます。いずれかのソースからの切断シグナルで切断されます。クライアントが再接続するには、すべてのソースが通常動作を示す必要があります。これらの設定の相互作用については、デバイスクライアント設定の優先順位 を参照してください。
- セキュリティインシデント対応: フリート全体の WARP トンネルをすばやく終了します。
- コンプライアンスと監査: 組織自身のインフラで完全に分離・監査・制御できる「緊急停止」機能を求める、機密または規制対象の環境の要件を満たします。
- ディザスタリカバリ: デバイスが Cloudflare の API に到達できない場合(ネットワーク障害、ルーティングの問題、クライアント側の設定ミスなど)、管理者はお客様ホストのエンドポイントまたはローカルシグナルファイルでフリートを強制切断できます。
- 事業継続計画(BCP): Cloudflare と自社インフラの両方に到達できない場合でも、ローカルの BCP スクリプトから Emergency Disconnect を起動できます。
- ローカル自動化: 構成管理ツール(Ansible、Puppet、Chef)や監視エージェントと連携し、HTTPS エンドポイントを維持せずに切断状態を管理できます。
外部エンドポイントの応答ペイロードと、ローカルシグナルファイルの内容は、次の形式の有効な JSON である必要があります。
{
"emergency_disconnect": false | true
}emergency_disconnectがtrueの場合、デバイスは緊急切断を開始します。emergency_disconnectがfalseの場合、デバイスは通常動作を続けます。
機能の可用性
| クライアントモード | Zero Trust プラン ↗ |
|---|---|
| すべてのモード | すべてのプラン |
| システム | 可用性 | 最小クライアントバージョン |
|---|---|---|
| Windows | ✅ | 2025.10.186.0 |
| macOS | ✅ | 2025.10.186.0 |
| Linux | ✅ | 2025.10.186.0 |
| iOS | ❌ | |
| Android | ❌ | |
| ChromeOS | ❌ |
External Emergency Disconnect を有効にすると、Cloudflare One Client はお客様ホストの HTTPS エンドポイントを定期的にポーリングします。クライアントが接続状態を変えるのは、新しい状態を含む有効な JSON ペイロードを受け取った場合だけです。状態の取得に失敗しても(エンドポイント到達不能、無効な証明書フィンガープリント、不正なペイロードなど)、クライアントの状態は変わりません。
外部切断エンドポイントは、Cloudflare One Client が緊急切断シグナルを取得する、Cloudflare 外でホストされた HTTPS サーバーです。このエンドポイントの管理は、お客様の責任です。
外部エンドポイントの URL は次の条件を満たしてください。
- HTTPS プロトコルを使う。
- ホストにはドメインではなく、IPv4 または IPv6 アドレスを使う。
- (推奨)デバイスがネットワークの場所に関係なく最新状態を取得できるよう、パブリック IP を使う。
Cloudflare One Client は Rustls ↗ で TLS 接続を確立します。HTTPS エンドポイントが、Rustls がサポートする暗号スイート ↗ のいずれかを受け入れることを確認してください。
External Emergency Disconnect を設定するには、グローバル切断シグナルを配信する、自社インフラ上の HTTPS エンドポイントが必要です。Cloudflare One Client は外部エンドポイントをポーリングし、Zero Trust にアップロードした SHA-256 フィンガープリントと照合して TLS/SSL 証明書を検証します。詳細は 外部エンドポイントの要件 を参照してください。
次の例は、Docker の nginx コンテナで外部切断エンドポイントをデプロイする方法です。
-
TLS/SSL 証明書を生成します。
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pemDistinguished Name(DN)欄の入力を求められます。組織の情報を入力するか、
Enterを押してデフォルト値を使います。コマンドは PEM 形式の証明書と秘密鍵を出力します。これらのファイルは安全な場所に保管してください。
-
ネットワーク上の HTTPS サーバーが、この証明書と鍵を使うように設定します。
a.
nginx.confという nginx 設定ファイルを作成します。nginx.conftxt events { worker_connections 1024; } http { server { listen 443 ssl; ssl_certificate /certs/cert.pem; ssl_certificate_key /certs/key.pem; location /status/disconnect { default_type application/json; return 200 '{"emergency_disconnect": false}'; } } }必要に応じて、
/certs/cert.pemと/certs/key.pemを証明書と鍵の場所に置き換えます。b. Docker Compose ファイルに nginx イメージを追加します。
docker-compose.ymlyml services: nginx: image: nginx:latest ports: - 3333:443 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./certs:/certs:ro必要に応じて、
./nginx.confと./certsを nginx 設定ファイルと証明書の場所に置き換えます。c. サーバーを起動します。
docker compose up -d -
HTTPS エンドポイントが動作していることを確認するには、エンドユーザーのデバイスから curl コマンドを実行します。自己署名証明書を使っているため、
--insecureオプションが必要です。curl --insecure https://<server-ip>:3333/status/disconnect{"emergency_disconnect": false}
ローカル証明書の SHA-256 フィンガープリントを取得する手順は次のとおりです。
openssl x509 -noout -fingerprint -sha256 -inform pem -in cert.pem | tr -d :出力は次のようになります。
SHA256 Fingerprint=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662接続をテストし、リモートサーバーの SHA-256 フィンガープリントを取得する手順は次のとおりです。
openssl s_client -connect <private-server-IP>:443 < /dev/null 2> /dev/null | openssl x509 -noout -fingerprint -sha256 | tr -d :出力は次のようになります。
SHA256 Fingerprint=DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662ダッシュボードで External Emergency Disconnect を設定する手順は次のとおりです。
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Management を開きます。
- Global disconnection settings を選択します。
- Manage device connection using an external signal を探し、Edit を選択します。
- 次の欄を設定します。
- Endpoint IP address and port: 外部切断シグナルを取得する HTTPS URL を入力します(例:
https://192.0.2.1:3333/status/disconnect)。エンドポイントは HTTPS を使い、ホストは IPv4 または IPv6 アドレスである必要があります。 - Polling frequency: Cloudflare One Client が外部切断シグナルを取得する間隔を選びます。
- Certificate fingerprint: HTTPS サーバー証明書の SHA-256 フィンガープリント を入力します(例:
DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662)。
- Endpoint IP address and port: 外部切断シグナルを取得する HTTPS URL を入力します(例:
- Save を選択します。
- Manage device connection using an external signal をオンにします。
組織内のすべての Cloudflare One Client は、外部エンドポイントのポーリングを開始し、応答ペイロードに基づいて接続または切断します。
API で External Emergency Disconnect を設定するには、/devices/settings エンドポイントへ PATCH リクエストを送ります。
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/settings" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"external_emergency_signal_enabled": true,
"external_emergency_signal_url": "https://192.0.2.1:3333/status/disconnect",
"external_emergency_signal_fingerprint": "DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662",
"external_emergency_signal_interval": "1m"
}'MDM で External Emergency Disconnect を設定するには、MDM ファイル に次のパラメーターを追加します。
<key>external_emergency_signal_url</key>
<string>https://192.0.2.1:3333/status/disconnect</string>
<key>external_emergency_signal_fingerprint</key>
<string>DD4F4806C57A5BBAF1AA5B080F0541DA75DB468D0A1FE731310149500CCD8662</string>
<key>external_emergency_signal_interval</key>
<integer>60</integer>-
Cloudflare One Client が接続されていることを確認します。
-
External Emergency Disconnect 機能が オン になっていることを確認します。
-
外部エンドポイント の設定で、
emergency_disconnectをtrueに変更します。{ "emergency_disconnect": true } -
変更を適用するには、サーバーのリロードが必要な場合があります。例の
nginxサーバー をリロードするには、次を実行します。docker exec <container-name-or-id> nginx -s reload
Cloudflare One Client は、設定したポーリング間隔内に自動で切断され、Cloudflare One Client の GUI に Admin directed disconnect が表示されます。すべてのデバイスを再接続するには、emergency_disconnect を false に戻します。
機能の利用可否
| クライアントモード | Zero Trust プラン ↗ |
|---|---|
| すべてのモード | すべてのプラン |
| システム | 利用可否 | 最小クライアントバージョン |
|---|---|---|
| Windows | ✅ | 2026.5.0 |
| macOS | ✅ | 2026.5.0 |
| Linux | ✅ | 2026.5.0 |
| iOS | ❌ | |
| Android | ❌ | |
| ChromeOS | ❌ |
Local Emergency Disconnect を使うと、リモートインフラへのネットワークアクセスなしで、デバイス自体から緊急切断を起動できます。Cloudflare One Client は、管理者が書き込み可能な固定パスのローカル JSON ファイルを監視します。ファイルに切断シグナルが含まれると、クライアントは緊急切断状態になります。ローカルスクリプト、構成管理ツール(Ansible、Puppet、Chef など)、監視エージェントは、デバイス上でシグナルファイルを直接作成または変更できます。
Cloudflare One Client は、変更に管理者権限が必要な固定ファイルパスを監視します。パスは設定できません。
| オペレーティングシステム | ファイルパス |
|---|---|
| Windows | %PROGRAMDATA%\Cloudflare\emergency_disconnect.json |
| macOS | /Library/Application Support/Cloudflare/emergency_disconnect.json |
| Linux | /var/lib/cloudflare-warp/emergency_disconnect.json |
シグナルファイルは、外部 HTTPS エンドポイントと同じ JSON 形式 です。ファイルが存在しない場合、クライアントは通常動作(false)として扱います。ファイルの JSON が無効な場合、クライアントはエラーを記録し、状態は変えません。クライアントはファイルの変更に 30 秒以内に反応します。
機能を有効にするには、MDM 経由で local_emergency_signal_enabled パラメーターを導入します。MDM ファイル に次を追加します。
<key>local_emergency_signal_enabled</key>
<true />MDM 設定が適用されると、Cloudflare One Client は シグナルファイルのパス の監視を開始します。設定変更は、クライアントの再起動なしで反映されます。
- Cloudflare One Client が接続されていることを確認します。
- Local Emergency Disconnect が オン になっていることを確認します。
- お使いのオペレーティングシステムの 適切なパス に、次の内容でシグナルファイルを作成します。
sudo tee "/Library/Application Support/Cloudflare/emergency_disconnect.json" <<< '{"emergency_disconnect": true}'管理者権限の PowerShell プロンプトを開き、次を実行します。
Set-Content -Path "$env:PROGRAMDATA\Cloudflare\emergency_disconnect.json" -Value '{"emergency_disconnect": true}'sudo tee /var/lib/cloudflare-warp/emergency_disconnect.json <<< '{"emergency_disconnect": true}'Cloudflare One Client は 30 秒以内に自動で切断され、Cloudflare One Client の GUI に Admin directed disconnect が表示されます。
再接続するには、emergency_disconnect を false に変更するか、ファイルを削除します。
sudo rm "/Library/Application Support/Cloudflare/emergency_disconnect.json"Remove-Item "$env:PROGRAMDATA\Cloudflare\emergency_disconnect.json"sudo rm /var/lib/cloudflare-warp/emergency_disconnect.json外部エンドポイントとローカルファイルからの緊急切断シグナルは Cloudflare のインフラから独立しているため、これらの切断は Cloudflare に記録されません。ダッシュボードのログは、機能設定の変更(機能のオン/オフやエンドポイント URL の変更など)だけを報告し、切断イベントは報告しません。
デバイスの現在の緊急切断状態を取得するには、次を実行します。
warp-cli settingsMerged configuration:
(override) Emergency disconnect: true (issued @ 2025-12-09T13:57:42.597864Z)現在の状態は、クライアント診断ログ の warp-settings.txt でも確認できます。
外部エンドポイントが利用不能になる、または無効な構成を返すと、Cloudflare One Client が緊急切断状態のままになることがあります。External Emergency Disconnect の構成を削除すると、クライアントを復旧できます。
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Management を開きます。
- Global disconnection settings を選択します。
- Manage device connection using an external signal をオフにします。
Cloudflare は新しい設定をクライアントへ伝播し、ポーリングを停止してキャッシュされた緊急状態を破棄するよう指示します。
エンドポイント URL とフィンガープリントを空文字にした PATCH リクエストを送ります。
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/settings" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"external_emergency_signal_enabled": false,
"external_emergency_signal_url": "",
"external_emergency_signal_fingerprint": "",
"external_emergency_signal_interval": "1m"
}'Cloudflare は新しい設定をクライアントへ伝播し、ポーリングを停止してキャッシュされた緊急状態を破棄するよう指示します。
MDM で External Emergency Disconnect を導入した場合は、MDM プロファイルから external_emergency_signal_url キー(および関連キー)を削除します。その後、MDM で変更をデバイスへ配信します。Cloudflare One Client は外部エンドポイントのポーリングを停止し、キャッシュされた緊急状態を破棄します。
または、ユーザーが Cloudflare One Client を、この機能が設定されていない 別の MDM 構成 に切り替えられます。
ローカルの緊急切断状態をクリアする手順は次のとおりです。
- シグナルファイル を削除するか、
emergency_disconnectがfalseになるよう更新します。 - または、MDM プロファイルから
local_emergency_signal_enabledキーを削除し、変更をデバイスへ配信して機能をオフにします。クライアントはローカルファイルの監視を停止し、キャッシュされたローカルシグナル状態を破棄します。
最終手段として、CLI で個別デバイスの緊急切断をリセットできます。
warp-cli registration deleteこのコマンドは、クライアント登録、ローカルポリシー、キャッシュされた緊急状態をクリアします。再接続するには、External Emergency Disconnect をオフ にしたうえで、Zero Trust 組織に Cloudflare One Client を再登録 する必要があります。
グローバル切断設定がどのように相互作用し、ほかのデバイスクライアントプロファイル設定にどう影響するかを説明します。
クライアントは、Cloudflare ダッシュボード(Disconnect the Cloudflare One Client on all devices)、外部エンドポイント、ローカルシグナルファイルからの切断シグナルに従います。いずれか のソースが切断をトリガーすると、グローバル切断が適用されます。クライアントが再接続するには、すべてのソースが通常動作を示す必要があります。
次の表は、3 つのシグナルソースの組み合わせです。いずれか のソースが切断を示すと、クライアントは切断します。
| ダッシュボード(Disconnect all devices) | 外部エンドポイント | ローカルファイル | 結果 |
|---|---|---|---|
| On | true |
true |
強制切断 |
| On | true |
false/なし |
強制切断 |
| On | false |
true |
強制切断 |
| On | false |
false/なし |
強制切断 |
| Off | true |
true |
強制切断 |
| Off | true |
false/なし |
強制切断 |
| Off | false |
true |
強制切断 |
| Off | false |
false/なし |
通常動作 |
グローバル切断が有効なあいだ、Auto connect は適用されません。
グローバル切断が有効なあいだ、Lock device client switch は適用されません。ユーザーは、管理者オーバーライドコード がないかぎり、Cloudflare One Client を接続できません。
グローバル切断は、既存の 管理者オーバーライドコード をクリアします。グローバル切断中にユーザーが再接続できるのは、新しい 管理者オーバーライドコード を使う場合だけです。たとえば、グローバル切断の原因となったインシデントの解決をテストできるよう、IT 担当者にコードを渡せます。オーバーライドコードは、オーバーライドのタイムアウトが切れるまで、特定のユーザーとデバイスをグローバル切断から除外します。