まず切り分ける:起動ブロック、拡張機能の許可、認証情報へのアクセス
これら3種類の警告は、それぞれ異なる段階で発生します。アプリを開く前に「壊れているため開けません」と表示された場合は、インストーラー、署名、システムによるセキュリティ評価を確認します。アプリは起動するもののTUNを有効にできない場合は、通信の取り込み方式と特権サービスを確認します。「キーチェーン」と明記されたダイアログが表示される場合は、認証情報のアクセス権を確認してください。何度も再インストールしても、これら3種類の問題をまとめて解決できるとは限りません。
| 表示される症状 | まず確認する項目 | 最初に行うこと |
|---|---|---|
| 壊れているため開けません | ダウンロードの完全性、アプリの署名、セキュリティ評価 | 警告のスクリーンショットを保存し、該当するアーキテクチャのインストーラーを再入手する |
| 開発元を検証できません | Gatekeeperによる実行許可 | 「プライバシーとセキュリティ」でブロックの詳細を確認する |
| TUNをオンにするとすぐオフに戻る | 特権サービス、仮想インターフェイス、カーネルログ | 有効化した瞬間のエラーを記録する |
| キーチェーンのパスワードを繰り返し求められる | ログインキーチェーンの状態、アプリのアクセス元 | アクセスを要求しているプロセスと対象の項目を確認する |
まずmacOSのバージョン、チップの種類、クライアントのバージョン、カーネルのバージョンを記録します。システム情報は「Appleメニュー」→「このMacについて」で確認できます。クライアントの設定でカーネルにmihomoと表示されている場合は、そのカーネルが対応する設定に沿って原因を調べてください。メニューや許可の仕組みはクライアントごとに異なるため、Clashという名前だけでネットワーク拡張を使用しているかどうかは判断できません。
「壊れているため開けません」と表示されたら、インストーラーと署名を確認
インストール先とチップのアーキテクチャ
- 起動中のクライアントを終了し、既存のサブスクリプションURLとローカル設定のバックアップを残します。
- ダウンロードページで対応プラットフォームとアーキテクチャを確認します。Appleシリコン搭載Macではarm64、Intel搭載Macではx64を選びます。ユニバーサル版には通常universalと記載されています。
- ディスクイメージを最後までダウンロードして開き、アプリを「アプリケーション」フォルダにドラッグします。ダウンロードフォルダやディスクイメージから常用するのは避けてください。
- ディスクイメージを取り出し、「アプリケーション」フォルダからアプリを一度起動して、システムに表示された警告の文面を記録します。
アーキテクチャが合わない場合は、プロセッサの互換性やRosettaに関する警告が表示されることがあります。ただし、起動時のエラーがすべてアーキテクチャに起因するわけではありません。ディスクイメージをマウントできない場合は、まず再ダウンロードしてください。アプリだけがブロックされる場合は、署名とセキュリティ評価を確認します。
読み取り専用の診断コマンド3つ
「ターミナル」を開き、以下のコマンド部分を入力します。次に「アプリケーション」フォルダから実際のアプリをターミナルへドラッグして、パスを補完してください。以下のAPPには手入力したアプリのパスが入ります。外側の引用符を付けずにパス全体を入力してください。スペースもそのまま保持されます。3つの確認コマンドは、ファイルの削除やシステムのセキュリティ設定の変更を行いません。
printf 'アプリのフルパスを入力してください:'
IFS= read -r APP
/usr/bin/codesign --verify --deep --strict --verbose=2 "$APP"
/usr/sbin/spctl --assess --type execute --verbose=4 "$APP"
/usr/bin/xattr -l "$APP"
codesignでコード署名の構造を確認します。a sealed resource is missing or invalidと表示された場合、リソースの欠落、インストールの破損、署名後の内容変更などが考えられます。改めて入手した正規のインストーラーを使用してください。spctlでシステムの実行ポリシーによる評価結果を確認します。rejectedは現在の評価を通過していないことを示します。理由を確認して判断してください。この結果だけで悪意のあるソフトウェアと確定するわけではありません。xattrで拡張属性を確認します。com.apple.quarantineが付いているのはよくあることで、ファイルがダウンロード時の隔離情報を持つことを示します。この属性だけを根拠に、エラーの原因を特定することはできません。
「このまま開く」を使う場合
macOS 13 Ventura、14 Sonoma、15 Sequoiaでは、アプリを開こうとした後、「システム設定」→「プライバシーとセキュリティ」を開き、「セキュリティ」セクションまでスクロールします。ユーザーが許可を選べるブロックの場合、システムに「このまま開く」が表示されることがあります。配布元とアプリの身元を確認してから、画面の指示に従って管理者として認証してください。
「壊れているため開けません」と表示されても、このボタンが必ず表示されるとは限りません。コンピュータに損害を与える可能性がある、または悪意のあるコンテンツが検出されたと明確に表示された場合や、署名の確認で異常が見つかった場合は、操作を中止して配布元の情報を確認してください。macOS 15では、署名や公証が適切でない一部のソフトウェアについて、起動手順が変更されています。以前のガイドにあるFinderで右クリックして「開く」方法を、すべてのケースに当てはめないでください。
ネットワーク拡張の許可:まずクライアントの通信取り込み方式を確認
システムプロキシ、TUN、ネットワーク拡張はそれぞれ別の機能です。システムプロキシは、プロキシ設定に従うアプリの通信に影響します。TUNは仮想ネットワークインターフェイスを通じて通信を取り込みます。Network ExtensionはmacOSが提供するネットワーク拡張の仕組みです。mihomoをベースにしたクライアントの一部は、特権サービスを使ってutunインターフェイスを作成するため、独立したシステムネットワーク拡張を別途ユーザーが許可する必要はありません。
拡張機能の許可が必要な場合の設定画面
- macOS 15:「システム設定」→「一般」→「ログイン項目と機能拡張」を開き、「機能拡張」セクションで「ネットワーク機能拡張」を確認します。詳細を開き、該当するクライアントまたは開発元の項目を確認してください。
- macOS 13、14:システムソフトウェアがブロックされたという警告が表示された場合は、「システム設定」→「プライバシーとセキュリティ」を開き、該当する開発元を「許可」する項目があるか確認します。VPNやフィルタの設定は、「システム設定」→「ネットワーク」→「VPNとフィルタ」で確認できます。
- 組織によって管理されているデバイス:スイッチがグレー表示になっている、または組織による管理を示すメッセージが表示される場合は、その内容を記録して管理者に問い合わせてください。デバイス管理ポリシーによって、機能拡張のインストール、VPNの設定、バックグラウンドサービスが制限されている可能性があります。
現在インストールされているアプリの身元と一致する項目だけを許可してください。システムから再起動を求められた場合は、作業を保存してから再起動します。再起動を求められない場合は、まずクライアントを終了して再起動してください。該当する項目も機能拡張のインストール通知も見当たらない場合は、存在しないスイッチを探して設定を何度も変更せず、クライアントのログで実装方式を確認します。
キーチェーンのパスワードが繰り返し求められる場合:項目、パスワード、アプリの身元を確認
まずダイアログがどのパスワードを求めているか確認
「キーチェーン内の機密情報にアクセスしようとしています」という表示は、通常、認証情報の読み取り要求です。「変更を加えようとしています」という表示は、管理者認証を求めている可能性があります。両者で対処方法を混同しないでください。「ログイン」キーチェーンは通常、アカウントへのログイン時にロック解除されます。ただし、別の方法でログインパスワードをリセットした場合、キーチェーンのパスワードは以前のままになっていることがあります。
- Spotlightで「キーチェーンアクセス」を検索して開き、サイドバーで「ログイン」を選択して、ロックされているか確認します。
- ダイアログに表示された項目名で検索します。項目を開き、「名前」「種類」「アカウント」「アクセス制御」の情報を確認してください。名前にClashが含まれているという理由だけで削除しないでください。
- アクセスを要求しているプロセスを確認します。カーネルや補助プログラムが表示されている場合は、そのアプリのパスが「アプリケーション」フォルダにある現在のインストール先と一致するか確認してください。
- アクセス要求が直前に行った操作に対応していると確認できたら、まず「許可」を一度選んで動作を確認できます。「常に許可」を選ぶのは、そのプログラムを確実に信頼でき、アクセスの目的も明確な場合に限ってください。
アップデート後にアクセス要求が繰り返される主な原因
アプリのアップデートで署名上の身元が変わったり、インストール先の変更に伴って補助プログラムのパスが変わったりすることがあります。旧バージョンをダウンロードフォルダから起動したまま、新バージョンを「アプリケーション」フォルダに置いていると、同じ認証情報に異なるプロセスから繰り返しアクセスする場合があります。まずすべてのコピーを終了し、インストール先を1か所にそろえてから、「アクティビティモニタ」でプロセスを確認します。
ログインキーチェーンをロック解除できるのに、特定の項目で要求が繰り返される場合は、関連するサービスの認証情報をバックアップし、再ログインできることを確認したうえで、そのアプリに対応する無効な項目だけを処理し、クライアントから再保存してください。「システム」キーチェーン、ルート証明書、ほかのアプリの項目をまとめて削除しないでください。デフォルトキーチェーンのリセットは保存済みパスワードに影響します。結果を十分に理解したうえで行う最終手段とし、最初の切り分けで実行しないでください。
TUNの許可に失敗する場合:サービス、インターフェイス、ルート、DNSの順に確認
まずシステムプロキシとTUNを個別に確認
まずTUNをオフにしてシステムプロキシだけを有効にし、普段から安定して接続できるWebサイトをブラウザで開きます。システムプロキシも機能しない場合は、サブスクリプションのノード、ポート、ルール、ネットワーク接続を優先して確認してください。システムプロキシは正常でTUNだけが失敗する場合は、特権サービスと仮想インターフェイスに絞って調べます。これにより、ノードの問題をシステムの許可に関する問題と誤認しにくくなります。
クライアントに「サービスをインストール」「サービスを修復」などの項目がある場合は、まず現在のバージョンの説明を確認し、クライアントに備わっている操作でインストールしてください。インストールに管理者の許可が必要な場合は、ダイアログに表示された要求元を確認します。アップデート後に補助プログラムのバージョン不一致が起きた場合は、クライアントを終了してから、クライアント内の修復機能を使ってサービスを修復してください。/Library/PrivilegedHelperTools内の不明なファイルを手動で削除するのは避けてください。
TUNの有効化前後のログを保存
再現手順を明確にするには、現在時刻を記録し、TUNをオンにして約10秒待ってからオフにし、その時間帯のログを書き出します。permission denied、operation not permitted、address already in use、failed to createを検索してください。これらのキーワードは調査の手がかりにすぎません。対象を特定するには、前後のログと併せて確認する必要があります。
/sbin/ifconfig
/usr/sbin/scutil --proxy
/usr/sbin/scutil --dns
/usr/sbin/netstat -rn -f inet
/usr/sbin/lsof -nP -iTCP:7890 -sTCP:LISTEN
ifconfigでインターフェイスの変化を確認できます。ただし、utunがほかのVPNやシステムサービスに使われている場合もあります。数が増えたからといって、Clashが通信を正常に取り込んでいるとは限りません。scutil --proxyでシステムプロキシの設定を確認できます。TUNが正常に動作していても、ここでHTTPプロキシが有効になっていない場合があります。scutil --dnsでシステムのリゾルバの状態を確認できますが、クライアント内部のDNSやDNSの横取りが有効になっていることを単独で証明するものではありません。netstatでルーティングテーブルを比較できます。TUNの実装によってルート構成は異なるため、デフォルトルートだけで判断しないでください。lsofでサンプルのポート7890を確認します。これはよく使われるプロキシポートですが、固定値ではありません。現在の設定にある実際の待ち受けポートに置き換えてください。十分な権限がない場合、出力が不完全になることがあります。
原因を調べている間は、ほかのVPNやネットワークフィルタツールを一時的に終了し、変化を記録してから元に戻す方法もあります。インターフェイスの作成に成功しているのにドメイン名を解決できない場合は、DNS設定を確認してください。ログにポートの競合が記録されている場合は、管理者パスワードを何度も入力せず、まずポートを使用しているプロセスを特定します。各項目の詳細は上級設定をご覧ください。
ネットワークを元に戻し、問題の調査情報をまとめる
クライアントを終了した後もネットワークに問題が残る場合は、クライアントを再度開き、TUN、システムプロキシの順にオフにしてから通常の手順で終了します。必要に応じて「システム設定」→「ネットワーク」→現在のネットワーク接続→「詳細」→「プロキシ」を開き、本機を指すプロキシアドレスが残っていないか確認してください。今回の操作で追加した設定だけを削除します。会社のネットワークで必要なプロキシ、PAC、DNSの設定は残してください。
次に「VPNとフィルタ」を確認し、接続が動作中のまま残っていないか調べます。すべてのネットワーク設定のリセットや、仮想インターフェイスの一括削除を最初に行わないでください。今回のインストールで追加されたと確認できる設定は、記録に従って一つずつ元に戻し、その都度Webページへのアクセスとドメイン名の解決を確認します。
問い合わせ前にまとめておく最低限の情報
- macOSの完全なバージョン番号、チップの種類、クライアントのバージョン、カーネルのバージョン。
- 問題が起きるのは起動時、システムプロキシ使用時、TUN使用時のどの段階か、また最初に何を操作したか。
- システムの警告文、署名の確認結果、問題が発生した時刻の前後約30秒の関連ログ。
- ほかのVPNを同時に使用しているか、組織管理のデバイスか、サービスの修復後に変化があったか。
調査の順序は、インストーラーとアプリの身元→システムの実行許可→特権サービスまたは機能拡張→TUNインターフェイスとルート→DNSに固定できます。キーチェーンのダイアログは認証情報へのアクセスとして別に対処してください。一度に変更する項目は1つにし、結果を記録すると、どの手順で正常に戻ったか確認しやすくなります。