Clash macOSのインストール権限設定:ネットワーク拡張機能とキーチェーンの確認
Clash macOSの初回起動で求められるネットワーク拡張機能、システムプロキシ、キーチェーンの権限と、拒否後に再設定する手順を解説します。
macOSの権限プロンプトとClashの機能の関係
macOSのClash GUIクライアントは、通常、画面、Clashまたはmihomoのコア、システムプロキシ制御モジュール、そして必要に応じてTUNモジュールで構成されます。初回起動時に表示されるシステムプロンプトは、クライアントの実装方式、macOSのバージョン、現在有効な機能によって異なります。通常のルールベースプロキシ、システムプロキシ、TUNモードで必要な権限も同じではありません。
システムプロキシだけを使う場合、クライアントは主にmacOSの現在のネットワークサービスで、HTTP、HTTPS、SOCKSプロキシの接続先をローカルの待受ポートに設定します。ブラウザーやシステムプロキシに従うアプリは接続をClashコアへ渡し、ルールに従って直接接続、プロキシノード、その他のポリシーグループが選択されます。補助サービスのインストールやネットワーク設定の変更に管理者の認証が必要な場合はありますが、ネットワーク拡張機能が必ず登録されるとは限りません。
TUNモードを有効にすると、クライアントは仮想ネットワークインターフェースを作成し、システムルートを調整して、システムプロキシを参照しないプログラムの通信もClashへ取り込めるようにします。Apple Network Extensionフレームワークを使うクライアントもあれば、管理者権限を持つバックグラウンドサービスで仮想インターフェースを作成するクライアントもあります。そのため、同じTUN機能でも「ネットワーク拡張機能を許可」「VPN構成を追加」「補助ツールをインストール」や管理者アカウントの認証など、表示されるプロンプトはクライアントによって異なります。
キーチェーンは、保護された認証情報の保存や読み取りに使われます。クライアントは補助サービスの認証情報、プロキシ認証情報、その他の機密設定をログインキーチェーンに保存することがあります。キーチェーンへのアクセス確認と通常の管理者認証は区別してください。前者には通常「キーチェーン」や特定の項目名が表示され、後者はシステムレベルの変更を確認するためのものです。ウインドウの表示位置だけで両者を同じものと判断しないでください。
| プロンプトの種類 | 主な用途 | 拒否した場合の影響 |
|---|---|---|
| 管理者アカウントの認証 | バックグラウンド補助サービスのインストール、保護されたネットワーク設定の変更 | サービスモードやTUN機能を有効にできない場合があります |
| ネットワーク拡張機能またはVPN構成 | システムが管理する仮想ネットワーク経路の作成 | TUNによる通信の取り込みは開始できませんが、通常のシステムプロキシは引き続き使える場合があります |
| キーチェーンへのアクセス | 保護された認証情報や認証データの読み取り・保存 | パスワードを何度も求められたり、関連設定を復元できなくなったりする場合があります |
| 通知の権限 | 接続、更新、バックグラウンド状態の表示 | プロキシ接続の基本機能には影響しませんが、状態通知が減ります |
Clash macOSの初回起動時に行う設定手順
インストール後は、まずアプリを「アプリケーション」フォルダへ移動し、その場所から起動します。ダウンロードフォルダやディスクイメージから直接実行すると、補助サービスのパスが変わったり、自動起動が機能しなかったりするほか、アップデート時に古いコンポーネントが残りやすくなります。アプリがインターネットからダウンロードされたものであるという警告が表示された場合は、入手元を確認してから開いてください。
-
まずクライアントを起動し、TUNはすぐに有効にしないでください。
画面にコアが起動していることが表示されるまで待ち、ローカルプロキシの待受ポートが競合していないことを確認します。一般的なポートは設定内の
port、socks-port、mixed-portで決まります。実際の値は現在の設定に従ってください。 -
有効な設定またはサブスクリプションをインポートします。
サブスクリプションには通常、ノード、ポリシーグループ、ルールが含まれます。インポート後に一度手動で更新し、YAMLの解析エラーがないことを確認して、ポリシーグループで利用可能なノードを選択します。ネットワーク権限は通信をコアへ渡すためのものであり、無効なノードや誤ったサブスクリプションを修復するものではありません。
-
まず通常のシステムプロキシをテストします。
「システムプロキシ」を有効にしてテストページへアクセスし、クライアントの接続ログを確認します。ログにドメイン、ルール、ポリシーグループが表示されれば、アプリの通信はClashに取り込まれています。この時点で接続できない場合は、権限を追加するのではなく、まずノードとルールを確認してください。
-
必要に応じてサービスモードをインストールするか、TUNを有効にします。
コマンドライン、ゲーム、仮想マシンの通信や、システムプロキシに従わないアプリを取り込む必要がある場合に限り、TUNを有効にしてください。ネットワーク拡張機能、VPN構成、補助ツールに関するプロンプトが表示されたら、クライアントの画面に従って認証を完了します。
-
クライアントを再起動して設定を再確認します。
補助サービスのインストールが完了したら、クライアントを完全に終了してから再度開きます。メニューバーアプリはバックグラウンドで動作し続ける場合があるため、メインウインドウを閉じるだけでは不十分です。再起動後、システムプロキシ、TUN、ポリシーモードが想定どおり維持されているか確認します。
ネットワーク拡張機能を拒否した後に再度有効にする方法
初回のネットワーク拡張機能の要求で「許可しない」を選んでも、通常はClashの設定が壊れることはありません。ただし、TUNやVPNによる通信取り込みは利用できない状態になります。再認証の入口はmacOSのバージョンによって変わっており、項目名も多少異なる場合があります。システム設定の検索機能も使って探してください。
システム設定で拡張機能の状態を確認する
新しいmacOSでは、まず「システム設定」を開き、検索欄に「ネットワーク拡張機能」「VPN」「フィルタ」などと入力します。一般的な場所は、「ネットワーク」内の「VPNとフィルタ」や、「一般」内の「ログイン項目と機能拡張」にある「ネットワーク拡張機能」です。現在のClashクライアントまたは補助コンポーネントが一覧に表示されたら、該当項目を有効にしてクライアントへ戻り、TUNを再度試します。
バージョンによっては、「プライバシーとセキュリティ」ページの下部に、ブロックされたシステムソフトウェアや拡張機能が表示されます。この種の通知はインストール後の限られた期間だけ表示されることがあります。「許可」をクリックすると、管理者アカウントの認証や、アプリの終了、macOSの再起動を求められる場合があります。再起動前に作業を保存し、他のアプリも通常どおり終了してください。
システム設定に該当項目が見つからない場合
ネットワーク拡張機能の一覧に関連項目がまったくない場合、クライアントがまだ登録処理を開始していない、アプリがディスクイメージ上にある、補助コンポーネントのインストールに失敗している、または現在のクライアントがNetwork Extensionフレームワークを使っていない可能性があります。存在しないスイッチを繰り返し探すのではなく、次の順番で対処してください。
- クライアントを終了し、「アクティビティモニタ」で関連する画面プロセスが終了していることを確認します。
- アプリが「アプリケーション」フォルダにあり、複数のバージョンを交互に起動していないことを確認します。
- クライアントを再度開き、設定でTUNまたはサービスモードをいったん無効にしてから有効にし、インストール処理を再実行させます。
- クライアントに「サービスをインストール」「サービスを修復」「補助コンポーネントを再インストール」などの機能がある場合は、内蔵の入口から実行します。
- それでもプロンプトが表示されない場合は、クライアントのログを確認し、権限エラーなのか、サービス未インストールなのか、設定項目が原因でコアの起動に失敗しているのかを切り分けます。
mihomoベースの一部クライアントは、システム設定に独立したネットワーク拡張機能を表示せず、特権補助サービスでTUNを管理します。この場合は、管理者認証とサービスの状態がより重要です。判断にはクライアントのドキュメント、ログに記録されたサービスの起動結果、対応する仮想インターフェースが作成されたかどうかを用い、「一覧にネットワーク拡張機能がない」ことだけでインストール失敗とは判断しないでください。
キーチェーンのパスワード要求と繰り返し表示されるダイアログへの対処
macOSの「ログイン」キーチェーンは通常、ユーザーのログイン時に自動でロック解除されます。Clashクライアントや補助コンポーネントが保護された項目を読み取ると、アクセス確認が表示されることがあります。ウインドウには通常、アクセスを要求しているアプリとキーチェーン項目の名前が表示され、「拒否」「一度だけ許可」「常に許可」などの選択肢があります。まずアプリのパスと名前を確認し、許可の範囲を決めてください。
初回起動時やクライアントのアップデート直後だけであれば、「一度だけ許可」を選んで、その後の動作を確認できます。提供元、署名、用途が明確で、対象項目をバックグラウンドで継続的に読み取る必要がある場合に限り、継続的な許可を検討してください。入力を求められるのは通常、現在のmacOSユーザーのログインパスワードであり、サブスクリプションサービスのパスワード、プロキシノードのパスワード、Appleアカウントのパスワードではありません。
ログインパスワードが正しいのにキーチェーンで拒否される場合
macOSのログインパスワードを変更した後、ログインキーチェーンの古いパスワードが同期されずに残ることがあります。この場合、システムへのログインは成功していても、古いキーチェーンは以前のパスワードを使い続けています。macOS標準の「キーチェーンアクセス」を開き、「ログイン」キーチェーンがロックされているか確認し、以前のログインパスワードでロック解除を試します。古いパスワードが分かる場合は、キーチェーンの設定でパスワードを更新し、現在のアカウントと一致させます。
古いパスワードを取り戻せない場合は、まずキーチェーンに保存された他のアカウント情報への影響を確認してください。デフォルトキーチェーンのリセットは多くのアプリに影響するため、Clashの単一のプロンプトに対する最初の手段にすべきではありません。より安全なのは、現在のクライアントに明確に関連する項目を特定し、クライアントを終了して必要な情報をバックアップしてから、その項目だけを削除する方法です。その後、クライアントを再起動して認証記録を再作成させます。
起動するたびに許可を求められる場合
- ダウンロードフォルダ、ディスクイメージ、「アプリケーション」フォルダなど、毎回異なる場所からアプリを起動していないか確認します。
- クライアントのアップデート後に、アプリの署名やコンポーネント名が変わっていないか確認します。古いキーチェーンのアクセス制御が新しいプログラムと一致しなくなることがあります。
- 「ログイン」キーチェーンがログイン後に自動でロック解除されるか、セキュリティポリシーによって早期にロックされていないか確認します。
- キーチェーン全体を削除しないでください。名前と所属を確認できるクライアントの項目だけを処理します。
- ダイアログが見慣れないプログラムを指している場合は、要求を拒否し、ログイン項目、バックグラウンド項目、現在実行中のプロセスを確認します。
システムプロキシを有効にしても機能しない場合の確認方法
システムプロキシのスイッチが有効になっても、ノードが利用できるとは限りません。正しい切り分けは、プロキシ設定が書き込まれているか、コアが待ち受けているか、通信がログに現れるか、ルールで正しいポリシーが選ばれているか、最後にリモートノードが利用可能かを順番に確認することです。各工程を分ければ、ウェブページが一度開けないだけで権限コンポーネントを再インストールする事態を避けられます。
macOSの現在のプロキシ状態を確認する
ターミナルでは、macOS標準のコマンドを使って動的ストアに保存されたプロキシ設定を確認できます。
scutil --proxy
出力に表示されるHTTP、HTTPS、SOCKSの有効状態とポートが、Clashクライアントに表示されるローカル待受情報と一致していることを確認します。クライアントでシステムプロキシを有効にしているのに、コマンドでは無効と表示される場合は、いったんスイッチを切り、数秒待ってから再度有効にします。他のネットワークツールが直後に設定を上書きしていないかも確認してください。
特定のネットワークサービスを指定して設定を確認することもできます。サービス名は「Wi-Fi」、USBネットワークアダプタ名、企業構成で作成されたサービス名などの場合があるため、先にシステム設定のネットワーク画面で実際の名称を確認してください。
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"
ローカルポートと設定を一致させる
Clashの設定ではHTTPとSOCKSに別々のポートを使う場合もあれば、mixed-portで共通の入口を提供する場合もあります。システムプロキシが古いポートを参照し、新しい設定で待受ポートが変更されていると、スイッチは正常に見えても接続は拒否されます。クライアントの概要画面と現在有効な設定を確認してください。クライアントは実行時に項目を統合・上書きすることがあるため、サブスクリプションファイルの原文だけを見ないようにします。
ログに新しい接続がまったく追加されない場合、問題は通常、システムプロキシの書き込み、アプリによるプロキシの回避、またはローカルポートより前の段階にあります。接続はあるもののtimeoutと表示される場合は、ノード、DNS、リモートへの到達性を確認します。ログにDIRECTと明示される場合は、ルールの順序と現在のモードを確認してください。Clashのルールは上から順に評価され、通常は一致するとそこで処理が終了します。
クライアント終了後にプロキシ設定を復元する
通常終了時、クライアントは自分で書き込んだシステムプロキシを解除します。異常終了後にブラウザーがインターネットへ接続できない場合は、同じクライアントを再起動し、システムプロキシをいったん有効にしてから無効にし、通常どおり終了します。「システム設定」で現在のネットワークサービスの詳細を開き、HTTP、HTTPS、SOCKSプロキシを手動で無効にすることもできます。ネットワークサービス名や既存の企業設定が分からない状態で、変更コマンドをまとめて実行しないでください。
TUNモードの権限、DNS、仮想インターフェース
TUNモードは仮想ネットワークインターフェースでIP通信を受信し、Clashまたはmihomoのコアへ渡して処理します。システムプロキシに従わないアプリに適していますが、他のVPN、仮想マシンのネットワーク、コンテナツール、セキュリティフィルターと競合しやすくなります。通常のウェブプロキシで目的を満たせるなら、「権限をより完全にする」ためだけにTUNを追加で有効にする必要はありません。
TUNを有効にすると、クライアントはデーモンのインストールに管理者権限を求めたり、VPN構成の追加を要求したりする場合があります。認証に成功すると、システムのネットワーク画面にVPNやフィルタの項目が現れ、ターミナルのネットワークインターフェース一覧にutunが表示されることもあります。macOS本体や他のアプリもutunを作成するため、この名前が見えただけでClashのものとは限りません。有効化前後の変化とクライアントのログを組み合わせて判断してください。
mihomoの設定でTUNに関係する主な項目には、enable、stack、auto-route、auto-detect-interfaceがあります。GUIクライアントがこれらの項目を自動生成する場合もあれば、サブスクリプションの値を画面のスイッチで上書きする場合もあります。YAMLを変更する前に、クライアントが「サブスクリプションの元設定」「上書き設定」「実行時に統合された設定」のどれを使っているか確認し、サブスクリプション更新で手動変更が消えないようにしてください。
DNSはTUNのトラブルシューティングで重要なポイントです。ドメインはまず名前解決され、その後にドメインルールやIPルールに従って振り分けられます。TUNを有効にしてからドメインだけアクセスできず、既知のIPアドレスには応答がある場合は、ClashのDNSモジュールが起動しているか、上流DNSへ到達できるか、他のVPNがDNSを強制的に取り込んでいないかを確認します。ログにDNSループや継続的なタイムアウトが出る場合は、まず他のネットワーク制御ツールを一時的に終了し、Clashだけでテストしてください。
権限を許可してもClashが接続できない場合
システム権限はローカル経路の一部にすぎません。ネットワーク拡張機能が許可済みで、キーチェーンの確認も表示されなくなった後でも、接続はサブスクリプションの期限切れ、ノードへの到達不能、システム時刻の誤り、ポート競合、ルール設定の影響を受ける可能性があります。ローカルからリモートへ、順番に確認することをおすすめします。
-
コアの状態を確認します。
クライアントにコアの終了、設定解析の失敗、起動ループが表示されていないことを確認します。YAMLのインデントエラー、ポートの重複、現在のコアがサポートしていない項目があると、権限を取得した後でもコアを実行できない場合があります。
-
サブスクリプションを更新し、更新時刻を確認します。
設定を一度手動で更新し、返されたエラー内容を記録します。サブスクリプションURLの無効化、ネットワーク要求の遮断、設定内容の形式エラーはそれぞれ別に対処する必要があり、更新ボタンを繰り返し押してもエラーの種類は変わりません。
-
複数のノードをテストします。
遅延テストは到達性の参考にはなりますが、実際の接続品質を完全に示すものではありません。地域やプロトコルの異なるノードを試し、ログで接続タイムアウト、ハンドシェイク失敗、DNS失敗のどれが起きているか確認します。
-
システムの日付とタイムゾーンを合わせます。
日付、時刻、タイムゾーンが大きくずれていると、TLS接続の検証に失敗することがあります。macOSの日付と時刻の設定を開き、自動設定を有効にして、現在のタイムゾーンが正しいことを確認します。
-
他のネットワーク制御プログラムを終了します。
他のVPN、プロキシクライアント、コンテンツフィルター、企業向けセキュリティソフトが、デフォルトルートやDNSを変更している可能性があります。一時的に終了して再テストしてください。ただし、企業の管理下にある端末では、セキュリティコンポーネントについて組織の管理ルールに従う必要があります。
-
現在のモードとポリシーグループを再確認します。
ルールモードは設定内のルール順序とポリシーの選択に依存します。グローバルモードでは通常、通信が指定したグローバルポリシーへ渡され、直接接続モードではプロキシノードを使いません。モードを間違えると、権限やノードが正常でも想定と異なる接続結果になります。
クライアントのアップデート後にTUNが突然使えなくなった場合
アップデートではGUI、コア、補助サービスが同時に置き換わることがあります。まず古いプロセスを完全に終了し、「アプリケーション」フォルダから新しいバージョンを起動します。画面にサービスのバージョン不一致が表示された場合は、クライアントに用意されたアンインストールまたはサービス修復の入口から補助コンポーネントを再インストールします。管理者認証を完了してクライアントを再起動し、ネットワーク拡張機能やVPN項目が引き続き有効か確認してください。
旧版と新版を別のフォルダに置いて交互に起動しないでください。システム権限はアプリ識別子、署名、コンポーネントのパスに紐づく場合があり、交互に実行するとキーチェーンのアクセスやバックグラウンドサービスの状態が分かりにくくなります。新しいバージョンの設定が使えることを確認してから、クライアントが案内する方法で古いコンポーネントを削除してください。
問い合わせに添えるとよい診断情報
クライアントの開発者や保守担当者へ報告する際は、macOSのメジャーバージョン、Macのチップ種別、クライアントのバージョン、コアの種類、問題が起きる手順、機密情報を伏せたログの一部を提供できます。サブスクリプションURL、ノードサーバーのアドレス、認証情報、本体アカウント情報は公開しないでください。ログは「接続失敗」の1行だけでなく、エラー発生前後の状況が分かる範囲を残します。