まず3種類の許可を区別する:システムプロキシ、補助サービス、ネットワーク拡張機能
macOSクライアントの「システムプロキシを設定」「サービスモードをインストール」「TUNを有効にする」は、同じ機能ではありません。それぞれ利用するシステム機能が異なり、表示されるポップアップも変わります。3つを混同すると、ネットワーク拡張機能を許可したのにプロキシを変更できない、またはシステムプロキシが有効なのにTUNサービスを重複してインストールするといった問題が起こります。
| 機能 | システムの動作 | 主な許可 | 対象範囲 |
|---|---|---|---|
| システムプロキシ | HTTP、HTTPS、SOCKSプロキシを書き込む | 管理者パスワードまたは補助サービスの権限が必要になる場合があります | macOSのプロキシ設定に従うアプリ |
| サービスモード | 高い権限で動作する補助プロセスをインストールする | 管理者アカウントのパスワード | システムプロキシの変更、コアの起動、ネットワークの制御を安定して行う |
| TUNモード | 仮想ネットワークインターフェースを作成してルーティングを調整する | VPN構成、ネットワーク拡張機能、または補助サービスの許可 | システムプロキシを読み取らないアプリや一部のコマンドライン通信 |
| キーチェーンアクセス | 保存済みのトークン、サブスクリプション認証情報、サービスキーを読み取る | 現在のmacOSログインパスワード | ポップアップに表示されたキーチェーン項目だけに適用される |
ここでは一般的なClash Verge Rev 2.x、ClashX.Meta 1.4.x、mihomoコアベースのmacOSクライアントを例にします。画面上の名称は「システムプロキシ」「Service Mode」「Clash Core」「TUN Mode」「拡張モード」などの場合があります。具体的な実装はクライアントによって異なります。インストール時は必要な機能だけを個別に有効にし、インストールを完了させるためにすべての機能を一度に許可する必要はありません。
初回起動で推奨される手順
手順1:「アプリケーション」フォルダにアプリを移動する
ダウンロードが完了したらDMGを開き、クライアントを「アプリケーション」へドラッグしてから、Finderの「アプリケーション」フォルダから起動します。DMGイメージやダウンロードフォルダ、解凍後の一時フォルダから長期間実行しないでください。アプリのパスが変わると、ログイン項目、補助サービス、キーチェーンのアクセス制御に影響します。アップデート後にポップアップが繰り返し表示される場合、パスやコード署名の変更が原因であることがよくあります。
- FinderでダウンロードしたDMGまたは圧縮ファイルを開きます。
- アプリを「アプリケーション」へドラッグします。
- インストールイメージを取り出し、実行中の古いコピーを終了します。
- 「アプリケーション」からクライアントを開きます。
- メニューバーまたはDockにクライアントのインスタンスが1つだけ表示されていることを確認します。
macOSでアプリがインターネットからダウンロードされたものだと表示されたら、ファイルの入手元とアプリ名を確認して「開く」を選択します。システムによって起動が直接ブロックされた場合は、「システム設定」→「プライバシーとセキュリティ」を開き、セキュリティ欄で先ほどブロックされたアプリを見つけて「このまま開く」を選択します。macOS 12 Monterey以前では、「システム環境設定」→「セキュリティとプライバシー」→「一般」に相当します。
手順2:設定をインポートしてローカルポートを確認する
クライアントの「設定」または「Profiles」ページでサブスクリプションをインポートし、設定の解析が完了するまで待ってから、ポリシーグループでノードを1つ選びます。mihomoの設定では、混合ポートに7890、SOCKSポートに7891、外部コントロールポートに9090が使われることがあります。ただし、これらは一般的な初期値にすぎないため、現在の設定とクライアントの設定画面に表示される値を確認してください。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
別のプロキシツールが7890を使用していると、Clashコアが起動に失敗したり、再起動を繰り返したりすることがあります。他のプロキシアプリを終了してから、ターミナルでポートの使用状況を確認できます。
lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN
手順3:まずシステムプロキシを有効にする
クライアントの「システムプロキシ」スイッチをオンにします。初回の操作で補助サービスのインストールを求められ、管理者認証の画面が表示されるクライアントもあります。ここで入力するのは現在のMacの管理者アカウントのパスワードであり、Apple IDのパスワードではありません。入力中に文字数が表示されないのは、macOSの権限確認として通常の動作です。
有効にした後は、ターミナルで現在のネットワークサービスのプロキシ状態を確認できます。Wi-Fiネットワークサービスは通常「Wi-Fi」という名前ですが、古いシステムやカスタム環境では別の名前で表示される場合があります。
networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
scutil --proxy
出力にEnabled: Yesが表示され、サーバーアドレス127.0.0.1とポートがクライアントの設定と一致していれば、システムプロキシは書き込まれています。この状態でブラウザーに接続できない場合は、ネットワーク拡張機能のインストールを繰り返すのではなく、まずノード、ルール、DNSを確認してください。
macOS 12〜macOS 15でネットワーク拡張機能を許可する手順
TUNモードは、Network Extension、Packet Tunnel Provider、システム拡張機能、高い権限の補助プロセスなどを通じて実装される場合があります。クライアント、インストール方法、macOSのバージョンによって表示される通知は異なります。TUN、拡張モード、ネットワークサービスのインストールを有効にした際にシステム通知が表示された場合だけ、該当する設定画面を開いて許可してください。
macOS 15 Sequoia
macOS 15では、拡張機能の管理画面が「ログイン項目と機能拡張」に集約されています。「システム機能拡張がブロックされました」やネットワーク拡張機能のリクエストが表示されたら、「システム設定」→「一般」→「ログイン項目と機能拡張」を開き、画面下部の「ネットワーク機能拡張」を確認します。現在のクライアントの開発元またはアプリ名と一致する項目を見つけ、スイッチをオンにして指示に従って認証します。
「VPN構成を追加」というダイアログが表示された場合は、直前に操作したClashクライアントからのリクエストであることを確認して「許可」を選択します。完了したらクライアントに戻り、TUNをいったんオフにしてから再度オンにします。バージョンによっては、クライアントを完全に終了して再起動しないと、システムがPacket Tunnel Providerを再読み込みしません。
macOS 13 VenturaとmacOS 14 Sonoma
Ventura 13.7とSonoma 14.7では、ブロックされたシステムソフトウェアが通常、「システム設定」→「プライバシーとセキュリティ」の下部に表示されます。「許可」をクリックして管理者パスワードを入力し、システムの指示に従ってクライアントを再度開くかMacを再起動します。ボタンが表示されない場合は、クライアントの「インストール」を何度もクリックしないでください。アプリを終了し、TUNまたはサービスのインストールリクエストをもう一度発生させてから、すぐに「プライバシーとセキュリティ」を確認します。
VPN構成は「システム設定」→「VPN」で確認できます。同じクライアントが残した無効な構成が複数ある場合は、まずTUNをオフにし、旧バージョンのものだと明確に判断できる重複項目だけを削除してから、現在のバージョンで再作成します。会社のデバイスにあるVPN項目はモバイルデバイス管理で配布されている可能性があるため、自己判断で削除しないでください。
macOS 12 Monterey
Monterey 12.7では、旧版の「システム環境設定」を使用します。「セキュリティとプライバシー」→「一般」を開き、左下の鍵アイコンをクリックして認証を完了し、ブロックされたシステムソフトウェアを許可します。ネットワークサービスとVPNの状態は、「システム環境設定」→「ネットワーク」で確認できます。許可後に再起動を求められたら作業を保存して通常どおり再起動し、システム設定のプロセスを強制終了しないでください。
キーチェーンのポップアップでは「許可」と「常に許可」のどちらを選ぶべきか
キーチェーンのポップアップには、アクセスを要求しているアプリと項目の名前が明確に表示されます。Clashクライアントは、サブスクリプションの認証情報、コントローラーキー、サービストークン、安全な保存項目などをキーチェーンに保存する場合があります。操作前に、ポップアップ上部のアプリ名が起動したクライアントと一致していること、またサブスクリプションのインポート、サービスのインストール、アップデート後の初回起動時に表示されたことを確認してください。
| ボタン | 結果 | 推奨される場面 |
|---|---|---|
| 拒否 | 今回のキーチェーン項目へのアクセスを許可しない | アプリ名、入手元、またはリクエストのタイミングを確認できない場合 |
| 許可 | 今回に限り読み取りを許可する | 機能を初めて確認し、長期的な許可はまだ設定しない場合 |
| 常に許可 | 現在のアプリの識別情報に対するアクセス許可を保存する | 固定されたインストール先にある信頼できるクライアントで、バックグラウンドでの自動起動が必要な場合 |
ログイン時にクライアントを自動起動し、毎回同じサービスキーを読み取る必要がある場合は、「常に許可」を選ぶと、ポップアップによってバックグラウンド起動が止まるのを防げます。ここでも、現在のmacOSログインアカウントのパスワードを入力する必要があります。Touch IDが使えるかどうかは、システムのバージョン、キーチェーン項目、認証ポリシーによって異なります。ポップアップでパスワードを求められたら、このMacのアカウントパスワードを入力してください。
「許可」だけを選んだ場合、次回のアプリ再起動時に再度確認されるのは想定された動作です。「常に許可」を選んでも毎回表示される場合は、アプリをDMGから実行していないか、アップデート時に配布元が変わっていないか、同名のクライアントが2つ残っていないかを確認します。キーチェーンのアクセス制御はアプリの署名を識別するため、名前が同じでも同じ許可主体とは限りません。
ネットワーク拡張機能の許可に失敗した場合のリセット手順
まず最小限の再試行を行う
- クライアントでTUN、システムプロキシ、自動起動をオフにします。
- メニューバーから「終了」を選び、「アクティビティモニタ」を開いてクライアントのプロセスが終了していることを確認します。
- 「システム設定」→「ネットワーク」→「VPN」を開き、現在のクライアントに明らかに属し、状態に異常のある古い構成を削除します。
- macOS 15の「一般」→「ログイン項目と機能拡張」→「ネットワーク機能拡張」で古い項目をオフにしてから、再度オンにします。
- Macを再起動し、「アプリケーション」からクライアントを起動します。
- まずシステムプロキシでテストし、その後TUNだけを有効にします。
システムコマンドで登録済みのシステム拡張機能を確認できます。この一覧は拡張機能の存在を確認するためのもので、Clashの通信が必ずそこを通ることを示すものではありません。
systemextensionsctl list
scutil --nwi
ifconfig | grep -E "utun[0-9]"
utun0やutun1などのインターフェースが表示されても、それだけでClashのものだとは判断できません。iCloudプライベートリレー、企業VPN、他のネットワークソフトウェアもutunを作成することがあります。より確実な方法は、ClashのTUNをオフにする前後でインターフェース、ルート、クライアントログを比較し、ログにpermission denied、operation not permitted、route setup failedがないことを確認することです。
次に補助サービスを再インストールする
多くのクライアントでは、「設定」→「サービスモード」または「設定」→「Clash Core」にアンインストールと再インストールの入口があります。まずアンインストールを実行し、クライアントを完全に終了してから再度開き、インストールします。認証に成功したら、管理者パスワードの画面が消えたかだけでなく、クライアントに戻ってサービスの状態が実行中になっていることを確認してください。
ネット上から出所不明のsudo rmコマンドをコピーして、LaunchDaemon、システム拡張機能、ネットワーク設定をまとめて削除しないでください。クライアントごとにbundle identifierと補助サービス名は異なり、誤って削除すると他のVPNにも影響します。まずはクライアントに用意されたアンインストール機能を使用してください。クライアントを起動できない場合は、プロジェクトのドキュメントで正確なサービス名を確認してから作業します。
キーチェーンのポップアップが繰り返し表示される場合の安全なリセット方法
「アプリケーション」→「ユーティリティ」→「キーチェーンアクセス」を開き、左側で「ログイン」キーチェーンを選択してから「すべての項目」を選びます。クライアント名、開発元名、またはポップアップに表示された項目名で検索します。対象項目をダブルクリックして「アクセス制御」を開くと、アクセスを許可されているアプリを確認できます。
- ポップアップに表示されたキーチェーン項目の正式名称を記録します。
- Clashクライアントとメニューバーのプロセスを終了します。
- 「キーチェーンアクセス」で該当する項目だけを特定し、「ログイン」キーチェーン全体は削除しないでください。
- アクセスリストが古いパスを指している場合は、古いアプリの項目を削除して保存します。
- 項目が明らかにアンインストール済みの古いクライアントのものなら、その項目だけを削除します。
- 「アプリケーション」から現在のクライアントを再起動し、アクセス権を再作成または再申請させます。
- アプリ名を確認して「許可」を選び、動作が安定してから「常に許可」を使うか判断します。
サブスクリプションの認証情報に関する項目を削除すると、クライアントで再ログインやサブスクリプションの再インポートが必要になる場合があります。操作前に、サブスクリプションURLへ再度アクセスできることを確認してください。証明書、Wi-Fiパスワード、ブラウザーの安全な保存情報、名前を確認できない一般パスワード項目は削除しないでください。
許可後もインターネットに接続できない場合の確認順序
ネットワーク拡張機能が有効と表示されても、macOSが拡張機能を受け入れたことを示すだけです。ノードが利用可能であること、ルールが正しいこと、DNSの名前解決が完了していることまでは保証しません。システム権限だけを原因と考えないよう、次の順序で確認してください。
- コアの状態:mihomoまたはClash Metaコアが実行中で、ログにポート競合や設定解析エラーがないことを確認します。
- サブスクリプションの状態:設定を手動更新し、サブスクリプションが期限切れでないこと、ポリシーグループで利用できない仮のポリシーではなく具体的なノードが選択されていることを確認します。
- システムプロキシ:
scutil --proxyでアドレスとポートを確認し、クライアントのmixed-portと一致していることを確認します。 - 動作モード:通常の利用ではRuleを優先します。Globalではより多くのリクエストが1つのポリシーを通り、Directではプロキシルールに従って転送されません。
- DNS:設定のnameserver、fallback、fake-ipを確認します。変更後はシステムプロキシを切り替えるだけでなく、コアを再起動してください。
- TUNの競合:他のVPN、パケットキャプチャツール、同種のプロキシクライアントを終了してから、ClashのTUNだけを有効にします。
- ファイアウォールとフィルタ:「システム設定」→「ネットワーク」→「VPNとフィルタ」を開き、同時に有効化されているコンテンツフィルタがないか確認します。
システムプロキシでは正常に通信できるのに、TUNを有効にすると接続できなくなる場合、ルーティング、DNSの横取り、MTU、他のVPNとの競合が原因であることが多いです。まずTUNの自動ルート設定とDNS引き継ぎをオフにし、1項目ずつテストしてください。Fake-IPを使用している場合は、LAN機器、社内ドメイン、ローカルドメインをfake-ip-filterに追加する必要がないかも確認します。ルールの意味を理解しないまま、すべてのドメインを直接接続に変更しないでください。
逆に、TUNは正常なのにTUNをオフにするとブラウザーへ接続できない場合は、システムプロキシが実際に書き込まれているか確認します。一部のクライアントでは、サービスモードのインストールに失敗しても画面上のスイッチだけが一時的にオンになります。この場合は補助サービスを再インストールし、networksetupまたはscutilで再度確認してください。
アップデートとアンインストールで権限の残留を防ぐ
アップデート前にシステムプロキシとTUNをオフにして、クライアントを終了します。アプリ内アップデートではアプリを「アプリケーション」に置いたままにし、手動で置き換える場合は旧バージョンを終了してから新バージョンで上書きしてください。「クライアント」「クライアント 2」「ダウンロードフォルダ内のコピー」を同時に残さないでください。別のブランチや配布版へ移行する場合は、先にローカル設定をエクスポートし、旧クライアントのサービスアンインストール機能を使用します。
アプリのアイコンを削除しても、システムプロキシは自動的に解除されません。終了前にシステムプロキシが127.0.0.1:7890を指していると、クライアントを削除した後にブラウザーがインターネットへ接続できなくなる場合があります。「システム設定」→「ネットワーク」→「Wi-Fi」→「詳細」→「プロキシ」で、ウェブプロキシ、安全なウェブプロキシ、SOCKSプロキシをオフにできます。クライアントを再インストールしてシステムプロキシを有効にし、正常にオフにする方法もあります。
アンインストールが完了したら、「システム設定」→「一般」→「ログイン項目と機能拡張」、「システム設定」→「ネットワーク」→「VPN」、「キーチェーンアクセス」を確認します。古いクライアントに属すると確認できる項目だけを削除してください。同じクライアントを使い続ける場合、アップデートのためにすべての設定を削除する必要はありません。サブスクリプションとルールファイルは残したほうが安全です。