macOSでClashインストール時に権限エラー?ネットワーク拡張とキーチェーン承認の全手順

macOSで初回起動時に権限で詰まる問題を解説。ネットワーク拡張の承認手順、キーチェーンアクセスのダイアログ対応、「破損しています」エラーの原因と解決策を紹介。

macOSでClashが権限プロンプトを頻発させる理由

ClashクライアントがmacOS上で正常に動作するには、2種類のシステムレベルの承認が必要です。1つ目はネットワーク拡張(Network Extension)で、クライアントはこれを通じてシステムトラフィックを引き継ぎ、TUNモードでの透過型プロキシを実現します。2つ目はキーチェーンアクセス(Keychain Access)で、クライアントはローカルの認証情報や設定を読み書きしてプロキシサービスを安定稼働させる必要があります。この2つの操作はいずれもシステム深部のネットワークスタックや機密データストレージに関わるため、Appleは設計上、ユーザーの明確な許可がなければアプリが処理を継続できないようにしています。これはClashクライアント自体の欠陥ではなく、macOSのセキュリティモデルによるものです。

さらに、大半のClashクライアントはMac App Storeでは配布されておらず、サードパーティのインストールパッケージ形式で配布されているため、Gatekeeper(Appleの公証・出所確認機構)による追加のブロックが発生します。よくある表示は「ファイルが破損しているため開けません」や「開発元を検証できません」です。この3種類のプロンプトがそれぞれどのシステム機構に対応しているかを理解しておくと、対処の方向を間違えずに済みます。

ネットワーク拡張の承認:システム設定の正しい入口

ClashクライアントでTUNモードやシステムプロキシを初めて有効にすると、macOSは「新しいネットワーク拡張が必要です」といった趣旨のシステム通知を表示します。この通知は誤って閉じたりスワイプで消してしまいやすく、一度見逃すと、クライアントは「接続済みだがトラフィックがプロキシを経由していない」状態になり、再度自動でプロンプトが表示されることはありません。

  1. 「システム設定」(旧バージョンでは「システム環境設定」)を開きます。
  2. 「プライバシーとセキュリティ」セクションに進み、「ネットワーク拡張機能」または「VPNとネットワーク拡張機能」の項目を探します(名称はシステムバージョンによって多少異なります)。
  3. リスト内で対応するClashクライアントの項目を見つけ、スイッチがオンになっていることを確認します。
  4. 項目がグレーアウトしてタップできない場合は、通常左下の鍵アイコンをクリックしてシステムパスワードを入力しロックを解除する必要があります。その後に切り替えを行います。
  5. 切り替え完了後は、クライアントを(ウィンドウを閉じるだけでなく)完全に終了して再度起動し、拡張機能を再読み込みさせることをお勧めします。

「ネットワーク拡張機能」のリストにClashクライアントの項目が全く見つからない場合、初回の承認プロンプトが拒否またはスキップされている可能性が高いです。この場合はクライアントを完全に終了し、再起動すれば、通常システムが再度承認ダイアログを表示します。

一部のmacOSバージョンでは、ネットワーク拡張の入口が「VPN」と「ネットワーク拡張機能」の2つの子項目に分かれています。片方で見つからない場合は、もう一方に切り替えて確認してください。承認が反映されると、メニューバーのアイコンやクライアントのメイン画面の接続状態は通常数秒で「未接続」から「接続済み」に変わります。

キーチェーンアクセスのダイアログ:許可すべきか拒否すべきかの判断

システムプロキシを有効にしたりローカルの認証情報を保存したりする際、システムは「"Clash"がキーチェーンに保存されている機密情報を使用しようとしています」といった趣旨のダイアログを表示し、パスワードの入力を求めます。このダイアログの役割は、クライアントが自身で作成したキーチェーン項目を読み書きすることを許可するものであり、他のアプリのパスワードを読み取るものではありません。

  • ダイアログに表示されているアプリ名が使用中のClashクライアントと一致していれば、「常に許可」をクリックすれば十分です。起動ごとにパスワードを入力する手間を省けます。
  • 一時的なテストであれば「許可」をクリックすることもできます。この場合は今回のみ有効で、次回また表示される可能性があります。
  • 「拒否」を連続でクリックすると、クライアントがプロキシ設定を保存できなくなり、よくある症状としてシステムプロキシのスイッチがクライアント再起動ごとにオフに戻されます。

ダイアログの内容が信頼できるか判断がつかない場合は、「キーチェーンアクセス」アプリ(「アプリケーション › ユーティリティ」内)でクライアント名を検索し、対応する項目の作成日時とアクセス制御リストを確認して、同じ項目を読み取っている不審な出所がないかチェックできます。

キーチェーンのダイアログはクライアント自身が作成した項目へのアクセスのみを要求するもので、ブラウザやシステムに保存されている他のパスワードとは互いに隔離されています。「常に許可」を選んでも権限範囲が広がることはありません。

「ファイルが破損しています」エラーの原因と解決策

このプロンプトの本当の意味は、インストールパッケージが破損しているということではなく、macOSのGatekeeper機構がApple公証を受けていない、または出所が「信頼できない」とマークされたアプリをブロックしているということです。サードパーティが配布するClashクライアントのインストールパッケージをダウンロードすると、ブラウザがファイルに隔離属性(quarantine)を付与し、macOSはこれをもとに「このファイルはネットワークからダウンロードされたもの」と判断し、追加の署名検証を行います。署名検証プロセスで異常が発生した場合(例:インストールパッケージが圧縮ツールで二次パッケージ化された、または転送中に属性が失われたなど)、システムは「破損しています」という誤解を招く表示を出します。

解決策は、ファイルの隔離属性を削除し、システムがこのブロック層をスキップして通常のアプリ起動フローに直接進めるようにすることです。

ターミナルコマンド
xattr -cr /Applications/Clashクライアント名.app

実行時はコマンド内のアプリ名を実際のインストールパスに置き換える必要があります。まず「ターミナル」で xattr -cr /Applications/ と入力し、その後アプリのアイコンをFinderから直接ターミナルウィンドウにドラッグしてパスを補完すると、手入力によるミスを避けられます。コマンド実行後、何も出力がなければ成功です。アプリのアイコンを再度ダブルクリックすれば正常に開けます。

ターミナルで「Operation not permitted」と表示された場合、ターミナル自体が「フルディスクアクセス」権限を取得していないことを意味します。「システム設定 › プライバシーとセキュリティ › フルディスクアクセス」に進み、「ターミナル」をリストに追加してチェックを入れ、再度コマンドを実行してください。

もう1つ、より直接的だが恒常的な利用には推奨されない方法として、「システム設定 › プライバシーとセキュリティ」の最下部にある「このまま開く」ボタンを使う方法があります。アプリが初めてブロックされた直後の短時間だけこの例外入口が表示され、1回クリックすれば今回の起動が許可されます。この方法はクライアントのバージョンを更新するたびに再度操作が必要になる可能性があるため、ターミナルコマンドの方が確実です。

TUNモード関連の高度な権限設定

クライアントがすでにネットワーク拡張の承認を通過しているにもかかわらず、TUNモードを有効にすると依然として接続失敗やトラフィックが有効化されないという場合は、以下の順序で確認を続けてください。

  1. 「ネットワーク拡張機能」リストのスイッチがオンになっていること、また他のシステム拡張ベースのVPNツールと競合していないことを確認します(ネットワーク拡張に同時に依存する2つのツールは通常同時に有効化できません)。
  2. クライアント設定内のTUNモードのスイッチが実際にオンになっているか確認します。一部のクライアントはTUNモードとシステムプロキシモードを別の設定項目として分けており、両方同時にチェックを入れると互いを上書きしてしまうことがあります。
  3. Macを一度再起動します。ネットワーク拡張が極めて稀にシステムキャッシュの問題で「承認済みだが読み込まれていない」状態になることがあり、再起動が最も直接的な復旧手段です。
  4. 現在のmacOSバージョンがクライアントの最低システム要件を満たしていることを確認します。古すぎるシステムバージョンでは、新しいカーネルのネットワーク拡張APIの呼び出し方式に対応していない場合があります。

以上の手順を完了したら、クライアントの接続状態やログパネルでTUNインターフェースが確立されているか確認できます。通常は utun で始まる仮想ネットワークカード名が表示され、これはシステムレベルの引き継ぎが正常に有効化されたことを示します。

インストール前にできる予防策

権限プロンプトが表示された後に1つずつ対処するより、インストール前によくある発生要因を回避しておく方が手間が省けます。

  • 公式チャネルからインストールパッケージを取得し、二次パッケージ化やクラウドストレージ経由の転送保存による隔離属性の異常を避けます。
  • インストール完了後は、まずネットワーク拡張の承認とキーチェーン承認のフローを最後まで一通り済ませてから、サブスクリプションやルールの設定を始めます。権限不足の問題と設定の問題を同時に切り分けようとするのを避けられます。
  • クライアントをメジャーバージョンアップした後は、「プライバシーとセキュリティ」関連のスイッチを再確認する習慣をつけましょう。システム更新によって拡張機能の承認状態がリセットされることがあります。

権限設定のフローと後続のサブスクリプション設定を分けて処理することで、「インストールしたのに使えない」という問題の切り分けコストを大幅に減らせます。また、問題がシステム承認レイヤーとクライアント設定レイヤーのどちらにあるのかも特定しやすくなります。

Clash をダウンロード