macOSでプロキシクライアントを使う際の権限設定:ネットワーク拡張の許可とキーチェーンの警告
macOSで開発元未確認の警告やシステム拡張を許可する方法、TUN利用時のネットワーク拡張と繰り返し表示されるキーチェーンの警告を解説。AppleシリコンとIntelの違いも紹介します。
まず4種類の警告を区別:起動時の確認、バックグラウンドサービス、VPN、キーチェーン
macOSのプロキシクライアントは通常、画面を操作するアプリとプロキシコアで構成されます。Mihomoはコアで、Clash Metaはその旧称です。クライアントは設定の読み込み、システムプロキシの切り替え、権限の要求などを担います。同じコアを使っていても、ネットワーク拡張や補助サービスの仕組みはクライアントごとに異なります。問題を調べる際は、クライアント名とバージョン、macOSのバージョン、警告に表示された文言を控えておきましょう。
「開発元を確認できない」はアプリの起動時に行われる確認、「VPN構成を追加」はネットワーク設定の許可です。補助ツールのインストールを求められる場合は、通常、特権付きのバックグラウンドサービスが関係しています。「キーチェーン内の機密情報へのアクセス」は保存済みの認証情報に関するものです。それぞれ必要な対応は異なり、パスワードを何度も入力してもインストールの成否は判断できません。
| 表示された警告・現象 | 該当する処理 | まず確認する項目 |
|---|---|---|
| 開発元を確認できない | Gatekeeperによる起動時の確認 | 入手元、アプリの署名、「プライバシーとセキュリティ」 |
| 管理者の許可が必要な補助ツールのインストール | 特権付き補助サービス | クライアントのドキュメント、バックグラウンドサービスのインストール状態 |
| VPN構成の追加を要求される | システムのネットワーク設定 | 要求元のアプリ名、VPNの設定 |
| システム拡張がブロックされた | 拡張機能の読み込み許可 | 開発元名、該当する拡張機能の設定 |
| ログインキーチェーンへのアクセスが繰り返し要求される | 認証情報へのアクセスまたはキーチェーンのロック | 要求元のプロセス、対象項目、ログインパスワードの変更 |
インストール前にチップの種類とアプリの配置場所を確認
AppleシリコンとIntelに合ったインストーラーを選ぶ
Appleメニューから「このMacについて」を開きます。「チップ Apple M…」と表示される場合はAppleシリコンまたはarm64版を、「Intelプロセッサ」と表示される場合はx64またはx86_64版を選びます。Universal版には通常、両方のアーキテクチャが含まれていますが、クライアントが案内するmacOSの最低対応バージョンも確認してください。
- Appleシリコン:Rosetta 2で多くのIntel向けユーザーアプリを実行できますが、補助ツールやネットワーク拡張も互換性があるとは限りません。クライアントが提供するネイティブ版を優先してください。
- Intel:arm64のみの実行ファイルはそのままでは動きません。「CPUタイプが正しくありません」と表示された場合は、セキュリティ設定を変更する前にアーキテクチャを確認してください。
- 共通の手順:アプリを「アプリケーション」フォルダに移動し、ディスクイメージを取り出してから、「アプリケーション」フォルダ内のアプリを起動します。DMG内のアプリを使い続けないでください。
アプリを決まった場所に置くと、複数のコピーによる混乱を防げます。Dockに古いアイコンが残っている場合は、アイコンを右クリックして「オプション」→「Finderに表示」を選び、現在のバージョンが開かれることを確認してください。アプリを置き換える前に古いプロセスを終了し、画面だけ新しく、バックグラウンドのコアは古いままという状態を避けましょう。
# 現在のターミナルプロセスのアーキテクチャを確認(Rosetta環境のターミナルではx86_64と表示される場合があります)
uname -m
# macOSのバージョンを確認
sw_vers -productVersion
ハードウェアの種類は「このMacについて」で確認してください。ターミナルがRosettaの変換環境で動作している場合、uname -mだけではインストーラーを誤って選ぶ可能性があります。
「開発元を確認できない」場合の対処:macOSのセキュリティ機能は維持する
macOS 13 Ventura、14 Sonoma、15 Sequoiaでは、「システム設定」→「プライバシーとセキュリティ」に該当する項目があります。ブロックされたアプリを開こうとすると、ページ下部にブロックの記録と「このまま開く」ボタンが表示される場合があります。アプリの入手元と名前を確認してから、画面の指示に従ってください。すべてのブロックでこのボタンが表示されるわけではありません。
- インストーラーがプロジェクトの公式配布元から入手したもので、macOSのバージョンとアーキテクチャが要件を満たしていることを確認します。
- アプリを「アプリケーション」フォルダに移動して一度起動し、エラーメッセージを省略せずに記録します。
- 「プライバシーとセキュリティ」を開き、該当アプリを許可する項目があるか確認します。
- 「アプリがコンピュータに損害を与える可能性がある」「悪意のあるコンテンツが含まれている」と表示された場合や、組織のポリシーでブロックされている場合は、許可せずに入手元を確認するか管理者に相談してください。
「アプリが破損しています」という表示は、隔離属性だけが原因とは限りません。ダウンロードの中断、署名の無効化、ファイルの改変などでも起動できなくなります。まずは同じプロジェクトから、互換性のあるバージョンを改めて入手してください。隔離属性を再帰的に削除するコマンドをすぐに実行するのは避けましょう。
クライアントの実装に応じてネットワーク拡張または補助サービスを許可
「VPN構成を追加」と表示された場合
Network Extensionを使うクライアントでは、初めてネットワークトンネルを起動する際にVPN構成の追加を求められることがあります。表示されたアプリ名が、実行中の操作に対応していることを確認してから許可してください。許可後は「システム設定」で「VPN」を検索し、該当する構成を確認できます。VPNの状態表示で分かるのはネットワークトンネルの状態までで、ノード、DNS、ルールが正常であることまでは確認できません。
「システム拡張がブロックされました」と表示された場合
macOS 13、14では、「システム設定」→「プライバシーとセキュリティ」に開発元を許可する項目があるか確認します。macOS 15では、一部の拡張機能の管理項目が「システム設定」→「一般」→「ログイン項目と機能拡張」→「ネットワーク機能拡張」にあります。場所は拡張機能の種類やmacOSのマイナーバージョンによって異なるため、システム設定内で「拡張機能」を検索する方法もあります。クライアントの開発元と一致する項目だけを有効にしてください。
「補助ツールをインストール」と表示された場合
別の方式として、ルートの設定や高い権限が必要なコアの起動に補助サービスを使うクライアントもあります。この場合、通常求められるのはMacの管理者アカウントによる許可であり、サブスクリプションのアカウントやApple Accountのパスワードではありません。インストール後は、クライアント画面のサービス状態が変化するはずです。未インストールのままなら、何度もクリックせずサービスのログを確認してください。
- システムから再起動を明示的に求められた場合のみ、作業を保存して再起動してください。許可のたびに再起動が必要なわけではありません。
- 企業管理下のMacでは、拡張機能、VPN、バックグラウンド項目が制限されている場合があります。個人ユーザーが「許可」を選んでも、デバイス管理ポリシーを上書きすることはできません。
- TUNの起動に失敗したからといって、「フルディスクアクセス」「アクセシビリティ」「画面収録」を許可しないでください。これらはMihomoでプロキシ接続を確立するための一般的な必須条件ではありません。
アップデート後に補助サービスと本体のバージョンが一致しなくなった場合は、クライアントに用意されている「サービスを修復」機能を使うか、サービスを再インストールしてください。/Library/LaunchDaemons内の見慣れない項目を自分で削除すると、ほかのソフトウェアのバックグラウンドサービスに影響するおそれがあります。
まずシステムプロキシを確認し、その後にTUNを有効にする
初回インストールでは、2段階に分けて動作を確認するのがおすすめです。有効な設定を読み込み、まずシステムプロキシだけを有効にしてブラウザーが使えることを確認します。その後、必要に応じてTUNを有効にします。ノードやサブスクリプションの問題と、ルートや権限の問題を切り分けやすくなります。システムプロキシはシステムのプロキシ設定に従うアプリに影響し、TUNは仮想ネットワークインターフェイスを通じて、ルーティング条件に合う通信を処理します。両者は別の機能です。
プロキシポートとシステム設定を確認
たとえば、次の設定で混合ポートを使う場合、HTTPプロキシとSOCKSプロキシはどちらもローカルの7890に接続できます。これはあくまで例です。実際の確認では、現在適用されている設定を参照してください。クライアントが設定上のポートを上書きすることもあるため、クライアント画面とコアのログの両方を確認します。
mixed-port: 7890
allow-lan: false
mode: rule
macOS 13〜15では、「システム設定」→「ネットワーク」→現在のネットワーク接続→「詳細」→「プロキシ」を開き、WebプロキシとセキュアWebプロキシのサーバーおよびポートを確認します。上記の例では、アドレスは127.0.0.1、ポートは7890です。ノードのサーバーアドレスをローカルのHTTPプロキシ欄に入力しないでください。
# システムプロキシの状態を確認
scutil --proxy
# ポートでTCP接続を待ち受けているか確認
lsof -nP -iTCP:7890 -sTCP:LISTEN
# ローカルのHTTPプロキシを明示してリクエストを送信
curl -I --connect-timeout 10 --proxy http://127.0.0.1:7890 https://example.com
これらのコマンドは問題の切り分けに使うもので、結果を保証するものではありません。ポートが待ち受け状態でも、分かるのはプロセスがそのポートを使用していることだけです。プロセス名も確認してください。リクエストに失敗した場合は、プロキシへの接続、ノードとのハンドシェイク、接続先サイトからの応答のどこに問題があるか、ログを確認します。
TUNを有効にした後の確認手順
- デフォルトルートやDNSの競合を避けるため、ほかのVPNまたはプロキシクライアントを停止します。
- クライアントのTUN機能を有効にし、実際に要求されたサービスまたは拡張機能を許可します。
- 権限不足、ルート追加の失敗、デバイス作成の失敗がログに記録されていないか確認します。
- WebページとTUNが必要なアプリをそれぞれテストし、ルールの適用状況とDNSの動作を確認します。
ifconfigでutunインターフェイスが見えても、Mihomoが正常に動作している証拠にはなりません。システムサービスやほかのVPNもインターフェイスを作成することがあるため、クライアントのログ、接続記録、ルートを合わせて確認してください。また、networksetup -setv6offを通常の修復手順として使わないでください。権限エラーとIPv6の設定に必然的な関係はありません。
キーチェーンの警告が繰り返し表示される場合:要求元と対象項目を確認してから許可
クライアントは、サブスクリプションの認証情報やトークンなどの機密設定をキーチェーンに保存することがあります。警告には、要求元のプロセスと対象項目の名前が表示されるのが一般的です。現在使用しているクライアントからの要求であることを確認してください。不明なプロセスやプロキシと無関係な項目が表示された場合は、いったん拒否して調べましょう。TUNに管理者権限を許可しても、すべてのキーチェーン項目へのアクセスが自動的に許可されるわけではありません。
「一度だけ許可」と「常に許可」の違い
「一度だけ許可」は通常、現在のアクセスのみを承認するため、次回以降も警告が表示されることがあります。「常に許可」を選ぶと、対象項目へのアクセス許可が保存されます。アプリの身元と項目の用途を確認してから、継続的な許可を検討してください。アプリのコピーを変えた場合や署名IDが変わった場合、別の配布元のビルドに移行した場合は、以前の許可が適用されないことがあります。更新後に再度確認を求められても、必ずしも不具合とは限りません。
ログインキーチェーンが正常にロック解除されているか確認
- Spotlightで「キーチェーンアクセス」を検索して開き、「ログイン」キーチェーンを選択します。
- キーチェーンがロックされていないか確認します。ロック中の場合は、キーチェーンに設定されているパスワードでロック解除を試してください。
- 警告に表示された項目名を検索し、項目の詳細を開いて「アクセス制御」などの設定を確認します。
- アクセスを許可されているアプリが、現在インストールされているクライアントを指しているか確認してください。すべてのアプリにアクセスを許可する設定には変更しないでください。
復旧手順や別の管理者アカウントを使ってMacのログインパスワードを変更した場合、ログインキーチェーンには古いパスワードが設定されたままのことがあります。その場合、新しいログインパスワードではロック解除できない可能性があります。古いパスワードが分かる場合は、システムの案内に従ってキーチェーンのパスワードを更新してください。分からない場合は、デフォルトキーチェーンのリセットに関するシステムの説明を読み、保存済みのローカル認証情報が失われる影響を確認してください。
起動のたびに同じ許可要求が表示される場合は、複数のアプリが同時に動いていないか、起動するたびにアプリのパスが変わっていないか、システム時刻が正しいかを確認します。その後、クライアントの更新情報とログを確認してください。パスワードを繰り返し入力しても、項目のアクセス権とアプリの署名の不一致は解決できません。
アップデート、アンインストール、ネットワーク復旧の手順
クライアントを置き換える前に、設定をエクスポートまたはバックアップし、現在のポート、ルールモード、TUNの有効・無効を記録します。TUNを無効にし、システムプロキシをオフにしてからクライアントを終了し、アプリを置き換えてください。補助サービスやネットワーク拡張を削除する場合は、まずクライアントに用意されたアンインストール機能を使います。アプリをゴミ箱に入れるだけでは、これらのシステムコンポーネントが残る場合があります。
- 終了後にWebページを開けない:「ネットワーク」→現在の接続→「詳細」→「プロキシ」を開き、停止したポートを指す設定が残っていないか確認します。
- 直接接続に戻しても名前解決できない:手動設定のDNS、ほかのVPN、ネットワークフィルターが残っていないか確認します。元の値を記録してから復元し、複数の項目を一度に変更しないでください。
- アップデート後にサービスが動かない:アプリのアーキテクチャと補助サービスの状態を確認し、クライアントのドキュメントに従ってサービスを修復してから、システムプロキシを再テストします。
- 拡張機能を許可できない:デバイスが管理対象かどうかを確認し、macOSのバージョン、開発元名、エラーの全文を記録して、管理者またはプロジェクトのメンテナーに相談します。
問い合わせる際は、クライアントとmacOSのバージョン、チップの種類、システムプロキシとTUNのどちらを使っているか、エラーが発生した時刻を記録してください。ログに含まれるサブスクリプションURL、トークン、ノードの認証情報、個人のドメイン名は伏せます。「アプリが起動するか→ローカルポートが待ち受けているか→システムプロキシが有効か→TUNが接続されているか→キーチェーンにアクセスできるか」の順に確認すると、再インストールやDNS変更、キーチェーンの消去を一度に行うより原因を特定しやすくなります。
具体的な設定項目は初心者向け・上級設定ガイドをご覧ください。インストール時の問題はクライアントのインストール手順で確認できます。権限を設定しても接続できない場合は、システム権限をさらに追加するのではなく、ノードの利用可否、DNS、ルールを確認してください。