まず切り分ける:アプリの起動、ネットワーク権限、認証情報へのアクセス

macOS版Clashクライアントの許可手順は、すべて同じではありません。アプリのウィンドウ、Clash Meta(mihomo)コア、特権ヘルパー、ネットワーク拡張はそれぞれ別のコンポーネントです。システムプロキシだけを使うクライアントもあれば、ヘルパー経由でTUNを起動するものや、Appleのネットワーク拡張機能を使うものもあります。TUNのスイッチがあるからといって、必ずネットワーク拡張の許可が必要とは限りません。

対処を始める前に、ダイアログの文面、要求元のアプリ名、表示されたタイミングを記録してください。ウィンドウが表示される前にシステムにブロックされた場合は起動制限を確認します。TUNを有効にしたときだけ失敗するなら、ヘルパーやネットワーク権限を確認します。ウィンドウは開くものの、サブスクリプションの認証情報を読み込む際にパスワードを求められる場合は、キーチェーンを確認します。これら3つの問題を、すべてインストーラーの破損として扱わないでください。

警告・症状 まず確認すること 今は不要な操作
開発元を確認できません/Appleは悪質なソフトウェアが含まれていないことを確認できません 配布元、署名、「プライバシーとセキュリティ」に表示される起動許可 サブスクリプションやDNSの設定を何度も変更する
アプリが破損しているため開けません/コンピュータに損害を与えます 警告の全文、ダウンロード元、プロジェクトのリリース情報 隔離属性を強制的に削除する、またはシステム保護を無効にする
システム拡張機能がブロックされた/VPN構成の追加を求められる 拡張機能の開発元、ネットワーク構成、管理ポリシー ログインキーチェーン全体を削除する
アプリがログインキーチェーン内の機密情報へのアクセスを求めている 要求元のアプリ、対象の項目、アクセス制御 サブスクリプションのパスワードをシステムの認証ダイアログに入力する

インストール前にmacOSのバージョン、チップ、アプリの配置場所を確認する

macOSのバージョンとプロセッサアーキテクチャを確認する

Appleメニュー →「このMacについて」を開き、macOSのバージョンとチップを確認します。ダウンロードページにあるApple Silicon版は通常arm64、Intel版はx86_64に対応します。Universal版は両方のアーキテクチャを含む場合があります。詳細はプロジェクトのリリース情報を確認してください。Apple Silicon搭載Macで一部のIntelアプリを実行すると、Rosettaのインストールを求められることがあります。これはネットワーク拡張の許可とは別のものです。

メンテナーへの問い合わせに必要な情報を取得する場合は、「ターミナル」で次の読み取り専用コマンドを実行できます。1つ目はmacOSのバージョン、2つ目は現在の実行環境のアーキテクチャを表示します。ターミナル自体がRosetta経由で動作している場合、2つ目の結果はx86_64になることがあります。「このMacについて」の情報と合わせてハードウェアを判断してください。

sw_vers
uname -m

アプリは決まった場所から起動する

  1. プロジェクトのリリースページなど、確認済みの配布元から現在のシステムに対応するインストーラーを入手し、必要なmacOSの最低バージョンを確認します。
  2. DMG形式の場合は、アプリを「アプリケーション」フォルダにドラッグしてからディスクイメージを取り出します。DMG内から起動し続けないでください。
  3. ダウンロードフォルダ、デスクトップ、古いディスクイメージにある別のクライアントを終了し、以降は「アプリケーション」から起動してください。
  4. クライアントのバージョンとコアの名称を記録します。アプリとコアの更新は必ずしも同時ではありません。問題を報告する際は、それぞれの情報を分けて伝えてください。

アプリの配置場所を固定すると、別のコピーを誤って起動したり、ヘルパーのパスが一致しなかったりする問題を減らせます。ただし、キーチェーンの確認がなくなるわけではありません。プログラムの署名、項目のアクセス権、システムのセキュリティポリシーも許可の結果に影響します。

「開発元を確認できません」と「アプリが破損しています」は別々に対処する

システムに「このまま開く」が表示された場合

配布元を確認済みで、システムにまだ認識されていないだけのアプリは、まず通常どおり一度起動してみてください。その後、Appleメニュー →「システム設定」→「プライバシーとセキュリティ」を開き、「セキュリティ」欄に先ほどブロックされたアプリと「このまま開く」ボタンが表示されているか確認します。表示されたアプリ名が操作したものと一致する場合に限り続行し、システムの指示に従って認証してください。

macOS 15では、古い手順にある「Controlキーを押しながらアイコンをクリックすれば必ず回避できる」という方法に頼らないでください。署名や公証が適切でない一部のソフトウェアでは、「プライバシーとセキュリティ」からの操作が必要です。警告の文面はmacOSのマイナーバージョンによって異なり、ブロックの理由によってはボタンが表示されないこともあります。

  • 「悪質なソフトウェアが含まれていないことを確認できません」と表示される:配布元をさらに確認する必要があるという警告です。アプリの安全性が確認されたことを意味するものではありません。
  • 「コンピュータに損害を与える」または「ゴミ箱に入れる」と表示される:起動を中止し、プロジェクトが該当ビルドを取り下げていないか確認して、信頼できるバージョンを入手し直してください。
  • 「アプリが破損しています」と表示される:ダウンロードの不完全、署名の問題、アプリの改変などが考えられます。この文面だけで原因を断定することはできません。
  • 「このMacでは使用できません」と表示される:チップのアーキテクチャと必要なmacOSのバージョンを確認してください。許可ボタンでは互換性の問題を解決できません。

インストーラーを再ダウンロードしても同じ警告が出る場合は、ダイアログのスクリーンショット、macOSのバージョン、インストーラーの配布元を記録してください。学校や会社の管理下にあるMacでは、「このまま開く」が管理ポリシーによって制限される場合があります。管理者に相談し、デバイス管理を回避しようとしないでください。

ネットワーク拡張、VPN構成、TUNヘルパーの許可

クライアントが実際に使う方式を確認する

システムプロキシは通常、HTTP、HTTPS、SOCKSのプロキシ設定を変更し、それらの設定に従うアプリが利用します。一方、TUNは仮想ネットワークインターフェースを介して通信を処理します。mihomoはTUNをサポートしていますが、macOSクライアントが権限を取得する方法は実装によって異なります。特権サービスを使う場合もあれば、別のネットワークコンポーネントを使う場合もあります。ネットワーク拡張の項目がないからといって、TUNのインストールに失敗したとは限りません。

クライアントがサービスやヘルパーのインストールを明示的に求める場合は、クライアント内のインストール機能だけを使い、システムの認証ダイアログに表示されたアプリ名を確認してください。この手順では管理者の認証が必要になることがありますが、サブスクリプションのアカウントやパスワードとは関係ありません。配布元不明の、管理者権限で実行する長いターミナルコマンドは実行しないでください。

macOS 15で拡張機能とネットワーク構成を確認する場所

  1. ダイアログにシステム拡張機能がブロックされたと明記されている場合は、「システム設定」→「一般」→「ログイン項目と機能拡張」を開き、「機能拡張」欄の「ネットワーク機能拡張」で開発元とコンポーネント名を確認します。
  2. システムからVPN構成の追加を求められた場合は、許可する前に要求元のアプリ名を確認してください。その後、「システム設定」→「ネットワーク」→「VPNとフィルタ」で関連する構成を確認できます。
  3. macOS 13、14では、一部の拡張機能の許可項目が「システム設定」→「プライバシーとセキュリティ」の下部に表示されます。ダイアログの案内に従ってください。新しいバージョンのスクリーンショットにある項目が見当たらなくても、古いシステムに問題があるとは限りません。
  4. 許可した後は、システムの指示に従ってアプリの終了、再起動、またはMacの再起動を行います。コアが動作している間に、複数のヘルパーを続けてインストールしないでください。

「バックグラウンドでの実行を許可」は主にバックグラウンド項目の実行に関する設定で、ネットワーク拡張の許可とは別です。同様に、「フルディスクアクセス」を許可してもネットワーク権限の代わりにはなりません。クライアントのドキュメントで特定の機能に必要だと明記されている場合に限り、その権限を個別に検討してください。

systemextensionsctl list

上記の読み取り専用コマンドでは、システム拡張機能とその状態を一覧表示でき、ダイアログに表示された開発元情報との照合に使えます。ただし、通常のヘルパーすべてを表示するものではなく、あらゆるVPNコンポーネントが正常に動作していることを証明するものでもありません。一覧が空という理由だけでシステムを再インストールしないでください。

キーチェーンが何度もパスワードを求める場合:要求元を確認する

キーチェーンのダイアログは、「ログイン」キーチェーンのロック解除を求めている場合と、アプリがその中の特定のパスワード項目へのアクセスを求めている場合があり、対処方法が異なります。項目名、要求元のアプリ、「拒否」「許可」「常に許可」などの選択肢が表示されているかを確認してください。要求元はクライアント本体ではなくヘルパーの場合もあります。アイコンが似ているだけで許可しないでください。

どのパスワードを入力するか

  • システムがヘルパーのインストールに管理者の許可を求める場合は、通常、このMacの管理者アカウントの認証情報か、システムが提示するTouch IDを使用します。
  • 「ログイン」キーチェーンのパスワードを求めるダイアログでは、通常、そのキーチェーンを作成したとき、または最後に同期したときのMacのログインパスワードを入力します。
  • 復旧手順などで最近アカウントのパスワードをリセットした場合、キーチェーンには以前のパスワードが残っていることがあります。その場合、現在のログインパスワードではロックを解除できない可能性があります。
  • Apple Accountのパスワード、ノードのパスワード、サブスクリプションURLを、このMacのキーチェーン認証ダイアログに入力しないでください。

「キーチェーンアクセス」で対象の項目を探す

Spotlightで「キーチェーンアクセス」を検索して開き、「ログイン」キーチェーンを選択します。ダイアログに表示された項目名で検索してください。新しいmacOSの「パスワード」アプリと「キーチェーンアクセス」は別の管理画面です。一部のアプリの認証情報は、引き続き後者で確認する必要があります。項目が見つかったら情報ウィンドウを開き、名前、アカウント、関連サービスを確認します。「アクセス制御」タブがある場合は、アクセスを許可されたアプリも確認してください。

  1. 要求元を特定できない場合は、まず拒否してクライアントを終了し、要求も止まるか確認します。
  2. 「アプリケーション」内の対象アプリだけを起動して同じ操作を一度行い、ダイアログが想定した項目を示しているか確認します。
  3. 配布元を確認できたら、まず一度だけ「許可」を選び、機能が復旧するか確認してから継続的な許可を与えるか判断します。
  4. アップデートのたびに繰り返し要求される場合は、更新前後のアプリのバージョンと要求元のアプリ名を記録し、署名やヘルパーコンポーネントに変更がないか確認します。

「常に許可」は該当する項目とアクセス条件に対する設定であり、すべての警告を無効にするものではありません。項目をすべてのアプリに許可しないでください。また、「ログイン」キーチェーンのパスワードを空にしないでください。ダイアログが繰り返し表示される原因として、パスワードの誤り、キーチェーンのロック、アクセス条件の変更、コンポーネントの重複起動などが考えられます。原因を一つずつ切り分けてください。

許可後にプロキシとネット接続を確認する

アプリが正常に起動することと、プロキシが機能することは別々に確認します。まずTUNをオフにし、クライアントのシステムプロキシだけを有効にします。コアが正常に起動したことを確認してから、ブラウザーのリクエストが接続一覧やログに表示されるかを調べます。こうすれば、アプリの起動、プロキシの待ち受け、仮想ネットワークインターフェースの問題を切り分けられ、複数の設定を同時に変更して判断できなくなるのを防げます。

プロキシのポートと待ち受けプロセスを確認する

ターミナルで次の読み取り専用コマンドを実行します。ここではクライアントの設定がmixed-port: 7890の場合を例にしています。設定画面に別のポートが表示されている場合は、実際の値を使ってください。7890はすべてのクライアント共通の固定ポートではありません。

scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN

scutil --proxyで現在のプロキシ設定を確認し、有効状態、ホスト、ポートを確認します。通常のHTTP/HTTPSシステムプロキシを使用している場合は、対応する有効項目が表示されます。PACを使用している場合は、自動プロキシ構成の項目を確認してください。lsofは指定したポートを待ち受けているプロセスを確認するコマンドです。一般ユーザーには、権限のあるプロセスしか表示されないことがあります。

  • システムプロキシの接続先がローカルポートなのに、ポートが待ち受けていない:ネットワーク拡張を再度許可するのではなく、まずコアの起動ログ、設定の読み込みエラー、ポートの競合を確認してください。
  • システムプロキシはオフだが、TUNはオンになっている:プロキシの項目だけで失敗と判断せず、TUNの状態、ルーティング、クライアントの接続履歴も確認してください。
  • リクエストはログに表示されるが、接続がタイムアウトする:サブスクリプションの有効性、接続先ノード、ルールの適用状況を確認します。通常、起動時の許可はすでに原因ではありません。
  • 特定のアプリだけプロキシを経由しない:そのアプリがシステムプロキシに従うか確認してください。システムプロキシとTUNでは、通信を処理する範囲が異なります。

システムプロキシが動作することを確認してから、TUNを有効にしてください。その時点で初めて失敗する場合は、切り替えた時刻のログを保存し、サービスの権限、仮想インターフェースの作成、ルーティング設定を重点的に確認します。テスト中は、通信を処理するクライアントを1つだけ実行してください。他のVPN、ネットワークフィルタ、同種のTUNサービスは、それぞれの画面から正常に切断し、テスト後に再接続してください。

それでも解決しない場合は、再現に必要な情報をまとめる

問い合わせを送る前に、「アプリを起動 → システムプロキシを有効化 → TUNを有効化」の順で一度再現し、最初に失敗した手順を記録してください。サブスクリプションを何度もインポートし直すより、権限、設定、ネットワークのどの段階で問題が起きたかを特定できる情報を残しましょう。

  1. 環境:macOSの正確なバージョン、Apple SiliconかIntelか、管理対象デバイスかどうか。
  2. アプリ:クライアント名、バージョン、コアの名称、アプリの配置場所、古いコピーが残っているかどうか。
  3. 警告:ダイアログの全文、要求元のアプリ名、表示時刻、関連する設定画面の状態。
  4. 確認結果:システムプロキシが使えるか、TUNを有効にした場合にのみエラーが出るか、プロキシの待ち受けポートが存在するか。
  5. 関連ログ:失敗した時刻の前後に絞り、送信前にサブスクリプションURL、トークン、パスワード、個人のネットワーク情報を隠してください。

クライアントを使わなくなった場合は、まずアプリ内でシステムプロキシとTUNをオフにし、プロジェクトが案内するサービスのアンインストール方法でヘルパーコンポーネントを削除してください。アプリのアイコンを削除しても、システムプロキシ、バックグラウンドサービス、VPN構成が残ることがあります。アンインストール後にネット接続できなくなった場合は、まず「ネットワーク」設定に残ったプロキシを確認してください。見覚えのないシステムファイルをまとめて削除しないでください。