接続トラブルシューティング · Clash 技術ブログ

FlClash の Core が Windows のスリープ復帰後に終了する場合の対処法

FlClash 0.8.97 では、Windows Modern Standby 中に IPC のタイムアウトで Core が終了する場合があります。v0.8.98 でこの問題と Geo 情報が更新されない問題を修正しました。この記事では、更新、検証、ロールバックの手順を説明します。

  • FlClash
  • v0.8.98
  • Windows
  • Modern Standby
  • Geo リソース
目次

v0.8.98 の二つの修正を切り分ける

FlClash v0.8.98 は 2026 年 9 月 14 日にリリースされました。公式 Release に記載された修正は二つだけです。Windows がスリープに入りデスクトップアプリが中断されても Core を動かし続ける修正と、Geo リソース更新完了後にファイルサイズと時刻を再取得する修正です。

一つ目は、FlClash デスクトップアプリ、Helper 子プロセス、Core 間の IPC ライフサイクルを扱う修正です。旧処理では途中まで書き込まれたフレームがタイムアウトすると IPC 接続を閉じ、読み取りループの終了に伴って Core も終了していました。新処理はタイムアウト中も待機を続け、重大なエラーの場合にだけ接続を閉じます。

二つ目は画面の状態表示に関する修正です。旧版は更新要求が返るとすぐ Geo ファイルを読み取っていましたが、その時点では Core の書き込みが完了しておらず、リソース画面に古いサイズと時刻が残ることがありました。新版は更新状態が実際に終了してから再取得します。旧版で必ずファイル更新に失敗していたという意味でも、GeoIP や GeoSite のデータ内容が更新されたという説明でもありません。

症状から切り分ける

症状今回の修正に該当するか次の手順
Windows のスリープ前は使えるが、復帰後は FlClash の画面が残っているのに Core が停止している該当する可能性ありModern Standby を確認し、更新後に同じ条件で比較する
Geo の更新完了が表示されたが、リソース画面のサイズと時刻が古いまま二つ目の表示問題に該当更新後、処理状態が終了するまで待ってファイル情報を確認する
復帰後、PC 全体でネットワークに接続できない判断材料が不足まず Wi-Fi、ネットワークアダプター、システムプロキシ、TUN を確認する
Geo ファイルのダウンロード失敗、またはルールを読み込めない二つ目の修正対象外ダウンロード、検証、パス、Core ログを確認する
Android または macOS のスリープ後に接続がおかしい今回説明する Windows の経路には該当しない各 OS の VPN、権限、バックグラウンド制限を確認する

更新前に比較できる基準を記録する

まずサブスクリプションの更新、ノードの切り替え、DNS の変更は行いません。現在の FlClash と Windows のバージョン、パッケージのアーキテクチャ、Profile、ポリシーグループ、固定したノード、システムプロキシと TUN のどちらを使っているかを記録します。同じ接続先へ実際の HTTPS 要求を一回送り、Connections に表示されることを確認してください。

スリープ問題を検証する場合は、タスク マネージャーまたは FlClash の状態画面で Core が動いていることを記録してから、PC を通常の手順でスリープさせて復帰します。比較条件は、同じ Profile、ノード、ネットワーク、トラフィックの取り込み方法だけに絞ってください。

同時に、リソース画面で実際に更新する Geo ファイルを一つ選び、現在のサイズと表示時刻を記録します。この基準は画面表示が更新されるかを判断するためのものです。変化を作る目的で Geo ファイルを削除したり、サブスクリプション、ノード、ルールセットをテスト用ファイルにしたりしないでください。

更新前の基準を作る

  1. Profile と設定をバックアップする

    アプリ内のエクスポートまたはバックアップを使い、コピーをアプリのデータディレクトリ外に保存します。ログを公開する前に、サブスクリプション URL、ノードのパスワード、個人パスを削除してください。

  2. 接続経路を一つに固定する

    同じ Profile、ポリシーグループ、ノード、システムプロキシまたは TUN モードを保ち、HTTPS 要求を一回完了して接続結果を記録します。

  3. スリープ前の状態を記録する

    Core が動いていることを確認し、FlClash のバージョンと現在のトラフィック取り込み方法を記録してから、再現可能な手順でスリープと復帰を一回行います。

  4. Geo ファイル情報を記録する

    リソースを一つ選び、更新前のファイルサイズ、時刻、更新状態を記録します。元のファイルは削除しません。

powercfg で Modern Standby を確認する

FlClash の修正コミットは Windows Modern Standby を明示的に対象としています。Microsoft は、PC が対応するスリープ状態を powercfg /a で確認できると説明しています。

出力に Standby (S0 Low Power Idle) が含まれていれば、そのデバイスはこの待機モデルを使っています。Network Connected または Network Disconnected と表示される場合があります。

Modern Standby ではデスクトップアプリが中断される一方、サービスや Helper の子プロセスは別の実行状態にある場合があります。旧版 FlClash では、アプリが読み取りを停止し、Helper が Core を保持したままの時間帯に、IPC の途中までのフレーム書き込みがタイムアウトする可能性がありました。

powercfg /a に従来の S3 しか表示されない場合や、PC がスリープせずロックまたは画面消灯しただけの場合、この因果関係をそのまま当てはめることはできません。正式版への更新は可能ですが、ネットワークアダプターの復帰、システムプロキシ、TUN、DNS、ノードを引き続き確認してください。

Windows ターミナルで利用可能なスリープ状態を確認する
powercfg /a

出力に Standby (S0 Low Power Idle) が含まれる

対象範囲が一致しています。同じ手順で v0.8.97 と v0.8.98 を比較してください。

Standby (S3) だけが利用可能

今回の Modern Standby 修正の問題とは判断せず、一般的なスリープ復帰経路を引き続き確認します。

利用可能なスリープ状態がシステムに表示されない

まず Windows またはデバイスの電源設定を直し、FlClash の更新をシステム修復の代わりにしないでください。

画面をロックしただけでも Core が停止する

ログと再現条件を残し、アプリの終了、Helper、セキュリティソフトを確認します。画面ロックを、確認済みのスリープ時タイムアウトとして扱わないでください。

Windows Modern Standby での FlClash プロセスの関係
  1. FlClash デスクトップアプリWindows が低電力待機に入ると中断される場合がある
  2. Helper 子プロセスCore を引き続き動かし、IPC でアプリと状態をやり取りする
  3. 途中までのフレーム書き込みが停止旧処理はタイムアウトを切断とみなし Core を終了する
  4. v0.8.98 で書き込みを再開タイムアウト後も待機し、重大なエラーの場合だけ接続を閉じる

この修正が対象とするのは、Modern Standby でアプリが中断され、Helper が動き続ける IPC 経路だけです。ネットワークアダプター、ノード、DNS、TUN による別のスリープ問題は個別に調べる必要があります。

公式 Release から v0.8.98 をインストールする

今回の修正は v0.8.98 の正式 Release に含まれているため、main ブランチのビルドをインストールする必要はありません。一般的な Intel または AMD 搭載 Windows PC は windows-amd64-setup.exe、Windows on ARM デバイスは windows-arm64-setup.exe を選びます。

ポータブル ZIP は、もともとポータブル用ディレクトリを使い、データの保存場所を管理できるユーザーにだけ向いています。

2026年9月17日時点で、当サイトでは v0.8.98 のバックアップを検証して提供し、旧版のファイルも引き続き保管しています。今回の修正を利用するには、ダウンロードページに明記された v0.8.98 のバックアップ、または chen08209/FlClash の公式 Release の該当ファイルを選び、ファイルのハッシュを同じ Release の SHA256SUMS と照合してください。

インストール前にシステムプロキシまたは TUN を無効にし、デバイスが直接接続できることを確認してから、FlClash のメニューでアプリを完全に終了します。元の設定ディレクトリと更新前のバックアップを残し、アプリ全体だけを置き換えてください。新しい Helper、Core、DLL、リソースファイルだけを旧インストール先へコピーしないでください。

Windows インストーラーの SHA256 を確認する
Get-FileHash .\FlClash-0.8.98-windows-amd64-setup.exe -Algorithm SHA256

一度に変更するのはアプリだけ

  1. 公式タグを確認する

    chen08209/FlClash の v0.8.98 Release を開き、プレリリースのページや第三者による再パッケージではないことを確認します。

  2. 正しいアーキテクチャを選ぶ

    一般的な x64 PC は amd64、Windows on ARM は arm64 を選びます。インストーラー版とポータブル ZIP 版で同じデータディレクトリを混用しないでください。

  3. 完全性を確認する

    インストーラーに Get-FileHash を実行し、完全な SHA256 を同じ Release の SHA256SUMS と照合します。

  4. 完全に終了してからインストールする

    先に直接接続へ戻して旧アプリを終了し、完全な v0.8.98 を上書きインストールします。Profile、DNS、ノードは同時に変更しません。

復帰後に Core と実際の通信を同時に検証する

v0.8.98 を起動したら、バージョン、Profile、ポリシーの選択、元のトラフィック取り込み方法が正しいことを確認します。スリープ前に HTTPS 要求を一回完了し、Connections に記録があることを確認してから、Windows のスリープ操作で待機状態に入ります。復帰直後に設定を変更しないでください。

まず FlClash が Core の状態を読み取れるか確認し、同じ HTTPS 接続先へアクセスして新しい Connections を調べます。アプリ画面が残っていても Core が動いているとは限らず、ノードの遅延値があってもシステム通信が復旧したとは限りません。状態、接続記録、実際の要求の三つが同時に成立する必要があります。

同じスリープと復帰を少なくとも二回繰り返し、一度だけネットワークがすぐ戻った結果を修正済みと誤判断しないようにします。毎回、同じネットワーク、Profile、ノード、モードを使用してください。一回目は成功し二回目に失敗した場合は、アプリと Core の最初のエラーを保存してから、後述する別の不具合の切り分けへ進みます。

Windows のスリープ修正を確認するチェックリスト

  • powercfg /a でデバイスが Standby (S0 Low Power Idle) に対応していることを確認した
  • FlClash に v0.8.98 と表示され、更新前の Profile とポリシーが残っている
  • スリープ前に Core が動作し、実際の HTTPS 要求が成功して Connections に記録がある
  • 復帰後も FlClash が Core の状態を読み取れ、Core が IPC タイムアウトで終了していない
  • 復帰後も同じ HTTPS 要求が成功し、新しい Connections の記録が作られた
  • 同じ条件でスリープと復帰を少なくとも二回繰り返し、結果が一致した
  • FlClash を完全に終了するとシステムプロキシまたは TUN が解除され、デバイスが直接接続へ戻る

更新完了後に Geo ファイル情報を確認する

v0.8.98 のリソース画面で更新前に記録した Geo 項目を選び、アプリ内の通常の操作から更新します。更新要求が返ってもすぐに連打したり、ファイルマネージャーでリソースを上書きしたりせず、その項目の更新中状態が実際に終了するまで待ってください。

新しい実装は、更新状態が処理中から終了へ変わるとファイル情報を再取得します。公式配布元から実際に異なるファイルが返った場合は、画面のサイズまたは時刻も更新されるはずです。リモートの内容に変化がなければ、サイズが同じというだけで修正失敗とは判断できません。

この検証で分かるのは、画面が正しい時点でファイル属性を再取得したことだけです。ルールの不一致、Geo ファイルのダウンロード失敗、検証失敗、Core による読み込み拒否は、最初のエラーに基づいて別途調査します。画面を繰り返し更新しても解決しません。

リソース画面の更新を検証する

  1. リソースを一つ選ぶ

    更新前のファイル名、サイズ、表示時刻、現在の更新状態を記録します。

  2. アプリ内更新を一回実行する

    公式リソースのアドレスを変えず、更新を一回だけ開始して状態が終了するまで待ちます。

  3. 画面の再取得を確認する

    更新状態が終了すると、アプリの終了や手動での再読み込みを行わなくても、ファイル情報が自動更新されることを確認します。

  4. ルールでの利用も検証する

    リソース内容が変わった場合は設定を再読み込みし、関連するルールの命中を一件確認して、画面表示と Core での利用結果を区別します。

通信できなければ別のスリープ問題を切り分ける

v0.8.98 で復帰後も Core が動いているのに通信できない場合、今回の IPC 修正箇所は主な停止点ではありません。まず FlClash によるトラフィックの取り込みを無効にして直接接続を確認し、その後 Wi-Fi または有線アダプターが復帰しているか、システムプロキシが現在のポートを参照しているか、TUN と Helper に必要な権限があるか、DNS とノードが利用可能かを順に確認します。

Core が引き続き停止する場合は、スリープ前後の FlClash バージョン、powercfg /a の出力、トラフィックの取り込み方法、アプリ側の最初のエラー、Core 側の最初のエラーを保存します。Helper の再インストール、Profile の変更、DNS の変更、ノードの変更を一度に行わないでください。v0.8.98 に未対応の IPC 経路が残っているか判断できなくなります。

Core は動いているが Wi-Fi または有線アダプターが復帰しない

FlClash を終了して、プロキシ設定を変えずにまずシステムのネットワークを復旧します。

直接接続は正常だがシステムプロキシモードが失敗する

Windows のプロキシが現在の FlClash ポートを参照しているか確認し、別のプロキシソフトによって上書きされていないことも確認します。

システムプロキシは正常で TUN だけが失敗する

Helper、権限、DNS、仮想ネットワークアダプターを確認し、一時的にシステムプロキシへ戻します。

Connections に記録はあるが要求が Timeout になる

動作確認済みの別のノードに固定し、ノード障害と端末側の復帰問題を切り分けます。

v0.8.98 でも Core が毎回終了する

最小限のバージョン比較と機密情報を除いたログを残し、FlClash の公式 issue へ報告します。

更新に失敗したら全体を戻し、部品を混在させない

v0.8.98 が端末で起動しない、Profile を読み込めない、または従来のプロキシ経路を維持できない場合は、まずシステムプロキシと TUN を無効にし、デバイスが直接接続へ戻ったことを確認してからアプリを完全に終了します。機密情報を除いたログと現在のデータのコピーを保存し、更新前に実際に動作していた公式の完全版を再インストールしてください。

自分で動作確認した v0.8.97 またはそれ以前の安定版へ戻せますが、Windows のスリープ中に Core を維持する修正と Geo 情報更新の修正は再び失われます。古い Helper、Core、DLL だけを v0.8.98 に入れたり、第三者のポータブル版で正式インストール先を上書きしたりしないでください。

復元後に更新前のバックアップを読み込み、同じ Profile、ノード、ネットワーク、トラフィック取り込み方法で、起動、HTTPS、スリープ、終了後の復旧をもう一度確認します。旧版は正常で v0.8.98 だけが毎回失敗する場合、この比較結果が追加報告の根拠になります。

更新またはロールバックの完了基準

  • 実行中のバージョン、パッケージの配布元、アーキテクチャ、SHA256 を確認できる
  • Profile、上書き設定、ポリシーグループ、ノードの選択がバックアップと一致する
  • システムプロキシまたは TUN で実際の HTTPS 要求が成功し、Connections に記録がある
  • Windows のスリープ前後の Core 状態と要求結果を記録した
  • Geo の更新状態が終了した後にファイル情報が再取得される
  • FlClash の終了後にシステムへの取り込みが解除され、デバイスが直接接続へ戻る
  • 異なるバージョンのアプリ、Helper、Core、DLL を混在させていない
  • ログ、スクリーンショット、報告にサブスクリプション URL、ノードのパスワード、個人パスが含まれていない

今後も正式 Release で修正範囲を再確認する

2026年9月15日時点で、v0.8.98 は FlClash の最新の正式安定版です。収録が確認できるコミットは二つだけです。60f371a は Windows Modern Standby で途中まで書き込まれた IPC フレームのタイムアウトを処理し、c5bf5bd は Geo の更新状態が終了した後にファイル情報を更新します。

今後 v0.8.98 の新しい issue が出ても、ユーザー報告、メンテナーの確認、修正コミット、正式 Release を区別する必要があります。一件のユーザー報告を全 OS 共通の不具合へ拡大解釈できず、main ブランチのコミットも署名済み安定版パッケージの代わりにはなりません。

当サイトでは2026年9月17日に v0.8.98 のバックアップを検証し、旧版のファイルも保管しています。今回の修正が必要な場合は、ダウンロードページまたは公式 Release に記載された v0.8.98、アーキテクチャ、SHA256 を確認し、自分の Windows の利用手順で検証してください。

参考資料