macOS版Clashの権限設定|ネットワーク拡張の許可とキーチェーンの確認
macOSでClashを初めて起動した際の「破損」警告、ネットワーク拡張の許可手順、キーチェーンの確認ダイアログが繰り返し表示される原因と対処法を解説します。
まずはダイアログを見分ける:起動時の確認、ネットワークの許可、キーチェーンは別のもの
ダイアログのタイトルと要求元のプロセスを確認してから、許可するか判断しましょう。Clashはプロキシコアやクライアントの総称で、macOSでの権限の扱いはクライアントごとに異なります。Clash Meta(mihomo)コアを採用していても、必ずAppleのネットワーク拡張を使うとは限りません。特権ヘルパーでTUNインターフェースを作成するクライアントもあれば、Network Extensionで通信を処理するクライアントもあります。
この記事では、macOS 13 Ventura、14 Sonoma、15 Sequoiaの設定名を基準に説明します。まず左上のAppleメニューから「このMacについて」を開き、macOSのバージョンを確認してください。次にクライアントの「バージョン情報」で、クライアントとコアのバージョンを控えます。画面の表示が異なる場合は、システムのダイアログに表示された項目を確認してください。存在しない設定を探すために、追加コンポーネントをインストールする必要はありません。
| 警告・症状 | 該当する処理 | 最初に確認すること |
|---|---|---|
| 「開発元を検証できません」または「破損しています」 | アプリの起動とセキュリティチェック | 入手元、インストーラ、システムのアーキテクチャを確認 |
| VPN構成の追加またはネットワーク拡張の許可を求められる | システムのネットワーク制御 | アプリ名と配布元を確認 |
| ヘルパーのインストール時に管理者パスワードを求められる | 特権サービスのインストール | 直前に自分でサービスのインストールを開始したか確認 |
| キーチェーン内の項目へのアクセスを求められる | 認証情報の読み取り | 要求元のプロセスと項目名を確認 |
初回起動時に「破損しています」と表示されたら、まずインストーラを見直す。セキュリティ機能は無効にしない
まずアプリを「アプリケーション」に移動する
- メニューバーのバックグラウンドプロセスも含め、起動中の旧バージョンを終了します。
- ダウンロードしたDMGを開き、クライアントを「アプリケーション」にドラッグします。ディスクイメージから直接起動し続けないでください。
- DMGを取り出してから、「アプリケーション」内のクライアントを起動します。アプリの保存場所を固定すると、アップデート後に権限の記録と実際のアプリの場所が食い違う問題を減らせます。
- それでも起動できない場合は、Macに合ったインストーラを入手し直してください。Appleシリコン搭載Macではarm64、Intel Macではx64を選びます。Universal版を使う場合は、対象のアーキテクチャが含まれていることを確認してください。
「破損しているため開けません」という表示が出ても、ダウンロードしたファイルが実際に壊れているとは限りません。署名、隔離属性、パッケージ方法が原因の場合もあります。アーキテクチャが合わない場合は、別の起動エラーが表示されることがあります。ダイアログの文言だけで原因を断定することはできません。入手元が不明なアプリは使用を中止してください。隔離属性の削除を、あらゆる起動トラブルに使える対処法と考えてはいけません。
「このまま開く」は入手元を確認できたアプリに限って使用
起動を一度ブロックされた後、「システム設定」→「プライバシーとセキュリティ」を開き、セキュリティ欄に「このまま開く」が表示されているか確認します。このボタンは、すべてのブロック時に表示されるわけではありません。アプリ名と入手元を確認してから操作してください。悪意のあるソフトウェア、コンピュータに損害を与える可能性、証明書の失効が明示された場合は、起動を中止して配布元に確認しましょう。
ネットワーク拡張とTUNの許可:クライアントの実装に合わせて対処
システムプロキシの設定に従うブラウザだけを使うなら、通常は「システムプロキシ」を有効にすれば十分です。初期設定の段階で、すぐにTUNを有効にする必要はありません。システムプロキシとTUNは別の仕組みです。前者はプロキシ設定を変更し、後者は仮想インターフェースと関連するルートを使って通信を処理します。TUNを有効にしても、すべてのアプリやプロトコルが自動的に動作するわけではありません。実際の動作は、コアの設定やルーティング環境によって異なります。
ネットワーク拡張やVPN構成の許可を求められた場合
- クライアントで「TUNモード」または同等のネットワーク制御機能を自分で有効にしてから、ダイアログを確認します。関係のないバックグラウンドプロセスに許可を与えないようにしてください。
- VPN構成の追加を求められたら、表示されたアプリ名を確認します。現在使っているクライアントからの要求だと確認できた場合に「許可」をクリックしてください。
- macOS 15では、「システム設定」→「一般」→「ログイン項目と機能拡張」→「ネットワーク機能拡張」で、該当する拡張を確認できます。バージョンによっては、項目の横にある詳細ボタンをクリックします。
- macOS 13、14でシステムソフトウェアがブロックされたと表示された場合は、案内に従って「プライバシーとセキュリティ」で「許可」を探します。VPNやフィルタの設定は、「ネットワーク」→「VPNとフィルタ」に表示される場合もあります。項目が見当たらなくても、インストール失敗とは限りません。まず、クライアントがその仕組みを使っているか確認してください。
クライアントに「サービスをインストール」「ヘルパーをインストール」「Service Mode」と表示される場合、管理者認証は特権ヘルパーサービスのインストールに使われることが多く、キーチェーンのロック解除とは別です。インストール後はクライアントに戻り、サービスの状態を確認してからTUNを有効にします。インストールを何度も実行しないでください。再起動は、macOSまたはクライアントから明示的に求められた場合に限ります。
キーチェーンのダイアログ:まずアクセス対象の項目を確認
典型的なダイアログには、「キーチェーンに保存されている機密情報を使用しようとしています」といったメッセージと、要求元のプロセス名、項目名が表示されます。これはサービスのインストール時に求められる管理者認証とは異なります。クライアントによっては、サブスクリプションの認証情報、アクセストークン、その他の機密設定をキーチェーンに保存します。ただし、すべてのClashクライアントがキーチェーンを使うわけではなく、キーチェーンへの要求がすべて正当とも限りません。
「一度だけ許可」と「常に許可」の選び方
- インストール直後で、項目の用途がまだわからない場合:まず「拒否」をクリックし、どの機能に影響が出るか確認してから、クライアントの説明を調べます。拒否すると、該当機能が一時的に使えなくなる場合があります。
- プロセスと項目の両方を確認できた場合:まず「許可」をクリックして今回の読み取りを承認し、サブスクリプションの更新や設定の保存ができるか確認します。
- 継続して使用する予定で、アプリの身元も確認済みの場合:「常に許可」を検討できます。許可されるのは該当するキーチェーン項目へのアクセスであり、すべての権限を一括で許可するものではありません。
入力するパスワードは、ダイアログに表示された説明に従ってください。「ログイン」キーチェーンへのアクセスには、通常そのキーチェーンのパスワードが必要です。多くの場合は現在のアカウントのログインパスワードと同じですが、別の方法でアカウントのパスワードをリセットした後は異なることがあります。サブスクリプションのパスワード、Apple Accountのパスワード、ノードのパスワードを手当たり次第に入力しないでください。
「キーチェーンアクセス」で確認し、すべての項目を削除しない
- Spotlightで「キーチェーンアクセス」を検索して開きます。macOS 15の「パスワード」アプリは、キーチェーンを管理するすべての機能を備えたツールではありません。
- 「ログイン」キーチェーンを選び、ダイアログに表示された項目名で検索します。「Clash」だけで検索しないでください。
- 該当する項目を開き、名前、種類、関連情報を確認します。「アクセス制御」がある場合は、許可されたアプリが現在のクライアントを指しているか確認してください。
- まずは該当する項目だけのアクセス許可を修正します。「すべてのアプリケーションにこの項目へのアクセスを許可」を選んだり、デフォルトのキーチェーン全体をリセットしたりしないでください。
アップデート後にダイアログが繰り返し表示される場合:アプリの場所、署名、ログインキーチェーンを確認
クライアントのアップデート後、初回に再度確認を求められることは珍しくありません。アプリの置き換えによって、署名の識別情報、ヘルパープロセス、キーチェーンへのアクセス条件が変わることがあります。調べるべきなのは、起動のたびに確認される場合や、「許可」をクリックしてすぐに再表示される場合です。何度もパスワードを入力しても、根本的な問題は解決しません。
| 発生するタイミング | 優先して確認すること | 対処法 |
|---|---|---|
| 起動場所を変えるたびに表示される | ダウンロードフォルダ、DMG、アプリケーション内に複数のコピーがないか | すべてのコピーを終了し、「アプリケーション」から起動する |
| アップデートのたびに表示される | 配布元、アプリの識別情報、ヘルパープロセスに変更がないか | 配布元の案内を確認し、該当項目へのアクセスを再度許可する |
| ログイン後、複数のアプリで表示される | ログインキーチェーンがロックされていないか、パスワードが同期しているか | まずアカウントとキーチェーンの問題を解決する |
| サブスクリプションの更新時だけ表示される | 該当するサブスクリプション認証情報と読み取り元のプロセス | 該当項目を確認し、TUNの権限は変更しない |
ログインパスワードを変更してキーチェーンのロックを解除できなくなった場合、以前のキーチェーンパスワードがわかれば、「キーチェーンアクセス」でロックを解除し、利用できる場合は「編集」→「キーチェーン“ログイン”のパスワードを変更」から同期できます。以前のパスワードがわからない場合は、まずAppleのアカウント復旧手順を確認してください。デフォルトのキーチェーンをリセットすると、保存済みの認証情報に影響するため、事前に影響を確認する必要があります。
特定の項目がすでに無効で、再ログインまたは認証情報の再入力方法もわかっている場合に限り、その項目の削除を検討してください。削除前に項目名を控え、サブスクリプションサービスの復旧手段を用意します。ダイアログを消すために、証明書、秘密鍵、クライアント名を含む項目をまとめて削除しないでください。
許可した後は、システムプロキシとポートを確認して動作を検証
権限を許可しただけでは、通信先のノードが使えるとは限りません。「設定を有効化 → コアの起動 → ローカルポートで待ち受け → 通信を流す」の順に確認すると、権限設定とノード一覧の間で原因を推測し続けずに済みます。以下は読み取り専用の確認コマンドで、システムプロキシやルートは変更しません。
sw_vers -productVersion
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
sw_versでmacOSのバージョンを確認し、権限設定の場所と照らし合わせます。scutil --proxyで現在のシステムプロキシ設定を確認します。HTTP/HTTPSのシステムプロキシを有効にしている場合は、HTTPEnableとHTTPSEnableが1か、サーバーとポートがクライアントの設定と一致するかを確認してください。PACを使う場合は、自動プロキシ設定の項目を確認します。lsofでTCP 7890を待ち受けているプロセスを確認します。7890はよく使われる例のポートです。クライアントでmixed-port: 7897を設定している場合は、コマンド内のポートを7897に変更してください。結果が表示されなくても、直ちに権限拒否とは判断できません。
すべてのネットワーク制御機能を一度に有効にせず、2段階でテスト
- まずTUNを無効にし、有効な設定を読み込んでシステムプロキシを有効にします。ブラウザで到達可能と確認済みのサイトを開きながら、クライアントの「接続」または「ログ」にリクエストが表示されるか確認してください。
- システムプロキシのテストに成功したら、クライアントの説明に従ってTUNをテストします。どの機能が通信を制御しているか切り分けるため、一時的にシステムプロキシを無効にして同じサイトに再接続し、ログに記録された実際の通信を確認してください。
- ログにリクエストが記録されていて
i/o timeoutが表示される場合は、ノード、接続先、ネットワークを確認します。no such hostの場合は、まずDNSの経路を確認してください。これらのエラーだけを根拠に、キーチェーンのアクセスを再許可しないでください。 - 起動時に
address already in useが表示された場合は、別のクライアントが同じポートを使っていないか確認してください。これはポートの競合であり、ネットワーク拡張の許可不足ではありません。
複数のVPN、企業向けセキュリティソフト、プロキシクライアントが同時にネットワークを制御すると、ルーティングやDNSの競合が起きやすくなります。自分で管理できる他のネットワーク制御機能だけを一時停止して再テストしてください。管理対象の端末では、企業のフィルタを独断で削除しないでください。さらに調べる場合はトラブルシューティングも参照し、テスト時にシステムプロキシとTUNのどちらを有効にしたか記録してください。
終了・アンインストールの前にネットワーク設定を元に戻す
クライアントでTUNとシステムプロキシを無効にしてから、アプリを終了します。次に「システム設定」→「ネットワーク」→現在使用中のWi-FiまたはEthernet→「詳細」→「プロキシ」を開き、127.0.0.1を指す無効なプロキシ設定が残っていないか確認してください。会社や学校が設定したプロキシ項目は変更しないでください。
クライアントに「サービスをアンインストール」がある場合は、その項目からヘルパーサービスを削除してください。ネットワーク拡張やVPN構成も、クライアントのアンインストール手順に従って処理します。ほかの人のターミナルコマンドをまねて、名前が似ているシステムファイルを削除しないでください。権限トラブルの解決は、クライアントの実行中に通信が想定した経路を通り、終了後に通常のネットワークが復旧し、再起動後に同じ許可を繰り返し求められないことが目安です。
Clashクライアントのダウンロードと設定
Macのチップに合ったクライアントを選んでください。インストール後、まずサブスクリプションを追加してシステムプロキシの動作を確認し、必要に応じてTUNを設定します。