まず、どの権限で止まっているかを確認する
macOSのClashクライアントでは、アプリの起動、システムプロキシ、特権ヘルパーツール、ネットワーク拡張、キーチェーンが同時に関係することがあります。それぞれ別のシステムコンポーネントで管理されています。「権限が必要」と表示されたら、まずダイアログのタイトルと表示されたタイミングを記録し、キャンセルを連続して押さないでください。1回のインストールで不足しているのが1項目だけの場合もあれば、旧バージョンの残存項目と新バージョンが共存している場合もあります。
4種類の表示に対応する4つの対処箇所
- アプリを開けない、または開発元を確認できない:Gatekeeperの起動チェックによるものです。「システム設定」→「プライバシーとセキュリティ」で対処します。
- インストールサービス、Helper、Service Modeでパスワードを求められる:特権ヘルパーツールのインストールです。入力するのは現在のMac管理者アカウントのパスワードであり、サブスクリプションのパスワードではありません。
- システム拡張またはネットワーク拡張がブロックされる:「ネットワーク」または「ログイン項目と機能拡張」で該当する拡張を許可します。バージョンによっては再起動も必要です。
- 起動するたびにキーチェーンへのアクセスを求められる:保存されたパスワード項目のアクセス制御が一致していないか、旧クライアントが作成した項目を新しいクライアントが読み取っている可能性があります。
システムのバージョンとプロセッサアーキテクチャを確認する
画面左上のAppleメニューを開き、「このMacについて」を選択します。macOSのバージョンとチップ名を記録してください。Apple M1、M2、M3、M4以降のAppleシリコン搭載Macではarm64版を、Intel Macではx64またはx86_64版を使用します。アーキテクチャを間違えると、アプリがRosetta経由で動作する場合や、補助ツールのインストールに失敗する場合があります。
この記事では、macOS 13 Ventura、macOS 14 Sonoma、macOS 15 Sequoia、およびmihomoをベースにしたClash Verge Rev 2.x系のクライアントを例に説明します。クライアントによってボタン名は「サービスモード」「サービスをインストール」「Helper」「TUN」「ネットワーク拡張」など異なりますが、システムの許可設定を開く場所は基本的に同じです。
アプリのインストールと初回起動時のブロックに対処する
アプリケーションフォルダに入れてから起動する
- ダウンロードしたDMGファイルを開きます。
- クライアントのアイコンを「アプリケーション」フォルダへドラッグします。DMGウィンドウから直接起動したままにしないでください。
- コピーが完了するまで待ち、DMGを取り出します。
- Finderの「アプリケーション」フォルダからクライアントを開きます。
補助ツールは通常、メインアプリのパスと署名を記録します。ダウンロードフォルダ、DMGのマウント先、一時フォルダから起動すると、アプリの更新後にパスが変わり、許可を繰り返し求められることがあります。インストール後にアプリ名をむやみに変更するのも避けてください。
「開発元を確認できない」または「使用がブロックされました」
まず、インストーラーがプロジェクトの正式な配布元から入手したもので、アーキテクチャも正しいことを確認します。次にアプリを一度開いて、システムにブロック記録を作成させます。「システム設定」→「プライバシーとセキュリティ」を開き、下部に表示されたブロック済みアプリの項目で「このまま開く」をクリックし、システムの確認ダイアログで起動を完了します。
「このまま開く」が表示されない場合は、起動が実際には試行されていないか、ブロック記録の有効期限が切れている可能性があります。Finderに戻ってもう一度開き、すぐに「プライバシーとセキュリティ」を確認してください。会社で管理されているMacでは、デバイス管理ポリシーによってユーザーが許可できない場合があります。その場合は、管理者が管理ポリシーでアプリまたはシステム拡張を承認する必要があります。
特権ヘルパーツールとサービスモードをインストールする
システムプロキシはmacOSのプロキシ設定を変更するだけですが、TUNモードでは仮想ネットワークインターフェースを作成し、ルーティングを調整します。多くのクライアントはシステム権限を持つヘルパーツールをインストールし、それを使ってmihomoのコアを起動したり、ルートを書き込んだり、DNSを管理したりします。このサービスのインストール時に管理者パスワードを求められるのは、通常のシステム認証フローです。
正しいインストール手順
- 実行中のClash、mihomo、その他のプロキシクライアントを終了します。
- 使用中のクライアントで「設定」→「サービスモード」、または「設定」→「システムサービス」を開きます。
- 「サービスをインストール」または「Helperをインストール」をクリックします。
- macOSのシステム認証ダイアログで、管理者アカウントのパスワードを入力します。
- ステータスが「インストール済み」または「実行中」になってから、システムプロキシまたはTUNを有効にします。
現在ログインしているアカウントが管理者でない場合は、有効な管理者のユーザー名とパスワードを入力する必要があります。ここではApple IDのパスワードも、クライアントのサブスクリプションに使用するアカウント情報も使えません。
インストール後も「サービスが実行されていません」と表示される
まずクライアントを完全に終了し、もう一度開きます。それでも戻らない場合は、「アクティビティモニタ」を開き、クライアント名、mihomo、clashを検索して、旧バージョンのプロセスが同時に存在していないか確認します。「ターミナル」で次の読み取り専用コマンドを実行する方法もあります。
ps aux | grep -E '[m]ihomo|[c]lash'
lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:7897 -sTCP:LISTEN
ポート 7890 は従来のClash設定でよく使われますが、一部のmihomoクライアントでは 7897 が初期値です。別のプロセスがポートを使用している場合は、該当する旧クライアントを終了するか、「設定」→「ポート設定」でmixed-portを変更します。2つのクライアントに同時にシステムプロキシを管理させないでください。
サービスのインストールボタンが回り続ける場合は、まずクライアント内蔵の「サービスをアンインストール」を実行し、アプリを終了してMacを再起動してから、もう一度インストールします。Finderでアプリを削除するだけではシステムレベルのヘルパーツールは自動的に削除されないため、「削除して再インストール」だけでは解決しないことがあります。
ネットワーク拡張を許可してTUNを有効にする
ネットワーク拡張、ネットワークフィルタ、TUN仮想インターフェースは同じものではありません。クライアントによってはApple Network Extension APIでトンネルを提供し、別のクライアントでは特権サービスが utun インターフェースを作成します。「ネットワーク拡張」スイッチが表示されるかどうかはクライアントの実装によるため、メニューにTUNボタンがあるかどうかだけで判断しないでください。
macOS 13および14での確認場所
- 「システム設定」→「ネットワーク」→「VPNとフィルタ」を開き、現在のクライアントのフィルタまたはVPN設定が存在するか確認します。
- 「システム設定」→「一般」→「ログイン項目」を開き、「バックグラウンドでの実行を許可」欄で該当項目が無効になっていないか確認します。
- 「システム設定」→「プライバシーとセキュリティ」を開き、下部にシステムソフトウェアまたは拡張機能がブロックされたという表示がないか確認します。
macOS 15以降での確認場所
macOS 15 Sequoiaでは、拡張機能の管理が「システム設定」→「一般」→「ログイン項目と機能拡張」に集約されています。「ネットワーク拡張」の横にある詳細ボタンをクリックし、現在のクライアントに対応する拡張を許可します。クライアントがVPNまたはコンテンツフィルタを作成している場合は、「システム設定」→「ネットワーク」→「VPNとフィルタ」に戻り、項目が許可されていることも確認します。
拡張機能を許可した後、システムの再起動を求められることがあります。作業を保存して、案内に従って再起動してください。クライアントを終了するだけでは、初回の拡張機能登録を完了できない場合があります。
TUNが実際に確立されているか確認する
TUNを有効にした後、ターミナルで次を実行します。
ifconfig | grep -A 4 '^utun'
route -n get default
scutil --proxy
macOS自体も複数の utun インターフェースを作成するため、utun0 や utun1 が表示されたからといって、Clashが正常に動作しているとは限りません。より確実な判断方法は、TUNの有効化前後でインターフェース数が変化し、クライアントのログにリスニングとルート初期化の情報が記録され、さらにシステムプロキシを無効にしても、通常はシステムプロキシを参照しないアプリがルールどおり接続できることです。
キーチェーンの確認ダイアログが繰り返し表示される場合の対処
クライアントは、サブスクリプションの認証情報、サービスの認証情報、システムプロキシに関するパスワードをログインキーチェーンに保存することがあります。アプリのアップデート、署名の変更、インストール先の変更、旧プロジェクトからの移行後に、キーチェーンのアクセス制御リストが一致しなくなると、起動時、サブスクリプション更新時、サービス有効化時にアクセス要求が繰り返し表示されます。
ダイアログが何へのアクセスを求めているか確認する
ウィンドウ上部のクライアント名だけで判断しないでください。詳細を開き、要求元のパスが「アプリケーション」フォルダ内の現在のクライアントを指していることを確認し、アクセスしようとしているキーチェーン項目の名前を記録します。パスがダウンロードフォルダ、削除済みの旧アプリ、または見覚えのないプログラムを指している場合は「拒否」を選択し、そのプログラムを終了して整理します。
パスが現在のクライアントと一致している場合は、Macのログインパスワードを入力して「常に許可」を選択できます。次回起動時にも同じダイアログが表示されるなら、「常に許可」を押し続けても通常は意味がありません。該当するキーチェーン項目を修復してください。
古い項目を1つだけ削除してクライアントに再作成させる
- クライアントを終了し、メニューバーのアイコンが消えたことを確認します。
- 「アプリケーション」→「ユーティリティ」→「キーチェーンアクセス」を開きます。新しいシステムではSpotlightで「キーチェーンアクセス」と検索しても開けます。
- 左側で「ログイン」キーチェーンを選び、「すべての項目」または「パスワード」を選択します。
- ダイアログに表示された項目名を検索します。クライアント名、
Clash、mihomo、旧クライアント名で個別に検索することもできます。 - 項目を開き、「アカウント」「場所」「アクセス制御」を確認します。旧クライアントに属することを確認できた項目だけを1つずつ削除してください。
- クライアントを再度開き、案内に従って認証情報を保存するか、サービスをインストールします。
ログインキーチェーンがロックされている場合は、「キーチェーンアクセス」で「ログイン」を選択し、メニューからロックを解除します。ログインキーチェーンのパスワードは通常、現在のアカウントのログインパスワードと同じです。アカウントのパスワードを変更したもののキーチェーンと同期されていない場合、システムが古いパスワードを求めることがあります。この場合はクライアントを何度も再インストールせず、先にログインキーチェーンを修復してください。
サブスクリプション更新時だけダイアログが表示される
これは通常、サブスクリプション関連の認証情報の保存項目に問題があり、TUNの権限問題ではありません。該当するサブスクリプションを削除して再インポートすると、クライアントが保存項目を再作成できます。操作前にサブスクリプションURLを保存してください。再インポート後は、「設定」→「サブスクリプションを更新」を手動で1回実行し、クライアントを終了して再起動してから確認します。
アンインストール後の残存項目を整理して再インストールする
旧バージョンのClashクライアントと新しいクライアントが、ポート、設定フォルダ、バックグラウンドサービスを共有していることがあります。よくある症状は、クライアントを削除したのにシステムプロキシが 127.0.0.1:7890 を指し続ける、TUNスイッチがすぐ元に戻る、サービスのインストールに成功しても旧コアが起動する、キーチェーンのダイアログに旧アプリ名が表示される、といったものです。
まずプロキシを無効にしてサービスをアンインストールする
- 旧クライアントを開き、TUNとシステムプロキシを無効にします。
- 「設定」→「サービスモード」に進み、「サービスをアンインストール」または「Helperを削除」を実行します。
- クライアントを完全に終了します。
- 「システム設定」→「ネットワーク」→現在のネットワーク→「詳細」→「プロキシ」を開き、Webプロキシ、セキュアWebプロキシ、SOCKSプロキシにローカルポートが残っていないことを確認します。
- 「VPNとフィルタ」または「ログイン項目と機能拡張」で、無効になった古い項目を削除します。
旧クライアントを開けない場合は、同じバージョンをいったん再インストールし、内蔵のアンインストール機能を使います。クライアント自身が補助ツールの正確な識別情報を把握しているため、システムフォルダ内のファイルを手作業で推測して削除するより安全です。
ユーザー領域の設定フォルダを確認する
Finderで Command + Shift + G を押し、次の場所を1つずつ確認します。
~/Library/Application Support/
~/Library/Preferences/
~/Library/Caches/
~/Library/Logs/
~/Library/LaunchAgents/
名前が旧クライアントに明確に対応するフォルダやファイルだけを処理してください。設定フォルダには、サブスクリプション、ルールの上書き、スクリプト、ログが含まれている場合があります。移行が必要なら、まず別のバックアップフォルダにコピーしてから元の場所を削除します。clash や mihomo を含む項目をワイルドカード付きのターミナルコマンドで一括削除しないでください。現在も使用中の別クライアントが同じ名前を使っている可能性があります。
システムプロキシが復元されていることを確認する
scutil --proxy を実行し、HTTPEnable、HTTPSEnable、SOCKSEnable を確認します。システムプロキシを無効にした後、これらの値は通常 0 になります。1 のままなら、現在のネットワークサービスのプロキシ設定を開いて手動で無効にします。Wi-Fiと有線ネットワークは別々のサービスなので、それぞれ確認してください。
症状別に最終確認を行う
システムプロキシは使えるが、TUNが使えない
- サービスモードまたはHelperがインストールされ、実行中であることを確認します。
- 「VPNとフィルタ」および「ログイン項目と機能拡張」で、ネットワーク拡張の状態を確認します。
- 他のVPN、コンテンツフィルタ、同種のプロキシクライアントを一時的に終了してから、TUNをもう一度有効にします。
- クライアントのログに
permission denied、ルート書き込みの失敗、DNSのリスニングポート競合がないか確認します。 - Macを再起動した後は、まずクライアントを1つだけ起動し、複数のプログラムが同時にデフォルトルートを作成しないようにします。
TUNは有効にできるが、一部のWebサイトが開けない
この場合、権限はほぼ正常です。DNSとルールの確認に切り替えてください。設定の dns.enable、enhanced-mode、ルールの順序、最終的なマッチングポリシーを確認します。LAN内のドメイン、社内ネットワーク、プリンターのアドレスは、必要に応じてダイレクト接続のルールに追加できます。ルール設定の問題を解決するために、ネットワーク拡張を何度も再インストールしないでください。
アップデートのたびに再認証を求められる
クライアントが常に同じパスにインストールされ、同じ配布元の正式版を使用していることを確認します。アップデート前にアプリを終了し、アップデート後は「アプリケーション」フォルダから起動してください。たとえば旧ClashX系からClash Verge Rev 2.xへ移行するなど、メジャーバージョンをまたぐ場合は、先に旧サービスをアンインストールし、新しいクライアントから専用サービスをインストールします。古いヘルパーツールをそのまま再利用しないでください。
再現性のある確認手順
- Macを再起動し、現在使用するクライアントだけを開きます。
- サブスクリプションをインポートし、手動で1回更新します。
- 利用可能なノードを1つ選び、まずシステムプロキシを有効にします。
- ブラウザが正常に接続できることを確認し、ローカルポートがリッスン状態か確認します。
- システムプロキシを無効にし、サービスをインストールしてTUNを有効にします。
utunインターフェースの変化とクライアントのログを確認します。- クライアントを終了して再度開き、キーチェーンの確認が繰り返し表示されないことを確認します。
この7手順を終えると、アプリの起動、サブスクリプションの読み込み、システムプロキシ、ヘルパーツール、ネットワーク拡張、キーチェーンを個別に検証できます。後で問題が再発しても、失敗した手順から原因を絞り込めるため、設定をすべて削除して最初からやり直す必要はありません。