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

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

ホーム画面のコア通信エラーと空のプロキシ画面が出た場合は、コアがまだ転送できるか調べ、動作版、重複プロセス、ポート、ファイアウォールを確認します。実際のエラーに応じて画面との通信を復旧し、元の購読と構成を残して、むやみに再インストールしません。

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

ホーム画面に通信エラーが出ると、設定が消えたのではないかと心配になります。画面はコアからノードや状態を読み取り、コアは別に接続を処理しているため、両者の状態が違うことがあります。まず確認するのは、現在の設定で新しいリクエストをまだ転送できるかです。

プロキシ画面が空でもページにアクセスできるか

ホーム画面に「コア通信エラー」が出てプロキシ画面が空の場合は、新しいページへのアクセスでコアがまだ通信を転送しているか確認できます。「ログ」と「接続」を開き、そのリクエストのドメインと送信記録を確認してください。サブスクリプションを削除したり、すぐに DNS を変更したりしないでください。

新しいリクエストが完了し、ログにTCPまたはUDPの接続が出続ける場合、Mihomoは転送を続けている可能性があります。最近の公式issueには、システムプロキシが使うローカルポートは利用でき、実行時設定にもノードがあるのに、デスクトップ画面でプロキシグループや現在のノードなどの制御情報を読み取れない記録があります。

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

サービスモードで起動する際、クライアントはまず実行時設定を生成して検証し、次にサービスからカーネルを起動し、最後に制御インターフェースを通じてプロキシグループを読み取ります。末尾の「通信エラー」だけを見ていると、実際の失敗箇所を見落とします。一度再起動し、ログの先頭から最初の 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 を使用する場合は、仮想ネットワークインターフェースが実際に有効かも確認してください。

表示や動作に応じた対処方法

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

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

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

公式の診断記録では、実行時設定にプロキシとポリシーグループがあり、Mixed ポートで転送もできていますが、external-controller は空で、画面は名前付きパイプで情報を読み取っています。HTTP コントローラーを独自に開放すると管理インターフェースの露出が広がるため、第一候補ではありません。まず正式版への更新とファイアウォールの確認を行い、サービス部品が公式安全勧告の修正要件を満たすと確認してからサービスを再起動してください。

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

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

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

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

プロジェクトの公式 Release、または入手元を明記した当サイトのダウンロードページから、Windows のアーキテクチャに合うインストーラーを選びます。更新時はサブスクリプションと DNS 設定を残してください。無効にした旧サービスと TUN はそのまま無効にし、サービス部品が公式安全勧告の修正要件を満たすと確認してからサービスモードを再び有効にしてください。

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

  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 が正常にリッスンし、ログにもすでにプロキシリクエストが表示されている場合は、ポート競合としての調査を続けないでください。

Windowsファイアウォールを一時的にオフにして再びオンにすると、プロキシグループは表示される?

Clash Verge Rev の公式 Windows FAQ は、プロキシメニューが空になる原因をコア通信の失敗とし、Windows ファイアウォールを無効にして再び有効にするよう案内しています。ここでは短時間だけ無効にし、直ちに有効へ戻して比較します。保護を無効のままにせず、この結果だけで具体的な原因を断定しないでください。

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

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

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

ログがサービス異常を示す場合の安全な復旧

ログがサービス、パイプの権限、コアの重複を明確に示し、更新やファイアウォール規則の再設定でも直らない場合だけ、サービスモードを扱います。再インストール前に公式の Windows サービス安全勧告と実際のサービス部品を確認し、影響を受ける旧サービスは有効にしないでください。

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

安全な復旧手順

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

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

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

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

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

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

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

    サービス部品が公式安全勧告の修正条件を満たすと確認してから、クライアントの入口で管理者の許可を得てインストールします。起動後は元の Profile だけを有効にして確認してください。

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

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

プロキシグループ、実際の通信、終了後の復旧を確認する

プロキシページが再表示されただけでは十分ではありません。同じ Profile とノードで実際に Web サイトへアクセスし、画面表示、サービス、制御用の通信経路、リクエスト転送がすべて正常か確認してください。

完了基準

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

参考資料