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

Clash Verge Rev でカーネル通信エラーが出てプロキシ画面が空になる場合の修正方法

ホーム画面にカーネル通信エラーが表示され、プロキシ画面が空白の場合は、まずカーネルが引き続き転送しているかを判断します。その後、バージョン修正、重複プロセス、ポート、ファイアウォールの順に対処し、サブスクリプションの誤削除や根拠のない再インストールを避けてください。

  • Clash Verge Rev
  • カーネル通信エラー
  • プロキシページが空白になる
  • Windows
目次

まず画面との通信だけが切れたのか、カーネルが実際に起動していないのかを確認する

ホーム画面に「カーネル通信エラー」と表示され、現在のノードが空になっていると、プロキシが完全に停止したように見えます。まずサブスクリプションを削除せず、DNS もすぐには変更しないでください。「ログ」と「接続」ページを開き、ブラウザで新しい Web ページへアクセスして、直前のドメインと送信記録が表示されるか確認します。

Web ページを引き続き開くことができ、ログにも TCP または UDP 接続が増え続ける場合、Mihomo は転送を続けているものの、デスクトップ画面がプロキシグループと現在のノードを読み取れていない可能性があります。最近の公式 issue にも、システムプロキシが参照するローカルポートは機能し、実行時設定にもノードが含まれる一方、ホーム画面とプロキシページでは制御情報を読み取れない状態が記録されています。

まず症状に応じて分類する

画面に現れている症状可能性の高い問題本稿で最初に確認する箇所
Web ページにはアクセスでき、ログも増え続けるが、プロキシページは空白画面とカーネル間の制御通信に異常があるまずバージョンを更新し、その後でサービスモードを確認する
Web ページへアクセスできず、ログにも新しい接続がないカーネルが起動していないか、リクエストがクライアントへ入っていない設定の検証、サービス、ローカルポートを確認する
サブスクリプション更新後のノード数がゼロになるサブスクリプションの内容または解析に失敗しているサブスクリプション更新のエラーへ戻り、制御経路は処理しない
一つの Web サイトだけが失敗するルール、DNS、対象サイトとの互換性に問題があるノードを固定し、そのドメインが一致した記録を確認する

通信状態の修正を含む安定版を優先してインストールする

Clash Verge Rev v2.5.2 の公式リリースノートには、「ホーム画面のプロキシカードが通信異常を誤表示する場合がある問題を修正」「ホーム画面の現在のプロキシ状態がまれに同期されない問題を修正」「Clash の設定を再読み込みした後、ルールページのデータがすぐに更新されない問題を修正」と記載されています。問題が v2.5.1 以前で発生している場合、コントローラーポートを変更するよりも、安定版への更新が直接的です。

プロジェクトの公式 Release または入手元が明記された当サイトのダウンロードページから、Windows のアーキテクチャに適合するインストーラーを選択します。更新前にログをエクスポートして現在のサブスクリプション名を記録し、インストール完了後にクライアントを一度完全に終了してから開き直してください。サブスクリプション、TUN、DNS、サービスモードを同時に変更すると、どの手順が有効だったか判断できません。

確認可能な更新を一度行う

  1. 現在のバージョンとエラーを記録する

    概要ページでバージョンを記録し、ホーム画面のメッセージとプロキシページの状態をスクリーンショットに残して、サブスクリプションリンクを含まないログをエクスポートします。

  2. アーキテクチャに適合する安定版パッケージをダウンロードする

    多くの Windows コンピューターでは x64 を使用します。ARM Windows デバイスだけが ARM64 を選択してください。追跡可能なリリース元からのみダウンロードします。

  3. クライアントを終了してからインストールする

    まずシステムトレイの Clash Verge Rev を終了し、インストーラーが完了したことを確認してから、通常のユーザーとして起動します。

  4. 元の Profile だけをテストする

    当面は元のノード、Rule モード、システムプロキシ設定を維持し、プロキシグループが復旧したか確認します。

プロキシページが空のままなら、二つのカーネルが同じポートを奪い合っていないか確認する

更新後もエラーが続く場合は、まずタスクマネージャーの「詳細」を開きます。通常のサービスモードでは、デスクトップアプリケーション、サービスプロセス、Mihomo カーネル一つが表示されます。verge-mihomo.exe が同時に二つ存在する場合、以前のプロセスが mixed-port または名前付きパイプを占有し、新しいカーネルが完全には起動できない可能性があります。

Clash の名前を含むプロセスが複数あるというだけで、すべてを強制終了しないでください。まずシステムトレイからクライアントを終了し、数秒後に verge-mihomo.exe がまだ二つあるか確認します。ログに bind、Only one usage、Access is denied、pipe listen error のいずれかが表示された場合に限って、残存プロセス、ポートの占有、サービス状態を重点的に調べてください。

7897 をクライアントに現在表示されている Mixed ポートへ置き換えてから確認する
Get-Process clash-verge, verge-mihomo -ErrorAction SilentlyContinue

Get-NetTCPConnection -State Listen |
  Where-Object LocalPort -eq 7897 |
  Select-Object LocalAddress, LocalPort, OwningProcess

Get-Process -Id (Get-NetTCPConnection -State Listen |
  Where-Object LocalPort -eq 7897 |
  Select-Object -First 1 -ExpandProperty OwningProcess)

このコマンドはリスナーを確認するためだけに使い、プロセスを終了しません。Mixed ポートが 7897 とは限らないため、クライアントの設定またはログにある実際の値へ置き換えてください。一つの verge-mihomo.exe が正常にリッスンし、ログにもすでにプロキシリクエストが表示されている場合は、ポート競合としての調査を続けないでください。

ログの最初のエラーに基づいて次の手順を決める

サービスモードで起動する際、クライアントはまず実行時設定を生成して検証し、次にサービスからカーネルを起動し、最後に制御インターフェースを通じてプロキシグループを読み取ります。末尾の「通信エラー」だけを見ていると、実際の失敗箇所を見落とします。一度再起動し、ログの先頭から最初の error を探してください。

設定の検証失敗、Invalid YAML、unsupported field のいずれか

問題は Profile またはオーバーライドにあります。未変更のサブスクリプションへ戻し、Merge、スクリプト、カスタムフィールドを一時的に無効にしてから、もう一度検証してください。

mixed port bind failed、Only one usage

ローカルポートが以前のカーネルまたは別のプログラムに占有されています。クライアントを終了し、リッスンしているプロセスを確認してから、Windows を再起動して残存状態を消去してください。

pipe listen error、Access is denied

サービスが制御経路を作成できなかったか、権限が一致していません。まずクライアントサービスを再起動し、それでも失敗する場合にサービスモードを再インストールしてください。

設定の検証に成功し、ポートと pipe もリッスンしているが、画面では引き続きエラーが表示される

デスクトップ画面が制御情報を読み取れていない可能性が高いと考えられます。安定版へ更新済みであることを確認し、ログをエクスポートしてプロジェクトの issue へ提出してください。ノードの変更を続けないでください。

カーネルは正常に起動したが、新しい接続が一つもない

Windows のシステムプロキシが現在の Mixed ポートを参照しているか確認します。TUN を使用する場合は、仮想ネットワークインターフェースが実際に有効かも確認してください。

Windows ファイアウォールは、ロールバック可能な再読み込みを一度だけ行う

Clash Verge Rev の公式 Windows FAQ では、「プロキシメニューが空白になる」原因をカーネル通信の失敗とし、Windows ファイアウォールを無効にしてから再び有効にするよう案内しています。ここでの目的はファイアウォールルールを再読み込みすることであり、保護を長期間無効にすることではありません。

まず Windows セキュリティの「ファイアウォールとネットワーク保護」を開き、現在のネットワークの種類を記録します。該当するネットワークの Microsoft Defender ファイアウォールを短時間だけ無効にし、すぐに有効へ戻してから、Clash Verge Rev を終了して再起動してください。会社のコンピューターが管理者ポリシーで制御されている場合は、ポリシーを回避せず、ログを管理者へ渡して、アプリケーションとローカル通信のルールを確認してもらってください。

ファイアウォールの更新後に確認すること

  • Microsoft Defender ファイアウォールが再び有効になっている
  • テストのために、インターネットへ公開される新たな受信ポートを追加していない
  • Clash Verge Rev とサービスプロセスがセキュリティソフトウェアに隔離されていない
  • クライアントを開き直すとプロキシグループが表示され、ノードを切り替えられる

設定にノードがあっても、画面で必ず読み取れるとは限りません

サブスクリプションのダウンロード、実行時設定、プロキシページの表示は、三つの異なる段階です。サブスクリプションページに更新時刻が表示されても、アドレスが保存され、一度処理されたことしか証明できません。実行時 YAML に proxies と proxy-groups があれば、カーネルがノードを取得したことを示します。プロキシページでは、さらに制御インターフェースを通じてこれらのグループを読み取る必要があります。

最近の公式診断記録には、実行時設定にプロキシとポリシーグループが含まれ、Mixed ポートも転送している一方、external-controller が空で、デスクトップ画面で読み取るための名前付きパイプしか残っていないケースがあります。この状態で HTTP コントローラーを独自に公開する方法は第一候補の修正ではなく、管理インターフェースの露出を広げるおそれもあります。まず安定版への更新、サービスの再起動、ファイアウォールの更新を完了してください。

三つの段階を検証する方法

段階有効な証拠失敗したときに行ってはいけないこと
サブスクリプションのダウンロード更新に成功し、実際のノード数が表示されるサブスクリプション名が表示されたことだけで判断しない
カーネルの動作ログに設定の検証成功、ポートのリッスン、実際の接続が表示されるホーム画面のカードだけで、カーネルが停止したと判断しない
画面の制御プロキシグループが表示され、現在のノードを読み取ることができ、切り替えも反映される画面を復旧させるために external-controller を公開しない

サービスの異常を確認してから、サービスモードを再インストールする

ログにサービス、パイプの権限、重複したカーネルのいずれかが明示され、更新とファイアウォールの再読み込みでも改善しない場合に限って、サービスモードを処理します。まずシステムプロキシと TUN を無効にし、通常のネットワークが復旧したことを確認してから、クライアント設定のサービスモード画面からサービスをアンインストールします。Windows を再起動した後に再インストールしてください。

サービスの再インストールでは、無効なサブスクリプションは修正できません。また、プロキシページが空白になるたびに実行する定型手順でもありません。再起動後に管理者権限がない、ボタンがポリシーで無効になっている、セキュリティソフトウェアがサービスのインストールを遮断している、といった場合は再試行を中止し、エクスポートしたアプリケーションログとサービスログを残してください。

安全な復旧手順

  1. まず Windows の直接接続を復旧する

    システムプロキシと TUN を無効にし、クライアントを終了した後も、ブラウザで通常の Web ページを開けることを確認します。

  2. Profile とログをバックアップする

    サブスクリプション URL、ノードのパスワード、コントローラーの secret は公開しないでください。問題報告には、機密情報を除去した抜粋だけを添付します。

  3. アンインストールして再起動する

    クライアントが提供するサービスモード画面からアンインストールし、システムのサービスファイルは手動で削除しないでください。完了後に Windows を再起動します。

  4. サービスモードを再インストールする

    クライアントの通常の画面から管理者権限を要求し、起動後は元の Profile だけを有効にして検証します。

  5. 引き続き失敗する場合は、設定の変更を中止する

    バージョン、システムのアーキテクチャ、最初の error、プロセスとポートの確認結果を添えて、公式 issue へ提出します。

修正完了には、五項目すべての検証に合格する必要があります

プロキシページが再表示されても、問題が完全に解決したとは限りません。最後に、同じ Profile と同じノードを使い、画面から実際のアクセスまでを一度通して検証してください。これにより、サービス、制御経路、転送がすべて復旧したことを確認できます。

完了基準

  • ホーム画面にカーネル通信エラーが表示されなくなり、現在のプロキシモードとノード名を読み取れる
  • プロキシページにすべてのポリシーグループが表示され、ノードを切り替えると選択状態がすぐに更新される
  • タスクマネージャーには、動作中の verge-mihomo.exe が一つだけ表示される
  • ブラウザでテストサイトへアクセスすると、接続ページに該当するドメイン、ルール、出口が表示される
  • クライアントを終了すると Windows のシステムプロキシが無効になり、通常のネットワークが復旧する

参考資料