macOSでClashクライアントをインストールする権限設定:ネットワーク拡張の承認とキーチェーン許可の手順

macOSでクライアントを初めて起動すると、ネットワーク拡張やキーチェーンなど複数のシステム許可リクエストが連続して表示されます。各ダイアログの役割、正しい承認場所、承認に失敗した場合にシステム設定から手動で修復する方法を項目ごとに解説します。

macOSでClashクライアントが連続してダイアログを表示する理由

macOSは以前のバージョンから、低レベルのネットワーク機能に対して厳格な権限分離を行っています。システムのトラフィックを引き受ける必要があるプログラムは、TUN仮想ネットワークアダプタモードでもシステムプロキシモードでも、必ずユーザーの明示的な承認を得なければ有効になりません。Clashクライアント(Clash本家コアをベースにしたものでも、Clash Meta/mihomoコアで構築されたGUIシェルでも)を初めて起動すると、システムは順番にいくつかのダイアログを表示します。ネットワーク拡張の承認、キーチェーンへのアクセス許可、場合によってはローカルネットワーク探索や入力監視の権限も含まれます。これらのダイアログは互いに独立しており、一つを承認しても他のものが自動的に有効になるわけではありません。どれか一つでも見落とすと、ノードは「接続済み」と表示されているのに実際のトラフィックはプロキシを通っていない、あるいは接続自体に失敗するといった状態になります。

以下では、ダイアログが表示される順番に沿って一つずつ説明し、承認に失敗した場合にシステム設定から手動で修復する手順も紹介します。クライアントを何度も再インストールしても接続できない、という事態を避けてください。

ネットワーク拡張の承認:ダイアログの内容と正しい操作

クライアントをTUNモード(拡張モードや仮想ネットワークアダプタモードとも呼ばれます)に切り替えると、システムは「新しいネットワーク拡張が追加されました」のようなタイトルのダイアログを表示します。内容には通常、拡張の提供元とリクエストされている権限範囲が記載されています。このダイアログは省略可能な確認プロンプトではなく、一度限りの承認入口です。見逃したり誤って「許可しない」を選んだりすると、プログラム自身が同じダイアログを再度呼び出すことはできず、システム設定から手動で対応する必要があります。

  1. 提供元を確認してからクリックする

    ダイアログには拡張の署名者名が表示されます。クライアントの提供元と一致していることを確認したうえで「許可」または「システム設定を開く」をクリックしてください。ダイアログをクリックできずに自動的に消えてしまった場合、クライアントを何度も再起動してダイアログを再表示させようとせず、次のステップで手動オンにしてください。

  2. システム設定のネットワーク拡張一覧を開く

    「システム設定」を開き、比較的新しいバージョンでは「プライバシーとセキュリティ」→「ネットワーク拡張」のパスをたどります(バージョンによっては「VPNとネットワーク」という独立した項目名になっている場合もありますが、いずれもプライバシーとセキュリティの大カテゴリ内にあります)。Clashクライアントに対応する項目を見つけ、スイッチをオンに切り替えてください。

  3. スイッチが有効になったことを確認してクライアントを再接続する

    スイッチを切り替えてもすぐには有効になりません。クライアントのプロセスを完全に終了(単にウィンドウを閉じるだけでは不十分)してから再度起動し、もう一度TUNモードを有効にして、ノードの状態が「未接続」から「実行中」に変わるか確認してください。

キーチェーンへのアクセス許可:各ダイアログでどのボタンを選ぶべきか

ネットワーク拡張の承認が済むと、システムは通常さらに1つ以上の「キーチェーン」アクセスリクエストを表示します。よく見られる文言は「クライアントがシステムキーチェーンのキーを使用しようとしています」や「この操作を許可しますか」といったものです。このダイアログは、クライアントがシステム証明書やローカルの認証情報を読み取り、トラフィック傍受に必要なローカル検証を完了するためのものであり、ネットワーク拡張のダイアログとは役割が完全に異なります。互いに代替できるものではありません。

  • 常に許可:このオプションを選択すると、以降の起動時に再度確認されることはありません。日常的に長期利用するシーンに適しています。
  • 1回だけ許可:クライアントを再起動するたびに再度確認されます。一時的な動作確認や、このプログラムをまだ信頼するかどうか判断がつかない場合に適しています。
  • 許可しない:クリックすると、そのセッション中クライアントはエラーを繰り返し表示し、証明書やキーの読み取りに失敗したことを通知します。回復するには承認プロセスを再度実行する必要があります。

日常的な利用では「常に許可」を選択することをおすすめします。起動するたびに同じダイアログに対応する手間を避けられます。誤って「許可しない」を選んでしまった場合は、クライアントを再インストールする必要はなく、キーチェーンに残っている古い項目を一度削除してプログラムを再起動すれば、システムが再度承認リクエストを表示します。

「常に許可」を何度クリックしてもダイアログが繰り返し表示される場合、通常はキーチェーン内に同名だが状態が異常な古い認証情報が残っています。まず競合している項目を手動で削除してから承認を再度実行してください。無視し続けてクリックするだけでは解決しません。

承認に失敗した、またはダイアログが表示されない場合の手動修復方法

システムをアップグレードしたりクライアントのバージョンを更新した後、ネットワーク拡張やキーチェーンのダイアログが表示されなくなったのに接続だけが失敗し続けるケースがあります。この場合、承認状態が古い記録に残っていることが原因であり、手動で消去してから再度トリガーする必要があります。

  1. キーチェーンアクセスツールで残留項目を確認する

    システム標準のキーチェーンアクセスアプリでクライアント名に関連する項目を検索し、重複していたり「無効」と表示されている記録があれば選択して削除し、システムが再生成する機会を作ります。

  2. プライバシーとセキュリティの設定で権限グループを再確認する

    ネットワーク拡張、ローカルネットワーク、入力監視といった各種権限は異なるグループに分かれています。クライアントの項目のスイッチ状態を一つずつ確認し、オフになっているものがあれば手動でオンにしてください。

  3. クライアントのプロセスを完全に終了してシステムに再ログインする

    一部の権限変更は、次回のユーザーセッションのログイン時に初めて完全に有効になります。スイッチをオンにした直後に再試行しても効果がない場合は、いったん現在のアカウントからログアウトして再ログインし、クライアントを再起動して確認してください。

  4. ノードの接続状態と実際のトラフィックの流れを照合する

    承認の修復が完了したら、クライアント画面上の「接続済み」表示だけを見て判断せず、任意のブラウザで出口情報を表示できるページにアクセスし、出口アドレスがノードの切り替えに応じて実際に変化することを確認してください。そこまで確認して初めて、承認プロセス全体が本当に有効になったといえます。

権限ダイアログで混同しやすい細かいポイント

実際の利用でよくある混乱は、ネットワーク拡張の承認と通常のシステムプロキシ設定のダイアログを取り違えることです。クライアントがシステムプロキシモードのみで動作している場合(TUNを有効にしていない場合)、システムは通常ネットワーク拡張のリクエストを表示せず、「ネットワーク」設定内にプロキシ設定の記録が1件生成されるだけです。この記録自体には追加のキーチェーン許可は必要ありません。TUNモードを有効にしてグローバルトラフィックを引き受ける場合にのみ、ネットワーク拡張とキーチェーンの両方のダイアログが同時にトリガーされます。現在どちらのモードを使っているかは、クライアント設定内の「モード」または「ネットワーク」カテゴリのスイッチ名を直接確認すればわかります。「TUN」や「仮想ネットワークアダプタ」といった表記があれば拡張モードです。

もう一つ注意すべき点は、macOSのシステムアップデートによって、すでに承認済みのネットワーク拡張の状態がリセットされることがあるという点です。これはクライアント自体の問題ではなく、システムのセキュリティポリシーによる正常な挙動です。システムの大規模なバージョンアップ後にクライアントが突然接続できなくなった場合、まず上記の手順に沿ってネットワーク拡張の承認プロセスをもう一度実行してから、設定ファイルやサブスクリプションリンクに問題がないか確認してください。システム権限の問題をノードやルール設定の誤りと誤って判断しないようにしましょう。

ネットワーク拡張とキーチェーンの承認は、いずれも一度限りのシステム操作であり、どのサブスクリプションやどのプロキシルールを使っているかとは関係ありません。承認プロセスをすべて完了しても接続できない場合は、まずサブスクリプションリンクが有効か、ノードがオンラインかを確認するべきであり、クライアントの再インストールを繰り返す必要はありません。

Clashクライアントを入手する

権限の承認を終えるのは最初の一歩に過ぎません。対応するプラットフォームのクライアントを選び、サブスクリプションを正しくインポートしてこそ、ルールによる振り分けが本当に機能します。

クライアントを入手